From owner-freebsd-doc@FreeBSD.ORG Sat Nov 22 08:00:36 2003 Return-Path: Delivered-To: freebsd-doc@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BCFFA16A4D0 for ; Sat, 22 Nov 2003 08:00:36 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 52FE743FA3 for ; Sat, 22 Nov 2003 08:00:33 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.9/8.12.9) with ESMTP id hAMG0XFY072616 for ; Sat, 22 Nov 2003 08:00:33 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.9/8.12.9/Submit) id hAMG0X3R072615; Sat, 22 Nov 2003 08:00:33 -0800 (PST) (envelope-from gnats) Resent-Date: Sat, 22 Nov 2003 08:00:33 -0800 (PST) Resent-Message-Id: <200311221600.hAMG0X3R072615@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-doc@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Radko Keves Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 839EC16A4CE for ; Sat, 22 Nov 2003 07:50:14 -0800 (PST) Received: from studnet.sk (kripel.unitra.sk [193.87.12.67]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7354D43F85 for ; Sat, 22 Nov 2003 07:50:10 -0800 (PST) (envelope-from rado@kripel.studnet.sk) Received: from kripel.studnet.sk (rado@localhost [127.0.0.1]) by studnet.sk (8.12.9/angel's version) with ESMTP id hAMFo5XX071111 for ; Sat, 22 Nov 2003 16:50:05 +0100 (CET) (envelope-from rado@kripel.studnet.sk) Received: (from rado@localhost) by kripel.studnet.sk (8.12.9/8.12.9/Submit) id hAMFo52H071103; Sat, 22 Nov 2003 16:50:05 +0100 (CET) (envelope-from rado) Message-Id: <200311221550.hAMFo52H071103@kripel.studnet.sk> Date: Sat, 22 Nov 2003 16:50:05 +0100 (CET) From: Radko Keves To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: docs/59587: rewriting examples (part of documentation for FreeBSD 5.x) X-BeenThere: freebsd-doc@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Radko Keves List-Id: Documentation project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Nov 2003 16:00:36 -0000 >Number: 59587 >Category: docs >Synopsis: rewriting examples (part of documentation for FreeBSD 5.x) >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-doc >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Sat Nov 22 08:00:32 PST 2003 >Closed-Date: >Last-Modified: >Originator: Radko Keves >Release: FreeBSD 5.1-CURRENT i386 >Organization: UKF-Nitra, Slovakia >Environment: System: FreeBSD kripel 5.1-CURRENT FreeBSD 5.1-CURRENT #9: Tue Nov 4 02:27:40 CET 2003 root@kripel:/usr/src/sys/i386/compile/angel i386 >Description: In documentation (/usr/share/examples/kld/cdev) is source code from year 1998 and from this time kernel changed (so kld too). My patches update this example for new kernels (FreeBSD 5.1 and upper). Patches are attached dmesg.boot (of my box too) >How-To-Repeat: >Fix: apply my patches --- patch-cdevmoc begins here --- --- module/cdevmod.c Sat Nov 22 15:49:20 2003 +++ module/cdevmod.c.1 Sat Nov 22 15:46:46 2003 @@ -1,8 +1,9 @@ -/* 08 Nov 1998*/ +/* 22 Nov 2003*/ /* * cdevmod.c - a sample kld module implementing a character device driver. * * 08 Nov 1998 Rajesh Vaidheeswarran + * 22 Nov 2003 Radko Keves * * Copyright (c) 1998 Rajesh Vaidheeswarran * All rights reserved. @@ -76,22 +77,15 @@ #include "cdev.h" #define CDEV_MAJOR 32 - static struct cdevsw my_devsw = { - /* open */ mydev_open, - /* close */ mydev_close, - /* read */ mydev_read, - /* write */ mydev_write, - /* ioctl */ mydev_ioctl, - /* poll */ nopoll, - /* mmap */ nommap, - /* strategy */ nostrategy, - /* name */ "cdev", - /* maj */ CDEV_MAJOR, - /* dump */ nodump, - /* psize */ nopsize, - /* flags */ D_TTY, - /* bmaj */ -1 + .d_open = mydev_open, + .d_close = mydev_close, + .d_read = mydev_read, + .d_write = mydev_write, + .d_ioctl = mydev_ioctl, + .d_poll = nopoll, + .d_name = "mydev_", + .d_maj = CDEV_MAJOR, }; /* @@ -113,36 +107,30 @@ */ static int -cdev_load(module_t mod, int cmd, void *arg) +mydev_modevent(mod,type, data) + module_t mod; + int type; + void *data; { - int err = 0; - - switch (cmd) { - case MOD_LOAD: - - /* Do any initialization that you should do with the kernel */ - - /* if we make it to here, print copyright on console*/ - printf("\nSample Loaded kld character device driver\n"); - printf("Copyright (c) 1998\n"); - printf("Rajesh Vaidheeswarran\n"); - printf("All rights reserved\n"); - sdev = make_dev(&my_devsw, 0, UID_ROOT, GID_WHEEL, 0600, "cdev"); - break; /* Success*/ - - case MOD_UNLOAD: - printf("Unloaded kld character device driver\n"); - destroy_dev(sdev); - break; /* Success*/ - - default: /* we only understand load/unload*/ - err = EINVAL; - break; - } - - return(err); + switch (type) { + case MOD_LOAD: + printf("\nSample Loaded kld character device driver\n"); + sdev = make_dev(&my_devsw, 0, UID_ROOT, GID_WHEEL, 0600, "cdev"); + break; + case MOD_UNLOAD: + printf("Unloaded kld character device driver\n"); + destroy_dev(sdev); + break; + default: + + break; + } + return (0); } -/* Now declare the module to the system */ - -DEV_MODULE(cdev, cdev_load, NULL); +static moduledata_t mydev_mod = { + "mydev", + mydev_modevent, + NULL +}; +DECLARE_MODULE(mydev, mydev_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE + CDEV_MAJOR); --- patch-cdevmoc ends here --- --- patch-Makefile begins here --- --- module/Makefile Sat Nov 22 15:49:20 2003 +++ module/Makefile.1 Sat Nov 22 15:34:09 2003 @@ -1,16 +1,4 @@ -# Makefile for kld char device driver. -# $FreeBSD: src/share/examples/kld/cdev/module/Makefile,v 1.5 2001/09/18 12:28:22 ru Exp $ - KMOD= cdev -SRCS= cdev.c cdevmod.c - -/dev/cdev: - mknod ${.TARGET} c 32 0 - -un/dev/cdev: .PHONY - rm -f /dev/cdev +SRCS= cdevmod.c cdev.c .include - -load: /dev/cdev -unload: un/dev/cdev --- patch-Makefile ends here --- --- patch-README begins here --- --- README Sat Nov 22 15:49:20 2003 +++ README.1 Sat Nov 22 15:48:52 2003 @@ -1,4 +1,5 @@ # Copyright (c) 1998 Rajesh Vaidheeswarran +# For FreeBSD 5.x rewrited by Radko Keves 2003 # All rights reserved. # # Redistribution and use in source and binary forms, with or without --- patch-README ends here --- --- patch-testcdev begins here --- --- test/testcdev.c Sat Nov 22 15:49:20 2003 +++ test/testcdev.c.1 Sat Nov 22 15:45:45 2003 @@ -1,11 +1,11 @@ -/* 08 Nov 1998*/ +/* 22 Nov 2003*/ /* * testmisc.c * * Test program to call the sample loaded kld device driver. * * 05 Jun 93 Rajesh Vaidheeswarran Original - * + * 22 Nov 03 Radko Keves Rewrited for 5.x * * Copyright (c) 1993 Rajesh Vaidheeswarran. * All rights reserved. @@ -70,7 +70,7 @@ * * $FreeBSD: src/share/examples/kld/cdev/test/testcdev.c,v 1.4 2000/12/09 09:35:39 obrien Exp $ */ - +#include #include #include #include --- patch-testcdev ends here --- --- dmesg.boot begins here --- Copyright (c) 1992-2003 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 5.1-RELEASE #0: Thu Jun 5 02:55:42 GMT 2003 root@wv1u.btc.adaptec.com:/usr/obj/usr/src/sys/GENERIC Preloaded elf kernel "/boot/kernel/kernel" at 0xc0689000. Timecounter "i8254" frequency 1193182 Hz Timecounter "TSC" frequency 133121313 Hz CPU: Pentium/P54C (133.12-MHz 586-class CPU) Origin = "GenuineIntel" Id = 0x52c Stepping = 12 Features=0x1bf real memory = 67108864 (64 MB) avail memory = 58179584 (55 MB) Intel Pentium detected, installing workaround for F00F bug npx0: on motherboard npx0: INT 16 interface pcibios: BIOS version 2.10 pcib0: at pcibus 0 on motherboard pci0: on pcib0 isab0: at device 7.0 on pci0 isa0: on isab0 atapci0: port 0x6000-0x600f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 ed0: port 0x6200-0x621f irq 11 at device 10.0 on pci0 ed0: address 00:e0:7d:85:ff:02, type NE2000 (16 bit) pci0: at device 11.0 (no driver attached) orm0: