home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / os / machsun3.tz / machsun3 / mk.kernel / sun / conf.c next >
Encoding:
C/C++ Source or Header  |  1992-06-15  |  5.2 KB  |  221 lines

  1. /* 
  2.  * Mach Operating System
  3.  * Copyright (c) 1992 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.5  92/02/23  22:45:29  elf
  30.  *     Added getstat routines for xy and sd drivers.
  31.  *     [92/02/22  19:54:08  af]
  32.  * 
  33.  * Revision 2.4  91/08/28  11:17:44  jsb
  34.  *     Added entries for new dev_info field.
  35.  *     [91/08/27  17:56:37  jsb]
  36.  * 
  37.  * Revision 2.3  90/11/05  14:32:36  rpd
  38.  *     Added ie and xy from NCSC.
  39.  *     [90/10/26            rwd]
  40.  * 
  41.  * Revision 2.2  89/08/05  16:07:32  rwd
  42.  *     Added time device
  43.  *     [89/08/04            rwd]
  44.  * 
  45.  */
  46. #include <device/conf.h>
  47.  
  48. extern int block_io_mmap();
  49.  
  50. extern int cnopen(),cnclose(),cnread(),cnwrite(),cngetstat(),cnsetstat(),
  51.     cnportdeath();
  52. #define    cnname        "cl"
  53.  
  54. extern int timeopen(),timeclose(),timemmap();
  55. #define timename    "time"
  56.  
  57. #include <xy.h>
  58. #if    NXY > 0
  59. extern    int    xyopen(), xyread(), xywrite(), xygetstat();
  60. #define    xyname    "xy"
  61. #endif
  62.  
  63. #include <sd.h>
  64. #if NSD > 0
  65. extern int sdopen(),sdread(),sdwrite(),sdgetstat();
  66. #define sdname "sd"
  67. #endif
  68.  
  69. #include <zs.h>
  70. #if NZS > 0
  71. extern int zsopen(),zsclose(),zsread(),zswrite(),zsgetstat(),zssetstat(),
  72.     zsportdeath();
  73. #define zsname    "zs"
  74. #endif
  75.  
  76. #include <ie.h>
  77. #if NIE > 0
  78. extern int ieopen(),ieoutput(),iegetstat(),iesetstat(),iereset(),
  79.     iesetinput();
  80. #define iename "ie"
  81. #endif
  82.  
  83. #include <le.h>
  84. #if NLE > 0
  85. extern int leopen(),leoutput(),legetstat(),lesetstat(),lereset(),
  86.     lesetinput();
  87. #define lename "le"
  88. #endif
  89.  
  90. #include <bwtwo.h>
  91. #if NBWTWO > 0
  92. extern int bwtwoopen(), bwtwommap(), bwtwoclose(), bwtwogetstat(),
  93.     bwtwosetstat();
  94. #define bwtwoname "bwtwo"
  95. #endif
  96.  
  97. #include <cgfour.h>
  98. #if NCGFOUR > 0
  99. extern int cgfouropen(), cgfourmmap(), cgfourclose(), cgfourgetstat(),
  100.     cgfoursetstat();
  101. #define cgfourname "cgfour"
  102. #endif
  103.  
  104. #include <cgtwo.h>
  105. #if NCGTWO > 0
  106. extern int cgtwoopen(), cgtwommap(), cgtwoclose(), cgtwogetstat(),
  107.     cgtwosetstat();
  108. #define cgtwoname "cgtwo"
  109. #endif
  110.  
  111. #include <kb.h>
  112. #if NKB > 0
  113. extern int kbdopen(), kbdinput(), kbdfreset();
  114. #define kbdname "kbtran"
  115. #endif
  116.  
  117. /*
  118.  * List of devices - console must be at slot 0 and null at 1
  119.  */
  120. struct dev_ops    dev_name_list[] =
  121. {
  122.     /*name,        open,        close,        read,
  123.       write,    getstat,    setstat,    mmap,
  124.       async_in,    reset,        port_death,    subdev,
  125.       dev_info */
  126.  
  127.     { cnname,    cnopen,        cnclose,    cnread,
  128.       cnwrite,    cngetstat,    cnsetstat,    nodev,
  129.       nodev,    nulldev,    cnportdeath,    0,
  130.       nodev },
  131.  
  132.     { "null",    nulldev,    nulldev,    nulldev,
  133.       nulldev,    nulldev,    nulldev,    nodev,
  134.       nodev,    nulldev,    nulldev,    0,
  135.       nodev },
  136.  
  137.     { timename,    timeopen,    timeclose,    nulldev,
  138.       nulldev,    nulldev,    nulldev,    timemmap,
  139.       nodev,    nulldev,    nulldev,    0,
  140.       nodev },
  141.  
  142. #if NKB > 0
  143.     { kbdname,    kbdopen,    nodev,        nodev,
  144.       nodev,    nodev,        nodev,        nodev,
  145.       kbdinput,    kbdfreset,    nodev,        0,
  146.       nodev },
  147. #endif 
  148.  
  149. #if    NXY > 0
  150.     { xyname,    xyopen,        nulldev,    xyread,
  151.       xywrite,    xygetstat,    nulldev,    block_io_mmap,
  152.       nodev,    nulldev,    nulldev,    8,
  153.       nodev },
  154. #endif
  155.  
  156. #if NSD > 0
  157.     { sdname,    sdopen,        nulldev,    sdread,
  158.       sdwrite,    sdgetstat,    nulldev,    block_io_mmap,
  159.       nodev,    nulldev,    nulldev,    8,
  160.       nodev },
  161. #endif
  162.  
  163. #if NZS > 0
  164.     { zsname,    zsopen,        zsclose,    zsread,
  165.       zswrite,    zsgetstat,    zssetstat,    nodev,
  166.       nodev,    nulldev,    zsportdeath,    0,
  167.       nodev },
  168. #endif
  169.  
  170.  
  171. #if NIE > 0
  172.     { iename,    ieopen,        nulldev,    nodev,
  173.       ieoutput,    iegetstat,    iesetstat,    nodev,
  174.       iesetinput,    iereset,    nulldev,    0,
  175.       nodev },
  176. #endif
  177.  
  178. #if NLE > 0
  179.     { lename,    leopen,        nulldev,    nodev,
  180.       leoutput,    legetstat,    lesetstat,    nodev,
  181.       lesetinput,    lereset,    nulldev,    0,
  182.       nodev },
  183. #endif
  184.  
  185. #if NBWTWO > 0
  186.     { bwtwoname,    bwtwoopen,    bwtwoclose,    nodev,
  187.       nodev,    bwtwogetstat,    bwtwosetstat,    bwtwommap,
  188.       nodev,    nulldev,    nulldev,    0,
  189.       nodev },
  190. #endif
  191.  
  192. #if NCGFOUR > 0
  193.     { cgfourname,    cgfouropen,    cgfourclose,    nodev,
  194.       nodev,    cgfourgetstat,    cgfoursetstat,    cgfourmmap,
  195.       nodev,    nulldev,    nulldev,    0,
  196.       nodev },
  197. #endif
  198.  
  199. #if NCGTWO > 0
  200.     { cgtwoname,    cgtwoopen,    cgtwoclose,    nodev,
  201.       nodev,    cgtwogetstat,    cgtwosetstat,    cgtwommap,
  202.       nodev,    nulldev,    nulldev,    0,
  203.       nodev },
  204. #endif
  205.  
  206. };
  207. int    dev_name_count = sizeof(dev_name_list)/sizeof(dev_name_list[0]);
  208.  
  209. /*
  210.  * Indirect list.
  211.  */
  212. struct dev_indirect dev_indirect_list[] = {
  213.  
  214.     { "console",    &dev_name_list[0],    0 },
  215.     { "kbd",    &dev_name_list[1],    0 },
  216.     { "mouse",    &dev_name_list[1],    0 },
  217.     { "fb",        &dev_name_list[1],    0 },
  218. };
  219. int    dev_indirect_count = sizeof(dev_indirect_list)
  220.                 /sizeof(dev_indirect_list[0]);
  221.