Date: Thu, 30 Mar 2000 21:45:01 -0800 (PST) From: bryan@barmetta.com To: FreeBSD-gnats-submit@freebsd.org Subject: misc/17703: /usr/share/examples/kld/cdev won't compile Message-ID: <200003310545.VAA18175@barmetta.barmetta.com>
next in thread | raw e-mail | index | archive | help
>Number: 17703 >Category: misc >Synopsis: /usr/share/examples/kld/cdev won't compile >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Mar 30 21:50:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: bryan d. o'connor >Release: FreeBSD 4.0-STABLE i386 >Organization: barmetta.com >Environment: FreeBSD barmetta.barmetta.com 4.0-STABLE FreeBSD 4.0-STABLE #8: Tue Mar 28 18:11:36 PST 2000 root@barmetta.barmetta.com:/usr/src/sys/compile/BARMETTA i386 >Description: /usr/share/examples/kld/cdev is out of date and will no longer compile under FreeBSD 4.0-STABLE. >How-To-Repeat: cd /usr/share/examples/kld/cdev make >Fix: this is my first experience with KLDs, so i used the vn device as an example. apologies if that was a poor choice of example.. i don't know any better yet. ;) see patch below or at: http://www.barmetta.com/freebsd/examples-kld-cdev.patch diff -rc cdev-old/module/cdevmod.c cdev/module/cdevmod.c *** cdev-old/module/cdevmod.c Thu Mar 30 21:19:48 2000 --- cdev/module/cdevmod.c Thu Mar 30 21:17:15 2000 *************** *** 81,99 **** /* read */ noread, /* write */ nowrite, /* ioctl */ mydev_ioctl, - /* stop */ nostop, - /* reset */ noreset, - /* devtotty */ nodevtotty, /* poll */ nopoll, /* mmap */ nommap, /* strategy */ nostrategy, /* name */ "cdev", - /* parms */ noparms, /* maj */ CDEV_MAJOR, /* dump */ nodump, /* psize */ nopsize, /* flags */ D_TTY, - /* maxio */ 0, /* bmaj */ -1 }; --- 81,94 ---- *************** *** 109,115 **** */ static int ! cdev_load(module_t mod, int cmd, void *arg) { int err = 0; --- 104,110 ---- */ static int ! cdev_modevent(module_t mod, int cmd, void *arg) { int err = 0; *************** *** 117,122 **** --- 112,119 ---- case MOD_LOAD: /* Do any initialization that you should do with the kernel */ + cdevsw_add(&my_devsw); + make_dev(&my_devsw, 0, UID_ROOT, GID_OPERATOR, 0644, "%s", "cdev"); /* if we make it to here, print copyright on console*/ printf("\nSample Loaded kld character device driver\n"); *************** *** 126,135 **** break; /* Success*/ case MOD_UNLOAD: printf("Unloaded kld character device driver\n"); break; /* Success*/ ! default: /* we only understand load/unload*/ err = EINVAL; break; } --- 123,136 ---- break; /* Success*/ case MOD_UNLOAD: + /* fall through */ + case MOD_SHUTDOWN: + cdevsw_remove(&my_devsw); + printf("Unloaded kld character device driver\n"); break; /* Success*/ ! default: err = EINVAL; break; } *************** *** 139,142 **** /* Now declare the module to the system */ ! DEV_MODULE(cdev, CDEV_MAJOR, -1, my_devsw, cdev_load, 0); --- 140,143 ---- /* Now declare the module to the system */ ! DEV_MODULE(cdev, cdev_modevent, NULL); >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200003310545.VAA18175>