summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>1999-08-20 20:25:00 +0000
committerjulian <julian@FreeBSD.org>1999-08-20 20:25:00 +0000
commit96374c14c32cf0dd12eb4024cf1519b41b798402 (patch)
treea4781d645d0e90d47bdc8a804ab1ea251d5f8f20 /sys
parente9ceff94f296890ef2ef7a2f056f5364bcae8777 (diff)
downloadFreeBSD-src-96374c14c32cf0dd12eb4024cf1519b41b798402.zip
FreeBSD-src-96374c14c32cf0dd12eb4024cf1519b41b798402.tar.gz
First small steps at merging DEVFS and PHK's Dev_t stuff.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/syscons/syscons.h7
-rw-r--r--sys/kern/kern_conf.c20
-rw-r--r--sys/kern/tty_cons.c8
-rw-r--r--sys/kern/tty_pty.c33
-rw-r--r--sys/sys/conf.h5
-rw-r--r--sys/sys/linedisc.h5
6 files changed, 43 insertions, 35 deletions
diff --git a/sys/dev/syscons/syscons.h b/sys/dev/syscons/syscons.h
index d72c622..a65ba2c 100644
--- a/sys/dev/syscons/syscons.h
+++ b/sys/dev/syscons/syscons.h
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.h,v 1.49 1999/06/24 13:04:33 yokota Exp $
+ * $Id: syscons.h,v 1.50 1999/07/07 13:48:50 yokota Exp $
*/
#ifndef _DEV_SYSCONS_SYSCONS_H_
@@ -207,7 +207,10 @@ typedef struct sc_softc {
struct scr_stat *old_scp;
int delayed_next_scr;
- void **devfs_token;
+ /* uncontitional as you'd need to check opt_devfs in about 25 files */
+ void *devfs_token[MAXCONS];
+ void *mouse_devfs_token;
+ void *console_devfs_token;
char font_loading_in_progress;
char switch_in_progress;
diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c
index a372fb9..4da89a7 100644
--- a/sys/kern/kern_conf.c
+++ b/sys/kern/kern_conf.c
@@ -30,9 +30,11 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: kern_conf.c,v 1.57 1999/08/15 09:32:47 phk Exp $
+ * $Id: kern_conf.c,v 1.58 1999/08/17 20:25:50 billf Exp $
*/
+#include "opt_devfs.h"
+
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/systm.h>
@@ -42,6 +44,10 @@
#include <sys/vnode.h>
#include <sys/queue.h>
#include <machine/stdarg.h>
+#ifdef DEVFS
+#include <sys/devfsext.h>
+#endif /* DEVFS */
+
#define cdevsw_ALLOCSTART (NUMCDEVSW/2)
@@ -306,6 +312,18 @@ make_dev(struct cdevsw *devsw, int minor, uid_t uid, gid_t gid, int perms, char
dev->si_name[i] = '\0';
va_end(ap);
dev->si_devsw = devsw;
+
+#ifdef DEVFS
+ dev->si_devfs = devfs_add_devswf(devsw, minor, DV_CHR,
+ uid, gid, perms, dev->si_name);
+ /* XXX HACK .. name may not start in 'r' */
+ if ((devsw->d_bmaj != -1)
+ && (*dev->si_name == 'r')
+ && ((devsw->d_flags & D_TYPEMASK) == D_DISK)) {
+ dev->si_devfs = devfs_add_devswf(devsw, minor, DV_BLK,
+ uid, gid, perms, dev->si_name + 1);
+ }
+#endif /* DEVFS */
return (dev);
}
diff --git a/sys/kern/tty_cons.c b/sys/kern/tty_cons.c
index 4310e4d..397b56b 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: tty_cons.c,v 1.72 1999/08/09 11:02:43 phk Exp $
+ * $Id: tty_cons.c,v 1.73 1999/08/13 10:52:22 phk Exp $
*/
#include <sys/param.h>
@@ -99,8 +99,9 @@ static int openmode, openflag; /* how /dev/console was openned */
static u_char cn_phys_is_open; /* nonzero if physical device is open */
static d_close_t *cn_phys_close; /* physical device close function */
static d_open_t *cn_phys_open; /* physical device open function */
-struct consdev *cn_tab; /* physical console device info */
+struct consdev *cn_tab; /* physical console device info */
static struct tty *cn_tp; /* physical console tty struct */
+static dev_t condev_t; /* represents the device private info */
CONS_DRIVER(cons, NULL, NULL, NULL, NULL, NULL, NULL);
@@ -432,7 +433,8 @@ cn_drvinit(void *unused)
{
cdevsw_add(&cn_cdevsw);
- make_dev (&cn_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600, "console");
+ condev_t = make_dev (&cn_cdevsw, 0,
+ UID_ROOT, GID_WHEEL, 0600, "console");
}
SYSINIT(cndev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,cn_drvinit,NULL)
diff --git a/sys/kern/tty_pty.c b/sys/kern/tty_pty.c
index f2b2da7..0309b1e 100644
--- a/sys/kern/tty_pty.c
+++ b/sys/kern/tty_pty.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)tty_pty.c 8.4 (Berkeley) 2/20/95
- * $Id: tty_pty.c,v 1.63 1999/08/08 19:47:32 phk Exp $
+ * $Id: tty_pty.c,v 1.64 1999/08/17 23:08:51 julian Exp $
*/
/*
@@ -57,10 +57,6 @@
#include <sys/signalvar.h>
#include <sys/malloc.h>
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif /*DEVFS*/
-
MALLOC_DEFINE(M_PTY, "ptys", "pty data structures");
static void ptsstart __P((struct tty *tp));
@@ -134,10 +130,7 @@ struct pt_ioctl {
u_char pt_send;
u_char pt_ucntl;
struct tty pt_tty;
-#ifdef DEVFS
- void *devfs_token_pts;
- void *devfs_token_ptc;
-#endif /* DEVFS */
+ dev_t devs, devc;
};
#define PF_PKT 0x08 /* packet mode */
@@ -167,24 +160,16 @@ ptyinit(n)
if (n & ~0xff)
return;
- devs = make_dev(&pts_cdevsw, n,
+ pt = malloc(sizeof(*pt), M_PTY, M_WAITOK);
+ bzero(pt, sizeof(*pt));
+ pt->devs = devs = make_dev(&pts_cdevsw, n,
0, 0, 0666, "tty%c%r", names[n / 32], n % 32);
- devc = make_dev(&ptc_cdevsw, n,
+ pt->devc = devc = make_dev(&ptc_cdevsw, n,
0, 0, 0666, "pty%c%r", names[n / 32], n % 32);
- pt = malloc(sizeof(*pt), M_PTY, M_WAITOK);
- bzero(pt, sizeof(*pt));
devs->si_drv1 = devc->si_drv1 = pt;
devs->si_tty_tty = devc->si_tty_tty = &pt->pt_tty;
ttyregister(&pt->pt_tty);
-#ifdef DEVFS
- pt->devfs_token_pts = devfs_add_devswf(&pts_cdevsw,n,
- DV_CHR,0,0,0666,
- devs->si_name);
- pt->devfs_token_ptc = devfs_add_devswf(&ptc_cdevsw,n,
- DV_CHR,0,0,0666,
- devc->si_name);
-#endif /* DEVFS */
}
/*ARGSUSED*/
@@ -196,13 +181,14 @@ ptsopen(dev, flag, devtype, p)
{
register struct tty *tp;
int error;
-#ifdef DEVFS
int minr;
dev_t nextdev;
/*
* If we openned this device, ensure we have the
* next ready in the DEVFS (up to 256 of them).
+ * XXX probably a more efficient way of know if the next one has
+ * been made already would be to just keep track..
*/
minr = lminor(dev);
if (minr < 255) {
@@ -211,7 +197,6 @@ ptsopen(dev, flag, devtype, p)
ptyinit(minr + 1);
}
}
-#endif /* DEVFS */
if (!dev->si_drv1)
ptyinit(minor(dev));
if (!dev->si_drv1)
@@ -859,9 +844,7 @@ ptc_drvinit(unused)
cdevsw_add(&ptc_cdevsw);
ptc_devsw_installed = 1;
}
-#ifdef DEVFS
ptyinit(0); /* Add the first pty into the system.. prime the pump */
-#endif /* DEVFS */
}
SYSINIT(ptcdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR_C,ptc_drvinit,NULL)
diff --git a/sys/sys/conf.h b/sys/sys/conf.h
index 73b3600..9471593 100644
--- a/sys/sys/conf.h
+++ b/sys/sys/conf.h
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)conf.h 8.5 (Berkeley) 1/9/95
- * $Id: conf.h,v 1.74 1999/08/15 09:32:44 phk Exp $
+ * $Id: conf.h,v 1.75 1999/08/17 20:25:48 billf Exp $
*/
#ifndef _SYS_CONF_H_
@@ -61,6 +61,7 @@ struct specinfo {
char si_name[SPECNAMELEN + 1];
void *si_drv1, *si_drv2;
struct cdevsw *si_devsw;
+ void *si_devfs; /* save cookie for devfs operations */
union {
struct {
struct tty *__sit_tty;
@@ -272,7 +273,7 @@ int lminor __P((dev_t dev));
void setconf __P((void));
/*
- * XXX: This gunk included in case DEVFS resurfaces
+ * XXX: This included for when DEVFS resurfaces
*/
#define UID_ROOT 0
diff --git a/sys/sys/linedisc.h b/sys/sys/linedisc.h
index 73b3600..9471593 100644
--- a/sys/sys/linedisc.h
+++ b/sys/sys/linedisc.h
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)conf.h 8.5 (Berkeley) 1/9/95
- * $Id: conf.h,v 1.74 1999/08/15 09:32:44 phk Exp $
+ * $Id: conf.h,v 1.75 1999/08/17 20:25:48 billf Exp $
*/
#ifndef _SYS_CONF_H_
@@ -61,6 +61,7 @@ struct specinfo {
char si_name[SPECNAMELEN + 1];
void *si_drv1, *si_drv2;
struct cdevsw *si_devsw;
+ void *si_devfs; /* save cookie for devfs operations */
union {
struct {
struct tty *__sit_tty;
@@ -272,7 +273,7 @@ int lminor __P((dev_t dev));
void setconf __P((void));
/*
- * XXX: This gunk included in case DEVFS resurfaces
+ * XXX: This included for when DEVFS resurfaces
*/
#define UID_ROOT 0
OpenPOWER on IntegriCloud