File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / kernel / chuinit.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

    1: /*
    2: **	dynamically loadable chu driver
    3: **
    4: **	william robertson <rob@agate.berkeley.edu>  
    5: */
    6: 
    7: #include <sys/types.h>
    8: #include <sys/conf.h>
    9: #include <sys/errno.h>
   10: #include <sys/stream.h>
   11: #include <sys/syslog.h>
   12: 
   13: #include <sun/openprom.h>
   14: #include <sun/vddrv.h>
   15: 
   16: extern int findmod();		/* os/str_io.c */
   17: 
   18: extern struct streamtab chuinfo;
   19: 
   20: struct vdldrv vd = {
   21:      VDMAGIC_USER,
   22:      "chu"
   23:   };
   24: 
   25: 
   26: int
   27: xxxinit(function_code, vdp, vdi, vds)
   28: unsigned int function_code;
   29: struct vddrv *vdp;
   30: addr_t vdi;
   31: struct vdstat *vds;
   32: {
   33:      register int i = 0;
   34:      register int j;
   35: 
   36:      switch (function_code) {
   37: 	case VDLOAD:
   38: 
   39: 	  if (findmod("chu") >= 0) {
   40: 	       log(LOG_ERR, "chu stream module already loaded\n");
   41: 	       return (EADDRINUSE);
   42: 	  }
   43:  
   44: 	  i = findmod("\0");
   45: 
   46: 	  if (i == -1 || fmodsw[i].f_name[0] != '\0') 
   47: 	    return(-1);
   48: 
   49: 	  for (j = 0; vd.Drv_name[j] != '\0'; j++)	/* XXX check bounds */
   50: 	    fmodsw[i].f_name[j] = vd.Drv_name[j];
   51: 
   52: 	  fmodsw[i].f_name[j] = '\0';
   53: 	  fmodsw[i].f_str = &chuinfo;
   54: 
   55: 	  vdp->vdd_vdtab = (struct vdlinkage *)  &vd;
   56: 
   57: 	  return(0);
   58: 
   59: 	case VDUNLOAD:
   60: 	  if ((i = findmod(vd.Drv_name)) == -1)
   61: 	    return(-1);
   62: 
   63: 	  fmodsw[i].f_name[0] = '\0';
   64: 	  fmodsw[i].f_str = 0;
   65: 
   66: 	  return(0);
   67:      
   68: 	case VDSTAT:
   69: 	  return(0);
   70: 
   71: 	default:
   72: 	  return(EIO);
   73:      }
   74: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>