summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_descrip.c47
-rw-r--r--sys/kern/kern_lkm.c42
-rw-r--r--sys/kern/subr_log.c44
-rw-r--r--sys/kern/tty_cons.c54
-rw-r--r--sys/kern/tty_pty.c64
-rw-r--r--sys/kern/tty_snoop.c39
-rw-r--r--sys/kern/tty_tty.c43
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 */
+
OpenPOWER on IntegriCloud