[BACK]Return to conf.c CVS log [TXT][DIR] Up to [local] / sys / arch / arm / arm

Annotation of sys/arch/arm/arm/conf.c, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: conf.c,v 1.16 2007/05/28 22:26:03 todd Exp $  */
                      2: /*     $NetBSD: conf.c,v 1.10 2002/04/19 01:04:38 wiz Exp $    */
                      3:
                      4: /*
                      5:  * Copyright (c) 1994-1998 Mark Brinicombe.
                      6:  * All rights reserved.
                      7:  *
                      8:  * Redistribution and use in source and binary forms, with or without
                      9:  * modification, are permitted provided that the following conditions
                     10:  * are met:
                     11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
                     16:  * 3. All advertising materials mentioning features or use of this software
                     17:  *    must display the following acknowledgement:
                     18:  *     This product includes software developed by Mark Brinicombe
                     19:  *     for the NetBSD Project.
                     20:  * 4. The name of the company nor the name of the author may be used to
                     21:  *    endorse or promote products derived from this software without specific
                     22:  *    prior written permission.
                     23:  *
                     24:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
                     25:  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
                     26:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     27:  * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
                     28:  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
                     29:  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
                     30:  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     31:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     32:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     33:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     34:  * SUCH DAMAGE.
                     35:  *
                     36:  * RiscBSD kernel project
                     37:  *
                     38:  * conf.c
                     39:  *
                     40:  * Character and Block Device configuration
                     41:  * Console configuration
                     42:  *
                     43:  * Defines the structures cdevsw and constab
                     44:  *
                     45:  * Created      : 17/09/94
                     46:  */
                     47:
                     48: #include <sys/param.h>
                     49: #include <sys/systm.h>
                     50: #include <sys/buf.h>
                     51: #include <sys/ioctl.h>
                     52: #include <sys/tty.h>
                     53: #include <sys/conf.h>
                     54: #include <sys/vnode.h>
                     55:
                     56: #include <machine/conf.h>
                     57:
                     58: #include "inet.h"
                     59:
                     60: /*
                     61:  * From this point, these need to be MI foo.h files.
                     62:  */
                     63:
                     64: /*
                     65:  * Standard MI devices (e.g. ones in dev/ic)
                     66:  */
                     67: #include "com.h"               /* NS164x0 serial ports */
                     68:
                     69: /*
                     70:  * Standard pseudo-devices
                     71:  */
                     72: #include "bpfilter.h"
                     73: #include "pf.h"
                     74: #include "pty.h"
                     75: #include "tun.h"
                     76: #include "ksyms.h"
                     77:
                     78: /*
                     79:  * APM interface
                     80:  */
                     81: #ifdef CONF_HAVE_APM
                     82: #include "apm.h"
                     83: #else
                     84: #define NAPM   0
                     85: #endif
                     86:
                     87: /*
                     88:  * Disk/Filesystem pseudo-devices
                     89:  */
                     90: #include "ccd.h"                       /* concatenated disk driver */
                     91: #include "rd.h"                                /* memory disk driver */
                     92: #include "raid.h"                      /* RAIDframe */
                     93: #include "vnd.h"                       /* vnode disk driver */
                     94:
                     95: /*
                     96:  * WD/ATA devices
                     97:  */
                     98: #include "wd.h"
                     99: bdev_decl(wd);
                    100: bdev_decl(sw);
                    101:
                    102: #ifdef USER_PCICONF
                    103: #include "pci.h"
                    104: cdev_decl(pci);
                    105: #endif
                    106:
                    107: /*
                    108:  * SCSI/ATAPI devices
                    109:  */
                    110: #include "sd.h"
                    111: #include "st.h"
                    112: #include "cd.h"
                    113: #include "ch.h"
                    114: #include "uk.h"
                    115: #include "ss.h"
                    116: #include "bio.h"
                    117:
                    118: /*
                    119:  * Audio devices
                    120:  */
                    121: #include "audio.h"
                    122: #include "midi.h"
                    123: #include "sequencer.h"
                    124:
                    125: /*
                    126:  * USB devices
                    127:  */
                    128: #include "usb.h"
                    129: #include "ucom.h"
                    130: #include "ugen.h"
                    131: #include "uhid.h"
                    132: #include "ulpt.h"
                    133: #include "urio.h"
                    134: #include "uscanner.h"
                    135:
                    136: /*
                    137:  * WSCONS devices
                    138:  */
                    139: #include "wsdisplay.h"
                    140: /*
                    141: #include "wsfont.h"
                    142: */
                    143: #include "wskbd.h"
                    144: #include "wsmouse.h"
                    145: #include "wsmux.h"
                    146: cdev_decl(wskbd);
                    147: cdev_decl(wsmouse);
                    148:
                    149: #include "lpt.h"
                    150: #ifdef CONF_HAVE_FCOM
                    151: #include "fcom.h"
                    152: #else
                    153: #define NFCOM  0
                    154: #endif
                    155:
                    156: #include "radio.h"
                    157: cdev_decl(radio);
                    158:
                    159: #include <arm/conf.h>
                    160:
                    161: /* Block devices */
                    162:
                    163: struct bdevsw bdevsw[] = {
                    164:        bdev_lkm_dummy(),               /*  0: */
                    165:        bdev_swap_init(1, sw),          /*  1: swap pseudo-device */
                    166:        bdev_lkm_dummy(),               /*  2: */
                    167:        bdev_lkm_dummy(),               /*  3: */
                    168:        bdev_lkm_dummy(),               /*  4: */
                    169:        bdev_lkm_dummy(),               /*  5: */
                    170:        bdev_lkm_dummy(),               /*  6: */
                    171:        bdev_lkm_dummy(),               /*  7: */
                    172:        bdev_lkm_dummy(),               /*  8: */
                    173:        bdev_lkm_dummy(),               /*  9: */
                    174:        bdev_lkm_dummy(),               /* 10: */
                    175:        bdev_lkm_dummy(),               /* 11: */
                    176:        bdev_lkm_dummy(),               /* 12: */
                    177:        bdev_lkm_dummy(),               /* 13: */
                    178:        bdev_lkm_dummy(),               /* 14: */
                    179:        bdev_lkm_dummy(),               /* 15: */
                    180:        bdev_disk_init(NWD,wd),         /* 16: Internal IDE disk */
                    181:        bdev_lkm_dummy(),               /* 17: */
                    182:        bdev_disk_init(NRD,rd),         /* 18: memory disk */
                    183:        bdev_disk_init(NVND,vnd),       /* 19: vnode disk driver */
                    184:        bdev_lkm_dummy(),               /* 20: */
                    185:        bdev_disk_init(NCCD,ccd),       /* 21: concatenated disk driver */
                    186:        bdev_lkm_dummy(),               /* 22: */
                    187:        bdev_lkm_dummy(),               /* 23: */
                    188:        bdev_disk_init(NSD,sd),         /* 24: SCSI disk */
                    189:        bdev_tape_init(NST,st),         /* 25: SCSI tape */
                    190:        bdev_disk_init(NCD,cd),         /* 26: SCSI cdrom */
                    191:        bdev_lkm_dummy(),               /* 27: */
                    192:        bdev_lkm_dummy(),               /* 28: */
                    193:        bdev_lkm_dummy(),               /* 29: */
                    194:        bdev_lkm_dummy(),               /* 30: */
                    195:        bdev_lkm_dummy(),               /* 31: */
                    196:        bdev_lkm_dummy(),               /* 32: */
                    197:        bdev_lkm_dummy(),               /* 33: */
                    198:        bdev_lkm_dummy(),               /* 34: */
                    199:        bdev_lkm_dummy(),               /* 35: */
                    200:        bdev_lkm_dummy(),               /* 36: */
                    201:        bdev_lkm_dummy(),               /* 37: */
                    202:        bdev_lkm_dummy(),               /* 38: */
                    203:        bdev_lkm_dummy(),               /* 39: */
                    204:        bdev_lkm_dummy(),               /* 40: */
                    205:        bdev_lkm_dummy(),               /* 41: */
                    206:        bdev_lkm_dummy(),               /* 42: */
                    207:        bdev_lkm_dummy(),               /* 43: */
                    208:        bdev_lkm_dummy(),               /* 44: */
                    209:        bdev_lkm_dummy(),               /* 45: */
                    210:        bdev_lkm_dummy(),               /* 46: */
                    211:        bdev_lkm_dummy(),               /* 47: */
                    212:        bdev_lkm_dummy(),               /* 48: */
                    213:        bdev_lkm_dummy(),               /* 49: */
                    214:        bdev_lkm_dummy(),               /* 50: */
                    215:        bdev_lkm_dummy(),               /* 51: */
                    216:        bdev_lkm_dummy(),               /* 52: */
                    217:        bdev_lkm_dummy(),               /* 53: */
                    218:        bdev_lkm_dummy(),               /* 54: */
                    219:        bdev_lkm_dummy(),               /* 55: */
                    220:        bdev_lkm_dummy(),               /* 56: */
                    221:        bdev_lkm_dummy(),               /* 57: */
                    222:        bdev_lkm_dummy(),               /* 58: */
                    223:        bdev_lkm_dummy(),               /* 59: */
                    224:        bdev_lkm_dummy(),               /* 60: */
                    225:        bdev_lkm_dummy(),               /* 61: */
                    226:        bdev_lkm_dummy(),               /* 62: */
                    227:        bdev_lkm_dummy(),               /* 63: */
                    228:        bdev_lkm_dummy(),               /* 64: */
                    229:        bdev_lkm_dummy(),               /* 65: */
                    230:        bdev_lkm_dummy(),               /* 66: */
                    231:        bdev_lkm_dummy(),               /* 67: */
                    232:        bdev_lkm_dummy(),               /* 68: */
                    233:        bdev_lkm_dummy(),               /* 69: */
                    234:        bdev_lkm_dummy(),               /* 70: */
                    235:        bdev_disk_init(NRAID,raid),     /* 71: RAIDframe disk driver */
                    236:        bdev_lkm_dummy(),               /* 72: */
                    237:        bdev_lkm_dummy(),               /* 73: */
                    238:        bdev_lkm_dummy(),               /* 74: */
                    239:        bdev_lkm_dummy(),               /* 75: */
                    240:        bdev_lkm_dummy(),               /* 76: */
                    241:        bdev_lkm_dummy(),               /* 77: */
                    242:        bdev_lkm_dummy(),               /* 78: */
                    243:        bdev_lkm_dummy(),               /* 79: */
                    244:        bdev_lkm_dummy(),               /* 80: */
                    245:        bdev_lkm_dummy(),               /* 81: */
                    246:        bdev_lkm_dummy(),               /* 82: */
                    247:        bdev_lkm_dummy(),               /* 83: */
                    248:        bdev_lkm_dummy(),               /* 84: */
                    249:        bdev_lkm_dummy(),               /* 85: */
                    250:        bdev_lkm_dummy(),               /* 86: */
                    251:        bdev_lkm_dummy(),               /* 87: */
                    252:        bdev_lkm_dummy(),               /* 88: */
                    253:        bdev_lkm_dummy(),               /* 89: */
                    254:        bdev_lkm_dummy(),               /* 90: */
                    255:        bdev_lkm_dummy(),               /* 91: */
                    256:        bdev_lkm_dummy(),               /* 93: */
                    257:        bdev_lkm_dummy(),               /* 94: */
                    258:        bdev_lkm_dummy(),               /* 95: */
                    259:        bdev_lkm_dummy(),               /* 96: */
                    260:        bdev_lkm_dummy(),               /* 97: */
                    261: };
                    262:
                    263: /* Character devices */
                    264: #define ptstty          ptytty
                    265: #define ptsioctl        ptyioctl
                    266: #define ptctty          ptytty
                    267: #define ptcioctl        ptyioctl
                    268:
                    269: #ifdef XFS
                    270: #include <xfs/nxfs.h>
                    271: cdev_decl(xfs_dev);
                    272: #endif
                    273: #include "systrace.h"
                    274:
                    275: #include "hotplug.h"
                    276:
                    277: #ifdef CONF_HAVE_GPIO
                    278: #include "gpio.h"
                    279: #else
                    280: #define        NGPIO 0
                    281: #endif
                    282:
                    283: #ifdef CONF_HAVE_SPKR
                    284: #include "spkr.h"
                    285: #else
                    286: #define        NSPKR 0
                    287: #endif
                    288:
                    289: struct cdevsw cdevsw[] = {
                    290:        cdev_cn_init(1,cn),                     /*  0: virtual console */
                    291:        cdev_ctty_init(1,ctty),                 /*  1: controlling terminal */
                    292:        cdev_mm_init(1,mm),                     /*  2: /dev/{null,mem,kmem,...} */
                    293:        cdev_swap_init(1,sw),                   /*  3: /dev/drum (swap pseudo-device) */
                    294:        cdev_tty_init(NPTY,pts),                /*  4: pseudo-tty slave */
                    295:        cdev_ptc_init(NPTY,ptc),                /*  5: pseudo-tty master */
                    296:        cdev_log_init(1,log),                   /*  6: /dev/klog */
                    297:        cdev_fd_init(1,filedesc),               /*  7: file descriptor pseudo-device */
                    298:        cdev_ksyms_init(NKSYMS,ksyms),          /*  8: Kernel symbols device */
                    299:        cdev_lpt_init(NLPT,lpt),                /*  9: parallel printer */
                    300:        cdev_lkm_dummy(),                       /* 10: */
                    301:        cdev_lkm_dummy(),                       /* 11: */
                    302:        cdev_tty_init(NCOM,com),                /* 12: serial port */
                    303:        cdev_gpio_init(NGPIO,gpio),             /* 13: GPIO interface */
                    304:        cdev_lkm_dummy(),                       /* 14: */
                    305:        cdev_lkm_dummy(),                       /* 15: */
                    306:        cdev_disk_init(NWD,wd),                 /* 16: ST506/ESDI/IDE disk */
                    307:        cdev_lkm_dummy(),                       /* 17: */
                    308:        cdev_disk_init(NRD,rd),                 /* 18: ram disk driver */
                    309:        cdev_disk_init(NVND,vnd),               /* 19: vnode disk driver */
                    310:        cdev_lkm_dummy(),                       /* 20: */
                    311:        cdev_disk_init(NCCD,ccd),               /* 21: concatenated disk driver */
                    312:        cdev_bpftun_init(NBPFILTER,bpf),        /* 22: Berkeley packet filter */
                    313:        cdev_lkm_dummy(),                       /* 23: */
                    314:        cdev_disk_init(NSD,sd),                 /* 24: SCSI disk */
                    315:        cdev_tape_init(NST,st),                 /* 25: SCSI tape */
                    316:        cdev_disk_init(NCD,cd),                 /* 26: SCSI CD-ROM */
                    317:        cdev_ch_init(NCH,ch),                   /* 27: SCSI autochanger */
                    318:        cdev_uk_init(NUK,uk),                   /* 28: SCSI unknown */
                    319:        cdev_scanner_init(NSS,ss),              /* 29: SCSI scanner */
                    320:        cdev_lkm_dummy(),                       /* 30: */
                    321:        cdev_lkm_dummy(),                       /* 31: */
                    322:        cdev_lkm_dummy(),                       /* 32: */
                    323:        cdev_bpftun_init(NTUN,tun),             /* 33: network tunnel */
                    324:        cdev_apm_init(NAPM,apm),                /* 34: APM interface */
                    325:        cdev_lkm_init(NLKM,lkm),                /* 35: loadable module driver */
                    326:        cdev_audio_init(NAUDIO,audio),          /* 36: generic audio I/O */
                    327:        cdev_hotplug_init(NHOTPLUG,hotplug),    /* 37: devices hot plugging*/
                    328:        cdev_notdef(),                          /* 38: removed cpu device */
                    329:        cdev_lkm_dummy(),                       /* 39: reserved */
                    330:        cdev_random_init(1,random),             /* 40: random generator */
                    331:        cdev_lkm_dummy(),                       /* 41: reserved */
                    332:        cdev_lkm_dummy(),                       /* 42: reserved */
                    333:        cdev_lkm_dummy(),                       /* 43: reserved */
                    334:        cdev_lkm_dummy(),                       /* 44: reserved */
                    335:        cdev_lkm_dummy(),                       /* 45: reserved */
                    336:        cdev_pf_init(NPF,pf),                   /* 46: packet filter */
                    337:        cdev_crypto_init(NCRYPTO,crypto),       /* 47: /dev/crypto */
                    338:        cdev_lkm_dummy(),                       /* 48: reserved */
                    339:        cdev_lkm_dummy(),                       /* 49: reserved */
                    340:        cdev_systrace_init(NSYSTRACE,systrace), /* 50: system call tracing */
                    341: #ifdef XFS
                    342:        cdev_xfs_init(NXFS,xfs_dev),            /* 51: xfs communication device */
                    343: #else
                    344:        cdev_notdef(),                          /* 51: reserved */
                    345: #endif
                    346:        cdev_bio_init(NBIO,bio),                /* 52: ioctl tunnel */
                    347:        cdev_notdef(),                          /* 53: reserved */
                    348:        cdev_tty_init(NFCOM,fcom),              /* 54: FOOTBRIDGE console */
                    349:        cdev_lkm_dummy(),                       /* 55: Reserved for bypass device */
                    350:        cdev_notdef(),                          /* 56: reserved */
                    351:        cdev_midi_init(NMIDI,midi),             /* 57: MIDI I/O */
                    352:        cdev_midi_init(NSEQUENCER,sequencer),   /* 58: sequencer I/O */
                    353:        cdev_notdef(),                          /* 59: reserved */
                    354:        cdev_wsdisplay_init(NWSDISPLAY,wsdisplay), /* 60: frame buffers, etc.*/
                    355:        cdev_mouse_init(NWSKBD,wskbd),          /* 61: keyboards */
                    356:        cdev_mouse_init(NWSMOUSE,wsmouse),      /* 62: mice */
                    357:        cdev_mouse_init(NWSMUX,wsmux),          /* 63: ws multiplexor */
                    358:        cdev_usb_init(NUSB,usb),                /* 64: USB controller */
                    359:        cdev_usbdev_init(NUHID,uhid),           /* 65: USB generic HID */
                    360:        cdev_lpt_init(NULPT,ulpt),              /* 66: USB printer */
                    361:        cdev_urio_init(NURIO,urio),             /* 67: Diamond Rio 500 */
                    362:        cdev_tty_init(NUCOM,ucom),              /* 68: USB tty */
                    363:        cdev_usbdev_init(NUSCANNER,uscanner),   /* 69: USB scanner */
                    364:        cdev_usbdev_init(NUGEN,ugen),           /* 70: USB generic driver */
                    365:        cdev_disk_init(NRAID,raid),             /* 71: RAIDframe disk driver */
                    366:        cdev_lkm_dummy(),                       /* 72: reserved */
                    367:        cdev_lkm_dummy(),                       /* 73: reserved */
                    368:        cdev_lkm_dummy(),                       /* 74: reserved */
                    369:        cdev_lkm_dummy(),                       /* 75: reserved */
                    370:        cdev_lkm_dummy(),                       /* 76: reserved */
                    371:        cdev_notdef(),                          /* 77: removed device */
                    372:        cdev_notdef(),                          /* 78: removed device */
                    373:        cdev_notdef(),                          /* 79: removed device */
                    374:        cdev_notdef(),                          /* 80: removed device */
                    375:        cdev_notdef(),                          /* 81: removed device */
                    376:        cdev_notdef(),                          /* 82: removed device */
                    377:        cdev_notdef(),                          /* 83: removed device */
                    378:        cdev_notdef(),                          /* 84: removed device */
                    379:        cdev_notdef(),                          /* 85: removed device */
                    380:        cdev_notdef(),                          /* 86: removed device */
                    381:        cdev_notdef(),                          /* 87: removed device */
                    382: #ifdef USER_PCICONF
                    383:        cdev_pci_init(NPCI,pci),                /* 88: PCI user */
                    384: #else
                    385:        cdev_notdef(),
                    386: #endif
                    387:        cdev_notdef(),                          /* 89: removed device */
                    388:        cdev_notdef(),                          /* 90: removed device */
                    389:        cdev_notdef(),                          /* 91: removed device */
                    390:        cdev_notdef(),                          /* 92: removed device */
                    391:        cdev_notdef(),                          /* 93: removed device */
                    392:        cdev_notdef(),                          /* 94: removed device */
                    393:        cdev_notdef(),                          /* 95: removed device */
                    394:        cdev_notdef(),                          /* 96: removed device */
                    395:        cdev_radio_init(NRADIO,radio),          /* 97: generic radio I/O */
                    396:        cdev_ptm_init(NPTY,ptm),                /* 98: pseudo-tty ptm device */
                    397:        cdev_spkr_init(NSPKR,spkr),             /* 99: PC speaker */
                    398: };
                    399:
                    400: int nblkdev = sizeof(bdevsw) / sizeof(bdevsw[0]);
                    401: int nchrdev = sizeof(cdevsw) / sizeof(cdevsw[0]);
                    402:
                    403: int mem_no = 2;        /* major device number of memory special file */
                    404:
                    405: /*
                    406:  * Swapdev is a fake device implemented
                    407:  * in sw.c used only internally to get to swstrategy.
                    408:  * It cannot be provided to the users, because the
                    409:  * swstrategy routine munches the b_dev and b_blkno entries
                    410:  * before calling the appropriate driver.  This would horribly
                    411:  * confuse, e.g. the hashing routines. Instead, /dev/drum is
                    412:  * provided as a character (raw) device.
                    413:  */
                    414: dev_t  swapdev = makedev(1, 0);
                    415:
                    416: /*
                    417:  * Returns true if dev is /dev/mem or /dev/kmem.
                    418:  */
                    419: int
                    420: iskmemdev(dev)
                    421:        dev_t dev;
                    422: {
                    423:        return (major(dev) == mem_no && minor(dev) < 2);
                    424: }
                    425:
                    426: /*
                    427:  * Returns true if dev is /dev/zero.
                    428:  */
                    429: int
                    430: iszerodev(dev)
                    431:        dev_t dev;
                    432: {
                    433:        return (major(dev) == mem_no && minor(dev) == 3);
                    434: }
                    435:
                    436:
                    437: int chrtoblktbl[] = {
                    438: /* XXXX This needs to be dynamic for LKMs. */
                    439:     /*VCHR*/        /*VBLK*/
                    440:     /*  0 */        NODEV,
                    441:     /*  1 */        1,
                    442:     /*  2 */        NODEV,
                    443:     /*  3 */        NODEV,
                    444:     /*  4 */        NODEV,
                    445:     /*  5 */        NODEV,
                    446:     /*  6 */        NODEV,
                    447:     /*  7 */        NODEV,
                    448:     /*  8 */        NODEV,
                    449:     /*  9 */        NODEV,
                    450:     /* 10 */        NODEV,
                    451:     /* 11 */        NODEV,
                    452:     /* 12 */        NODEV,
                    453:     /* 13 */        NODEV,
                    454:     /* 14 */        NODEV,
                    455:     /* 15 */        NODEV,
                    456:     /* 16 */        16,
                    457:     /* 17 */        17,
                    458:     /* 18 */        18,
                    459:     /* 19 */        19,
                    460:     /* 20 */        NODEV,
                    461:     /* 21 */        21,
                    462:     /* 22 */        NODEV,
                    463:     /* 23 */        NODEV,
                    464:     /* 24 */        24,
                    465:     /* 25 */        25,
                    466:     /* 26 */        26,
                    467:     /* 27 */        NODEV,
                    468:     /* 28 */        NODEV,
                    469:     /* 29 */        NODEV,
                    470:     /* 30 */        NODEV,
                    471:     /* 31 */        NODEV,
                    472:     /* 32 */        NODEV,
                    473:     /* 33 */        NODEV,
                    474:     /* 34 */        NODEV,
                    475:     /* 35 */        NODEV,
                    476:     /* 36 */        NODEV,
                    477:     /* 37 */        NODEV,
                    478:     /* 38 */        NODEV,
                    479:     /* 39 */        NODEV,
                    480:     /* 40 */        NODEV,
                    481:     /* 41 */        NODEV,
                    482:     /* 42 */        NODEV,
                    483:     /* 43 */        NODEV,
                    484:     /* 44 */        NODEV,
                    485:     /* 45 */        NODEV,
                    486:     /* 46 */        NODEV,
                    487:     /* 47 */        NODEV,
                    488:     /* 48 */        NODEV,
                    489:     /* 49 */        NODEV,
                    490:     /* 50 */        NODEV,
                    491:     /* 51 */        NODEV,
                    492:     /* 52 */        NODEV,
                    493:     /* 53 */        NODEV,
                    494:     /* 54 */        NODEV,
                    495:     /* 55 */        NODEV,
                    496:     /* 56 */       NODEV,
                    497:     /* 57 */       NODEV,
                    498:     /* 58 */       NODEV,
                    499:     /* 59 */        NODEV,
                    500:     /* 60 */        NODEV,
                    501:     /* 61 */        NODEV,
                    502:     /* 62 */        NODEV,
                    503:     /* 63 */        NODEV,
                    504:     /* 64 */        NODEV,
                    505:     /* 65 */        NODEV,
                    506:     /* 66 */       NODEV,
                    507:     /* 67 */       NODEV,
                    508:     /* 68 */       NODEV,
                    509:     /* 69 */       NODEV,
                    510:     /* 70 */       NODEV,
                    511:     /* 71 */       71,
                    512:     /* 72 */       NODEV,
                    513:     /* 73 */       NODEV,
                    514:     /* 74 */       NODEV,
                    515:     /* 75 */       NODEV,
                    516:     /* 76 */       NODEV,
                    517:     /* 77 */       NODEV,
                    518:     /* 78 */       NODEV,
                    519:     /* 79 */       NODEV,
                    520:     /* 80 */       NODEV,
                    521:     /* 81 */       NODEV,
                    522:     /* 82 */       NODEV,
                    523:     /* 83 */       NODEV,
                    524:     /* 84 */       NODEV,
                    525:     /* 85 */       NODEV,
                    526:     /* 86 */       NODEV,
                    527:     /* 87 */       NODEV,
                    528:     /* 88 */       NODEV,
                    529:     /* 89 */       NODEV,
                    530:     /* 90 */       NODEV,
                    531:     /* 91 */       NODEV,
                    532:     /* 92 */       92,
                    533:     /* 93 */       NODEV,
                    534:     /* 94 */       NODEV,
                    535:     /* 95 */       NODEV,
                    536:     /* 96 */       NODEV,
                    537:     /* 97 */       NODEV,
                    538: };
                    539: int nchrtoblktbl = sizeof(chrtoblktbl) / sizeof(chrtoblktbl[0]);
                    540:
                    541:
                    542: dev_t
                    543: getnulldev()
                    544: {
                    545:        return makedev(mem_no, 2);
                    546: }

CVSweb