Skip site navigation (1)Skip section navigation (2)
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>