diff options
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/kern_descrip.c | 47 | ||||
-rw-r--r-- | sys/kern/kern_lkm.c | 42 | ||||
-rw-r--r-- | sys/kern/subr_log.c | 44 | ||||
-rw-r--r-- | sys/kern/tty_cons.c | 54 | ||||
-rw-r--r-- | sys/kern/tty_pty.c | 64 | ||||
-rw-r--r-- | sys/kern/tty_snoop.c | 39 | ||||
-rw-r--r-- | sys/kern/tty_tty.c | 43 |
7 files changed, 310 insertions, 23 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 4912d73..f1f5557 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_descrip.c 8.6 (Berkeley) 4/19/94 - * $Id: kern_descrip.c,v 1.13 1995/11/12 06:42:52 bde Exp $ + * $Id: kern_descrip.c,v 1.14 1995/11/14 08:58:35 phk Exp $ */ #include <sys/param.h> @@ -57,6 +57,14 @@ #include <sys/unistd.h> #include <sys/resourcevar.h> +#ifdef JREMOD +#include <sys/conf.h> +#ifdef DEVFS +#include <sys/devfsext.h> +#endif /*DEVFS*/ +#define CDEV_MAJOR 22 +#endif /*JREMOD*/ + int finishdup(struct filedesc *fdp, int old, int new, int *retval); /* * Descriptor management. @@ -1013,6 +1021,43 @@ sysctl_kern_file SYSCTL_HANDLER_ARGS } return (0); } +#ifdef JREMOD +struct cdevsw fildesc_cdevsw = + { fdopen, noclose, noread, nowrite, /*22*/ + noioc, nostop, nullreset, nodevtotty,/*fd(!=Fd)*/ + noselect, nommap, nostrat }; + +static fildesc_devsw_installed = 0; + +static void fildesc_drvinit(void *unused) +{ + dev_t dev; + + if( ! fildesc_devsw_installed ) { + dev = makedev(CDEV_MAJOR,0); + cdevsw_add(&dev,&fildesc_cdevsw,NULL); + fildesc_devsw_installed = 1; +#ifdef DEVFS + { + int x; +/* default for a simple device with no probe routine (usually delete this) */ +/* path name devsw minor type uid gid perm*/ + x=devfs_add_devsw("/","stdin",major(dev),0,DV_CHR, + 0, 0, 0600); + x=devfs_add_devsw("/","stdout",major(dev),1,DV_CHR, + 0, 0, 0600); + x=devfs_add_devsw("/","stderr",major(dev),2,DV_CHR, + 0, 0, 0600); + } + } +#endif +} + +SYSINIT(fildescdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR, + fildesc_drvinit,NULL) + +#endif /* JREMOD */ + SYSCTL_PROC(_kern, KERN_FILE, file, CTLTYPE_OPAQUE|CTLFLAG_RD, 0, 0, sysctl_kern_file, ""); diff --git a/sys/kern/kern_lkm.c b/sys/kern/kern_lkm.c index ad78d28..902ed4c 100644 --- a/sys/kern/kern_lkm.c +++ b/sys/kern/kern_lkm.c @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: kern_lkm.c,v 1.18 1995/11/09 09:43:32 bde Exp $ + * $Id: kern_lkm.c,v 1.19 1995/11/20 12:06:21 phk Exp $ */ /* @@ -61,6 +61,13 @@ #include <vm/vm_param.h> #include <vm/vm_kern.h> +#ifdef JREMOD +#ifdef DEVFS +#include <sys/devfsext.h> +#endif /*DEVFS*/ +#define CDEV_MAJOR 32 +#endif /*JREMOD */ + #define PAGESIZE 1024 /* kmem_alloc() allocation quantum */ #define LKM_ALLOC 0x01 @@ -993,3 +1000,36 @@ lkm_nullcmd(lkmtp, cmd) return (0); } + +#ifdef JREMOD +struct cdevsw lkm_cdevsw = + { lkmcopen, lkmcclose, noread, nowrite, /*32*/ + lkmcioctl, nostop, nullreset, nodevtotty, + noselect, nommap, NULL }; + +static lkm_devsw_installed = 0; + +static void lkm_drvinit(void *unused) +{ + dev_t dev; + + if( ! lkm_devsw_installed ) { + dev = makedev(CDEV_MAJOR,0); + cdevsw_add(&dev,&lkm_cdevsw,NULL); + lkm_devsw_installed = 1; +#ifdef DEVFS + { + int x; +/* default for a simple device with no probe routine (usually delete this) */ + x=devfs_add_devsw( +/* path name devsw minor type uid gid perm*/ + "/", "lkm", major(dev), 0, DV_CHR, 0, 0, 0600); + } + } +#endif +} + +SYSINIT(lkmdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,lkm_drvinit,NULL) + +#endif /* JREMOD */ + diff --git a/sys/kern/subr_log.c b/sys/kern/subr_log.c index a2e2d47..0b9d5da 100644 --- a/sys/kern/subr_log.c +++ b/sys/kern/subr_log.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)subr_log.c 8.1 (Berkeley) 6/10/93 - * $Id: subr_log.c,v 1.9 1995/08/07 07:58:17 davidg Exp $ + * $Id: subr_log.c,v 1.10 1995/10/29 15:30:59 phk Exp $ */ /* @@ -47,6 +47,15 @@ #include <sys/file.h> #include <sys/signalvar.h> +#ifdef JREMOD +#include <sys/conf.h> +#include <sys/kernel.h> +#ifdef DEVFS +#include <sys/devfsext.h> +#endif /*DEVFS*/ +#define CDEV_MAJOR 7 +#endif /*JREMOD*/ + #define LOG_RDPRI (PZERO + 1) #define LOG_ASYNC 0x04 @@ -223,3 +232,36 @@ logioctl(dev, com, data, flag, p) } return (0); } + +#ifdef JREMOD +struct cdevsw log_cdevsw = + { logopen, logclose, logread, nowrite, /*7*/ + logioctl, nostop, nullreset, nodevtotty,/* klog */ + logselect, nommap, NULL }; + +static log_devsw_installed = 0; + +static void log_drvinit(void *unused) +{ + dev_t dev; + + if( ! log_devsw_installed ) { + dev = makedev(CDEV_MAJOR,0); + cdevsw_add(&dev,&log_cdevsw,NULL); + log_devsw_installed = 1; +#ifdef DEVFS + { + int x; +/* default for a simple device with no probe routine (usually delete this) */ + x=devfs_add_devsw( +/* path name devsw minor type uid gid perm*/ + "/", "log", major(dev), 0, DV_CHR, 0, 0, 0600); + } + } +#endif +} + +SYSINIT(logdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,log_drvinit,NULL) + +#endif /* JREMOD */ + diff --git a/sys/kern/tty_cons.c b/sys/kern/tty_cons.c index 0b509594..9b8735d 100644 --- a/sys/kern/tty_cons.c +++ b/sys/kern/tty_cons.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * from: @(#)cons.c 7.2 (Berkeley) 5/9/91 - * $Id: cons.c,v 1.33 1995/09/10 18:57:25 bde Exp $ + * $Id: cons.c,v 1.34 1995/09/10 21:34:49 bde Exp $ */ #include <sys/param.h> @@ -48,6 +48,14 @@ #include <machine/cons.h> #include <machine/stdarg.h> +#ifdef JREMOD +#include <sys/kernel.h> +#ifdef DEVFS +#include <sys/devfsext.h> +#endif /*DEVFS*/ +#define CDEV_MAJOR 0 +#endif /*JREMOD*/ + /* XXX this should be config(8)ed. */ #include "sc.h" #include "vt.h" @@ -79,23 +87,6 @@ static d_open_t *cn_phys_open; /* physical device open function */ static struct consdev *cn_tab; /* physical console device info */ static struct tty *cn_tp; /* physical console tty struct */ -#ifdef DEVFS -#include <sys/kernel.h> -#include <sys/devfsext.h> - -static void cndev_init __P((void *)); -SYSINIT(cndev, SI_SUB_DEVFS, SI_ORDER_ANY, cndev_init, NULL) - -static void -cndev_init(dummy) - void *dummy; -{ - void * x; -/* path name devsw minor type uid gid perm*/ - x=dev_add("/misc", "console", cnopen, 0, DV_CHR, 0, 0, 0640); -} -#endif /* DEVFS */ - void cninit() { @@ -322,3 +313,30 @@ pg(const char *p, ...) { } +#ifdef JREMOD +struct cdevsw cn_cdevsw = + { cnopen, cnclose, cnread, cnwrite, /*0*/ + cnioctl, nullstop, nullreset, nodevtotty,/* console */ + cnselect, nommap, NULL }; + +static cn_devsw_installed = 0; + +static void cn_drvinit(void *unused) +{ + void * x; + dev_t dev; + + if( ! cn_devsw_installed ) { + dev = makedev(CDEV_MAJOR,0); + cdevsw_add(&dev,&cn_cdevsw,NULL); + cn_devsw_installed = 1; +#ifdef DEVFS + /* path,name,major,minor,type,uid,gid,perm */ + x=devfs_add_devsw("/","console",major(dev),0,DV_CHR,0,0,0640); +#endif +} + +SYSINIT(cndev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,cn_drvinit,NULL) + +#endif /* JREMOD */ + diff --git a/sys/kern/tty_pty.c b/sys/kern/tty_pty.c index 2baaea2..ad41417 100644 --- a/sys/kern/tty_pty.c +++ b/sys/kern/tty_pty.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)tty_pty.c 8.2 (Berkeley) 9/23/93 - * $Id: tty_pty.c,v 1.23 1995/10/30 17:16:55 bde Exp $ + * $Id: tty_pty.c,v 1.24 1995/11/04 13:24:55 bde Exp $ */ /* @@ -52,6 +52,10 @@ #include <sys/vnode.h> #include <sys/signalvar.h> +#ifdef DEVFS +#include <sys/devfsext.h> +#endif /*DEVFS*/ + void ptyattach __P((int n)); void ptsstart __P((struct tty *tp)); void ptcwakeup __P((struct tty *tp, int flag)); @@ -733,3 +737,61 @@ ptyioctl(dev, cmd, data, flag, p) } return (error); } + +#define CDEV_MAJOR_S 5 +#define CDEV_MAJOR_C 6 +#ifdef JREMOD +struct cdevsw pts_cdevsw = + { ptsopen, ptsclose, ptsread, ptswrite, /*5*/ + ptyioctl, ptsstop, nullreset, ptydevtotty,/* ttyp */ + ttselect, nommap, NULL }; + +struct cdevsw ptc_cdevsw = + { ptcopen, ptcclose, ptcread, ptcwrite, /*6*/ + ptyioctl, nullstop, nullreset, ptydevtotty,/* ptyp */ + ptcselect, nommap, NULL }; + +static ptc_devsw_installed = 0; + +static void ptc_drvinit(void *unused) +{ +#ifdef DEVFS + int i + char jnames[] = "pqrstu" + char knames[] = "0123456789abcdef" + char devname[16]; +#define MAXUNITS (6 * 16) +#endif + dev_t dev; + dev_t dev_c; + + if( ! ptc_devsw_installed ) { + dev = makedev(CDEV_MAJOR_S,0); + cdevsw_add(&dev,&pts_cdevsw,NULL); + pts_devsw_installed = 1; + dev_c = makedev(CDEV_MAJOR_C,0); + cdevsw_add(&dev_c,&ptc_cdevsw,NULL); + ptc_devsw_installed = 1; +#ifdef DEVFS +/*XXX*/ +#if NPTY > MAXUNITS +#undef NPTY +#define NPTY MAXUNITS +#endif + for ( i = 0 ; i<NPTY ; i++ ) { + int x; + + j = i / 16; + k = i % 16; + sprintf(devname,"pty%c%c",jnames[j],knames[k]); + x=devfs_add_devsw("/",devname,major(dev_c),0,DV_CHR,0,0,0600); + sprintf(devname,"tty%c%c",jnames[j],knames[k]); + x=devfs_add_devsw("/",devname,major(dev),0,DV_CHR,0,0,0600); + } +#endif +} + +SYSINIT(ptcdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR_C,ptc_drvinit,NULL) + +#endif /* JREMOD */ + diff --git a/sys/kern/tty_snoop.c b/sys/kern/tty_snoop.c index 77c1596..c89c975 100644 --- a/sys/kern/tty_snoop.c +++ b/sys/kern/tty_snoop.c @@ -33,6 +33,13 @@ #include <sys/snoop.h> +#ifdef JREMOD +#ifdef DEVFS +#include <sys/devfsext.h> +#endif /*DEVFS*/ +#define CDEV_MAJOR 53 +#endif /*JREMOD*/ + #ifndef MIN #define MIN(a,b) (((a)<(b))?(a):(b)) #endif @@ -491,4 +498,36 @@ snpselect(dev, rw, p) return 0; } +#ifdef JREMOD +struct cdevsw snp_cdevsw = + { snpopen, snpclose, snpread, snpwrite, /*53*/ + snpioctl, nostop, nullreset, nodevtotty,/* snoop */ + snpselect, nommap, NULL }; + +static snp_devsw_installed = 0; + +static void snp_drvinit(void *unused) +{ + dev_t dev; + + if( ! snp_devsw_installed ) { + dev = makedev(CDEV_MAJOR,0); + cdevsw_add(&dev,&snp_cdevsw,NULL); + snp_devsw_installed = 1; +#ifdef DEVFS + { + int x; +/* default for a simple device with no probe routine (usually delete this) */ + x=devfs_add_devsw( +/* path name devsw minor type uid gid perm*/ + "/", "snp", major(dev), 0, DV_CHR, 0, 0, 0600); + } + } +#endif +} + +SYSINIT(snpdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,snp_drvinit,NULL) + +#endif /* JREMOD */ + #endif diff --git a/sys/kern/tty_tty.c b/sys/kern/tty_tty.c index 9fe7f33..d0a0c8c 100644 --- a/sys/kern/tty_tty.c +++ b/sys/kern/tty_tty.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)tty_tty.c 8.2 (Berkeley) 9/23/93 - * $Id: tty_tty.c,v 1.4 1994/12/04 01:46:13 ache Exp $ + * $Id: tty_tty.c,v 1.5 1995/05/30 08:06:19 rgrimes Exp $ */ /* @@ -46,6 +46,14 @@ #include <sys/vnode.h> #include <sys/file.h> +#ifdef JREMOD +#include <sys/kernel.h> +#ifdef DEVFS +#include <sys/devfsext.h> +#endif /*DEVFS*/ +#define CDEV_MAJOR 1 +#endif /*JREMOD*/ + #define cttyvp(p) ((p)->p_flag & P_CONTROLT ? (p)->p_session->s_ttyvp : NULL) /*ARGSUSED*/ @@ -153,3 +161,36 @@ cttyselect(dev, flag, p) return (1); /* try operation to get EOF/failure */ return (VOP_SELECT(ttyvp, flag, FREAD|FWRITE, NOCRED, p)); } + +#ifdef JREMOD +struct cdevsw ctty_cdevsw = + { cttyopen, nullclose, cttyread, cttywrite, /*1*/ + cttyioctl, nullstop, nullreset, nodevtotty,/* tty */ + cttyselect, nommap, NULL }; + +static ctty_devsw_installed = 0; + +static void ctty_drvinit(void *unused) +{ + dev_t dev; + + if( ! ctty_devsw_installed ) { + dev = makedev(CDEV_MAJOR,0); + cdevsw_add(&dev,&ctty_cdevsw,NULL); + ctty_devsw_installed = 1; +#ifdef DEVFS + { + int x; +/* default for a simple device with no probe routine (usually delete this) */ + x=devfs_add_devsw( +/* path name devsw minor type uid gid perm*/ + "/", "tty", major(dev), 0, DV_CHR, 0, 0, 0600); + } + } +#endif +} + +SYSINIT(cttydev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,ctty_drvinit,NULL) + +#endif /* JREMOD */ + |