]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/dev/ppc/conf.c
xnu-1504.15.3.tar.gz
[apple/xnu.git] / bsd / dev / ppc / conf.c
index ba13fc3ee874bfe3bbe8b1da8832b9530d3726f2..acc9a8545a029076d5a4e482ec7aa06ca9d04ec2 100644 (file)
@@ -1,16 +1,19 @@
 /*
  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
  * 
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
@@ -20,7 +23,7 @@
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * 
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*
  * Copyright (c) 1997 by Apple Computer, Inc., all rights reserved
 
 #include <sys/param.h>
 #include <sys/systm.h>
-#include <sys/buf.h>
 #include <sys/ioctl.h>
 #include <sys/tty.h>
 #include <sys/conf.h>
+#include <machine/cons.h>
 
 
-extern int     nulldev();
-
 struct bdevsw  bdevsw[] =
 {
        /*
@@ -92,33 +93,53 @@ struct bdevsw       bdevsw[] =
 int    nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
 
 extern struct tty *km_tty[];
-extern int     consopen(), consclose(), consread(), conswrite(), consioctl(),
-               consselect(), cons_getc(), cons_putc();
-extern int     kmopen(),kmclose(),kmread(),kmwrite(),kmioctl(),
-               kmgetc(), kmputc(dev_t dev, char c);
 
-extern int     cttyopen(), cttyread(), cttywrite(), cttyioctl(), cttyselect();
+dev_t chrtoblk(dev_t dev);
+int chrtoblk_set(int cdev, int bdev);
+int iskmemdev(dev_t dev);
+
 
-extern int     mmread(),mmwrite();
-#define        mmselect        seltrue
+/* XXX No support for linker sets, so must declare here */
+int cttyopen(dev_t dev, int flag, int mode, struct proc *p);
+int cttyread(dev_t dev, struct uio *uio, int flag);
+int cttywrite(dev_t dev, struct uio *uio, int flag);
+int cttyioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p);
+int cttyselect(dev_t dev, int flag, void* wql, struct proc *p);
+
+/* XXX bsd/dev/ppc/mem.c */
+int mmread(dev_t dev, struct uio *uio, int flag);
+int mmioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p);
+int mmwrite(dev_t dev, struct uio *uio, int flag);
+
+#define        mmselect        (select_fcn_t *)seltrue
 
 #if 1
+#ifdef NPTY
+#undef NPTY
+#endif /* NPTY */
 #define NPTY 32
 #else /* 1 */
 #include <pty.h>
 #endif /* 1 */
 #if NPTY > 0
 extern struct tty *pt_tty[];
-extern int     ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop(),ptsputc();
-extern int     ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect(),
-               ptyioctl();
+extern d_open_t                ptsopen;
+extern d_close_t       ptsclose;
+extern d_read_t                ptsread;
+extern d_write_t       ptswrite;
+extern d_stop_t                ptsstop;
+extern d_open_t                ptcopen;
+extern d_close_t       ptcclose;
+extern d_read_t                ptcread;
+extern d_write_t       ptcwrite;
+extern d_select_t      ptcselect;
+extern d_ioctl_t       ptyioctl;
 #else
 #define ptsopen                eno_opcl
 #define ptsclose       eno_opcl
 #define ptsread                eno_rdwrt
 #define ptswrite       eno_rdwrt
 #define        ptsstop         nulldev
-#define ptsputc                nulldev
 
 #define ptcopen                eno_opcl
 #define ptcclose       eno_opcl
@@ -128,8 +149,11 @@ extern int ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect(),
 #define ptyioctl       eno_ioctl
 #endif
 
