The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/i386at/conf.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* 
    2  * Mach Operating System
    3  * Copyright (c) 1993-1989 Carnegie Mellon University
    4  * All Rights Reserved.
    5  * 
    6  * Permission to use, copy, modify and distribute this software and its
    7  * documentation is hereby granted, provided that both the copyright
    8  * notice and this permission notice appear in all copies of the
    9  * software, derivative works or modified versions, and any portions
   10  * thereof, and that both notices appear in supporting documentation.
   11  * 
   12  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
   13  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
   14  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
   15  * 
   16  * Carnegie Mellon requests users of this software to return to
   17  * 
   18  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
   19  *  School of Computer Science
   20  *  Carnegie Mellon University
   21  *  Pittsburgh PA 15213-3890
   22  * 
   23  * any improvements or extensions that they make and grant Carnegie Mellon
   24  * the rights to redistribute these changes.
   25  */
   26 /* 
   27  * HISTORY
   28  * $Log:        conf.c,v $
   29  * Revision 2.16  93/05/17  15:04:47  rvb
   30  *      Type casts, etc to quiet gcc 2.3.3 warnings
   31  *      [93/05/17            rvb]
   32  * 
   33  * Revision 2.15  93/03/09  10:54:33  danner
   34  *      Added SCSI CD-ROM Audio.  Added back SCSI processor links.
   35  *      [93/03/06            af]
   36  * 
   37  * Revision 2.14  93/02/05  08:18:31  danner
   38  *      Added include.
   39  *      [93/02/04            danner]
   40  * 
   41  * Revision 2.13  93/01/24  13:15:14  danner
   42  *      Add d-link "600" ethernet device "de"
   43  *      [92/08/13            rvb]
   44  * 
   45  * Revision 2.12  92/02/19  16:29:40  elf
   46  *      Add lpr and par devices.  (taken from 2.5)
   47  *      [92/02/13            rvb]
   48  * 
   49  * Revision 2.11  92/01/03  20:39:53  dbg
   50  *      Added devinfo routine to scsi to accomodate MI change
   51  *      that screwed up extra large writes.
   52  *      [91/12/26  11:06:54  af]
   53  * 
   54  * Revision 2.10  91/08/28  11:11:37  jsb
   55  *      Fixed field-describing comment in dev_name_list definition.
   56  *      [91/08/27  17:52:06  jsb]
   57  * 
   58  *      Convert bsize entries to devinfo entries.  Add nodev entries for
   59  *      devices that don't support devinfo.
   60  *      [91/08/15  18:43:13  jsb]
   61  * 
   62  *      Add block size entries for hd and fd.
   63  *      [91/08/12  17:32:55  dlb]
   64  * 
   65  * Revision 2.9  91/08/24  11:57:26  af
   66  *      Added SCSI disks, tapes, and cpus.
   67  *      [91/08/02  02:56:08  af]
   68  * 
   69  * Revision 2.8  91/05/14  16:22:01  mrt
   70  *      Correcting copyright
   71  * 
   72  * Revision 2.7  91/02/14  14:42:13  mrt
   73  *      Allow com driver and distinguish EtherLinkII from wd8003
   74  *      [91/01/28  15:27:02  rvb]
   75  * 
   76  * Revision 2.6  91/02/05  17:16:44  mrt
   77  *      Changed to new Mach copyright
   78  *      [91/02/01  17:42:38  mrt]
   79  * 
   80  * Revision 2.5  91/01/08  17:32:42  rpd
   81  *      Support for get/set status on hd and fd.
   82  *      Also fd has 64 minor devices per unit.
   83  *      Switch wd8003 -> ns8390
   84  *      [91/01/04  12:17:15  rvb]
   85  * 
   86  * Revision 2.4  90/10/01  14:23:02  jeffreyh
   87  *      added wd8003 ethernet driver
   88  *      [90/09/27  18:23:53  jeffreyh]
   89  * 
   90  * Revision 2.3  90/05/21  13:26:53  dbg
   91  *      Add mouse, keyboard, IOPL devices.
   92  *      [90/05/17            dbg]
   93  * 
   94  * Revision 2.2  90/05/03  15:41:34  dbg
   95  *      Add 3c501 under name 'et'.
   96  *      [90/04/27            dbg]
   97  * 
   98  *      Created.
   99  *      [90/02/20            dbg]
  100  * 
  101  */
  102 
  103 /*
  104  * Device switch for i386 AT bus.
  105  */
  106 
  107 #include <mach/machine/vm_types.h>
  108 #include <device/conf.h>
  109 
  110 extern vm_offset_t block_io_mmap();
  111 
  112 extern int      timeopen(), timeclose();
  113 extern vm_offset_t timemmap();
  114 #define timename                "time"
  115 
  116 #include <hd.h>
  117 #if     NHD > 0
  118 extern int      hdopen(), hdclose(), hdread(), hdwrite();
  119 extern int      hdgetstat(), hdsetstat(), hddevinfo();
  120 #define hdname                  "hd"
  121 #endif  NHD > 0
  122 
  123 #include <aha.h>
  124 #if     NAHA > 0
  125 int     rz_open(), rz_close(), rz_read(), rz_write();
  126 int     rz_get_status(), rz_set_status(), rz_devinfo();
  127 int     cd_open(), cd_close(), cd_read(), cd_write();
  128 #define rzname "sd"
  129 #define tzname "st"
  130 #define scname "sc"     /* processors */
  131 #define cdname  "cd_audio"      /* CD-ROM DA */
  132 
  133 #endif  /*NAHA > 0*/
  134 
  135 #include <fd.h>
  136 #if     NFD > 0
  137 extern int      fdopen(), fdclose(), fdread(), fdwrite();
  138 extern int      fdgetstat(), fdsetstat(), fddevinfo();
  139 #define fdname                  "fd"
  140 #endif  NFD > 0
  141 
  142 #include <wt.h>
  143 #if     NWT > 0
  144 extern int      wtopen(), wtread(), wtwrite(), wtclose();
  145 #define wtname                  "wt"
  146 #endif  NWT > 0
  147 
  148 #include <pc586.h>
  149 #if     NPC586 > 0
  150 extern int      pc586open(), pc586output(), pc586getstat(), pc586setstat(),
  151                 pc586setinput();
  152 #define pc586name               "pc"
  153 #endif NPC586 > 0
  154 
  155 #include <ns8390.h>
  156 #if     NNS8390 > 0
  157 extern int      wd8003open(), eliiopen();
  158 extern int      ns8390output(), ns8390getstat(), ns8390setstat(), 
  159                 ns8390setinput();
  160 #define ns8390wdname            "wd"
  161 #define ns8390elname            "el"
  162 #endif NNS8390 > 0
  163 
  164 #include <at3c501.h>
  165 #if     NAT3C501 > 0
  166 extern int      at3c501open(), at3c501output(),
  167                 at3c501getstat(), at3c501setstat(),
  168                 at3c501setinput();
  169 #define at3c501name             "et"
  170 #endif NAT3C501 > 0
  171 
  172 #include <par.h>
  173 #if     NPAR > 0
  174 extern int      paropen(), paroutput(), pargetstat(), parsetstat(),
  175                 parsetinput();
  176 #define parname         "par"
  177 #endif NPAR > 0
  178 
  179 #include <de6c.h>
  180 #if     NDE6C > 0
  181 extern int      de6copen(), de6coutput(), de6cgetstat(), de6csetstat(),
  182                 de6csetinput();
  183 #define de6cname                "de"
  184 #endif NDE6C > 0
  185 
  186 extern int      kdopen(), kdclose(), kdread(), kdwrite();
  187 extern int      kdgetstat(), kdsetstat(), kdportdeath();
  188 extern vm_offset_t kdmmap();
  189 #define kdname                  "kd"
  190 
  191 #include <com.h>
  192 #if     NCOM > 0
  193 extern int      comopen(), comclose(), comread(), comwrite();
  194 extern int      comgetstat(), comsetstat(), comportdeath();
  195 #define comname                 "com"
  196 #endif  NCOM > 0
  197 
  198 #include <lpr.h>
  199 #if     NLPR > 0
  200 extern int      lpropen(), lprclose(), lprread(), lprwrite();
  201 extern int      lprgetstat(), lprsetstat(), lprportdeath();
  202 #define lprname                 "lpr"
  203 #endif  NLPR > 0
  204 
  205 #include <blit.h>
  206 #if NBLIT > 0
  207 extern int      blitopen(), blitclose(), blit_get_stat();
  208 extern vm_offset_t blitmmap();
  209 #define blitname                "blit"
  210 
  211 extern int      mouseinit(), mouseopen(), mouseclose();
  212 extern int      mouseioctl(), mouseselect(), mouseread();
  213 #endif
  214 
  215 extern int      kbdopen(), kbdclose(), kbdread();
  216 extern int      kbdgetstat(), kbdsetstat();
  217 #define kbdname                 "kbd"
  218 
  219 extern int      mouseopen(), mouseclose(), mouseread();
  220 #define mousename               "mouse"
  221 
  222 extern int      ioplopen(), ioplclose();
  223 extern vm_offset_t ioplmmap();
  224 #define ioplname                "iopl"
  225 
  226 
  227 /*
  228  * List of devices - console must be at slot 0
  229  */
  230 struct dev_ops  dev_name_list[] =
  231 {
  232         /*name,         open,           close,          read,
  233           write,        getstat,        setstat,        mmap,
  234           async_in,     reset,          port_death,     subdev,
  235           dev_info */
  236 
  237         { kdname,       kdopen,         kdclose,        kdread,
  238           kdwrite,      kdgetstat,      kdsetstat,      kdmmap,
  239           nodev,        nulldev,        kdportdeath,    0,
  240           nodev },
  241 
  242         { timename,     timeopen,       timeclose,      nulldev,
  243           nulldev,      nulldev,        nulldev,        timemmap,
  244           nodev,        nulldev,        nulldev,        0,
  245           nodev },
  246 
  247 #if     NHD > 0
  248         { hdname,       hdopen,         hdclose,        hdread,
  249           hdwrite,      hdgetstat,      hdsetstat,      nomap,
  250           nodev,        nulldev,        nulldev,        16,
  251           hddevinfo },
  252 #endif  NHD > 0
  253 
  254 #if     NAHA > 0
  255         { rzname,       rz_open,        rz_close,       rz_read,
  256           rz_write,     rz_get_status,  rz_set_status,  nomap,
  257           nodev,        nulldev,        nulldev,        8,
  258           rz_devinfo },
  259 
  260         { tzname,       rz_open,        rz_close,       rz_read,
  261           rz_write,     rz_get_status,  rz_set_status,  nomap,
  262           nodev,        nulldev,        nulldev,        8,
  263           nodev },
  264 
  265         { cdname,       cd_open,        cd_close,       cd_read,
  266           cd_write,     nodev,          nodev,          nomap,
  267           nodev,        nulldev,        nulldev,        8,
  268           nodev },
  269 
  270         { scname,       rz_open,        rz_close,       rz_read,
  271           rz_write,     rz_get_status,  rz_set_status,  nomap,
  272           nodev,        nulldev,        nulldev,        8,
  273           nodev },
  274 
  275 #endif  /*NAHA > 0*/
  276 
  277 #if     NFD > 0
  278         { fdname,       fdopen,         fdclose,        fdread,
  279           fdwrite,      fdgetstat,      fdsetstat,      nomap,
  280           nodev,        nulldev,        nulldev,        64,
  281           fddevinfo },
  282 #endif  NFD > 0
  283 
  284 #if     NWT > 0
  285         { wtname,       wtopen,         wtclose,        wtread,
  286           wtwrite,      nulldev,        nulldev,        nomap,
  287           nodev,        nulldev,        nulldev,        0,
  288           nodev },
  289 #endif  NWT > 0
  290 
  291 #if     NPC586 > 0
  292         { pc586name,    pc586open,      nulldev,        nulldev,
  293           pc586output,  pc586getstat,   pc586setstat,   nomap,
  294           pc586setinput,nulldev,        nulldev,        0,
  295           nodev },
  296 #endif
  297 
  298 #if     NAT3C501 > 0
  299         { at3c501name,  at3c501open,    nulldev,        nulldev,
  300           at3c501output,at3c501getstat, at3c501setstat, nomap,
  301           at3c501setinput, nulldev,     nulldev,        0,
  302           nodev },
  303 #endif
  304 
  305 #if     NNS8390 > 0
  306         { ns8390wdname, wd8003open,     nulldev,        nulldev,
  307           ns8390output, ns8390getstat,  ns8390setstat,  nomap,
  308           ns8390setinput, nulldev,      nulldev,        0,
  309           nodev },
  310 
  311         { ns8390elname, eliiopen,       nulldev,        nulldev,
  312           ns8390output, ns8390getstat,  ns8390setstat,  nomap,
  313           ns8390setinput, nulldev,      nulldev,        0,
  314           nodev },
  315 #endif
  316 
  317 #if     NPAR > 0
  318         { parname,      paropen,        nulldev,        nulldev,
  319           paroutput,    pargetstat,     parsetstat,     nomap,
  320           parsetinput,  nulldev,        nulldev,        0,
  321           nodev },
  322 #endif
  323 
  324 #if     NDE6C > 0
  325         { de6cname,     de6copen,       nulldev,        nulldev,
  326           de6coutput,   de6cgetstat,    de6csetstat,    nomap,
  327           de6csetinput, nulldev,        nulldev,        0,
  328           nodev },
  329 #endif
  330 
  331 #if     NCOM > 0
  332         { comname,      comopen,        comclose,       comread,
  333           comwrite,     comgetstat,     comsetstat,     nomap,
  334           nodev,        nulldev,        comportdeath,   0,
  335           nodev },
  336 #endif
  337 
  338 #if     NLPR > 0
  339         { lprname,      lpropen,        lprclose,       lprread,
  340           lprwrite,     lprgetstat,     lprsetstat,     nomap,
  341           nodev,        nulldev,        lprportdeath,   0,
  342           nodev },
  343 #endif
  344 
  345 #if     NBLIT > 0
  346         { blitname,     blitopen,       blitclose,      nodev,
  347           nodev,        blit_get_stat,  nodev,          blitmmap,
  348           nodev,        nodev,          nodev,          0,
  349           nodev },
  350 #endif
  351 
  352         { mousename,    mouseopen,      mouseclose,     mouseread,
  353           nodev,        nulldev,        nulldev,        nomap,
  354           nodev,        nulldev,        nulldev,        0,
  355           nodev },
  356 
  357         { kbdname,      kbdopen,        kbdclose,       kbdread,
  358           nodev,        kbdgetstat,     kbdsetstat,     nomap,
  359           nodev,        nulldev,        nulldev,        0,
  360           nodev },
  361 
  362         { ioplname,     ioplopen,       ioplclose,      nodev,
  363           nodev,        nodev,          nodev,          ioplmmap,
  364           nodev,        nulldev,        nulldev,        0,
  365           nodev },
  366 };
  367 int     dev_name_count = sizeof(dev_name_list)/sizeof(dev_name_list[0]);
  368 
  369 /*
  370  * Indirect list.
  371  */
  372 struct dev_indirect dev_indirect_list[] = {
  373 
  374         /* console */
  375         { "console",    &dev_name_list[0],      0 }
  376 };
  377 int     dev_indirect_count = sizeof(dev_indirect_list)
  378                                 / sizeof(dev_indirect_list[0]);

Cache object: bf04be6fd649cf7189f085dcd3b37848


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.