-extern int     logopen(),logclose(),logread(),logioctl(),logselect();
-extern int     seltrue();
+extern d_open_t         logopen;
+extern d_close_t        logclose;
+extern d_read_t         logread;
+extern d_ioctl_t        logioctl;
+extern d_select_t       logselect;
 
 struct cdevsw  cdevsw[] =
 {
@@ -146,33 +170,46 @@ struct cdevsw     cdevsw[] =
 
     {
        consopen,       consclose,      consread,       conswrite,      /* 0*/
-       consioctl,      nulldev,        nulldev,        0,      consselect,
-       eno_mmap,       eno_strat,      cons_getc,      cons_putc, D_TTY
+       consioctl,      ((stop_fcn_t *)&nulldev),
+                                       ((reset_fcn_t *)&nulldev),
+                                                       0,      consselect,
+       eno_mmap,       eno_strat,      eno_getc,       eno_putc, D_TTY
    },
     NO_CDEVICE,                                                                /* 1*/
     {
-       cttyopen,       nulldev,        cttyread,       cttywrite,      /* 2*/
-       cttyioctl,      nulldev,        nulldev,        0,              cttyselect,
+       cttyopen,       ((open_close_fcn_t *)&nulldev),
+                                       cttyread,       cttywrite,      /* 2*/
+       cttyioctl,      ((stop_fcn_t *)&nulldev),
+                                       ((reset_fcn_t *)&nulldev),
+                                                       0,      cttyselect,
        eno_mmap,       eno_strat,      eno_getc,       eno_putc,       D_TTY
     },
     {
-       nulldev,        nulldev,        mmread,         mmwrite,        /* 3*/
-       eno_ioctl,      nulldev,        nulldev,        0,              mmselect,
-       eno_mmap,               eno_strat,      eno_getc,       eno_putc,       0
+       ((open_close_fcn_t *)&nulldev),
+                       ((open_close_fcn_t *)&nulldev),
+                                       mmread,         mmwrite,        /* 3*/
+       mmioctl,        ((stop_fcn_t *)&nulldev),
+                                       ((reset_fcn_t *)&nulldev),
+                                                       0,      mmselect,
+       eno_mmap,               eno_strat,      eno_getc,       eno_putc,       D_DISK
     },
     {
        ptsopen,        ptsclose,       ptsread,        ptswrite,       /* 4*/
-       ptyioctl,       ptsstop,        nulldev,        pt_tty,         ttselect,
+       ptyioctl,       ptsstop,        ((reset_fcn_t *)&nulldev),
+                                                       pt_tty,         ttselect,
        eno_mmap,       eno_strat,      eno_getc,       eno_putc,       D_TTY
     },
     {
        ptcopen,        ptcclose,       ptcread,        ptcwrite,       /* 5*/
-       ptyioctl,       nulldev,        nulldev,        0,              ptcselect,
+       ptyioctl,       ((stop_fcn_t *)&nulldev),
+                                       ((reset_fcn_t *)&nulldev),
+                                                       0,              ptcselect,
        eno_mmap,       eno_strat,      eno_getc,       eno_putc,       D_TTY
     },
     {
        logopen,        logclose,       logread,        eno_rdwrt,      /* 6*/
-       logioctl,       eno_stop,       nulldev,        0,              logselect,
+       logioctl,       eno_stop,       ((reset_fcn_t *)&nulldev),
+                                                       0,              logselect,
        eno_mmap,       eno_strat,      eno_getc,       eno_putc,       0
     },
     NO_CDEVICE,                                                                /* 7*/
@@ -182,8 +219,10 @@ struct cdevsw      cdevsw[] =
     NO_CDEVICE,                                                                /*11*/
     {
        kmopen,         kmclose,        kmread,         kmwrite,        /*12*/
-       kmioctl,        nulldev,        nulldev,        km_tty,         ttselect,
-       eno_mmap,       eno_strat,      kmgetc,         kmputc,         0
+       kmioctl,        ((stop_fcn_t *)&nulldev),
+                                       ((reset_fcn_t *)&nulldev),
+                                                       km_tty,         ttselect,
+       eno_mmap,       eno_strat,      eno_getc,       eno_putc,       0
     },
     NO_CDEVICE,                                                                /*13*/
     NO_CDEVICE,                                                                /*14*/
@@ -230,9 +269,7 @@ int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
  * return true if a disk
  */
 int
-isdisk(dev, type)
-       dev_t dev;
-       int type;
+isdisk(dev_t dev, int type)
 {
        dev_t   maj = major(dev);
 
@@ -283,8 +320,7 @@ static int chrtoblktab[] = {
  * convert chr dev to blk dev
  */
 dev_t
-chrtoblk(dev)
-       dev_t dev;
+chrtoblk(dev_t dev)
 {
        int blkmaj;
 
@@ -310,8 +346,8 @@ chrtoblk_set(int cdev, int bdev)
 /*
  * Returns true if dev is /dev/mem or /dev/kmem.
  */
-int iskmemdev(dev)
-       dev_t dev;
+int
+iskmemdev(dev_t dev)
 {
 
        return (major(dev) == 3 && minor(dev) < 2);