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

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

1.1       nbrk        1: /*     $OpenBSD: conf.c,v 1.32 2007/07/24 10:18:24 mk Exp $ */
                      2:
                      3: /*
                      4:  * Copyright (c) 1997 Per Fogelstrom
                      5:  * Copyright (c) 1997 RTMX Inc, North Carolina
                      6:  *
                      7:  * Redistribution and use in source and binary forms, with or without
                      8:  * modification, are permitted provided that the following conditions
                      9:  * are met:
                     10:  * 1. Redistributions of source code must retain the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer.
                     12:  * 2. Redistributions in binary form must reproduce the above copyright
                     13:  *    notice, this list of conditions and the following disclaimer in the
                     14:  *    documentation and/or other materials provided with the distribution.
                     15:  * 3. All advertising materials mentioning features or use of this software
                     16:  *    must display the following acknowledgement:
                     17:  *     This product includes software developed under OpenBSD for RTMX Inc,
                     18:  *     North Carolina, USA, by Per Fogelstrom, Opsycon AB, Sweden.
                     19:  * 4. The name of the author may not be used to endorse or promote products
                     20:  *    derived from this software without specific prior written permission.
                     21:  *
                     22:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
                     23:  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
                     24:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     25:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
                     26:  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     27:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     28:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     29:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     30:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     31:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     32:  * SUCH DAMAGE.
                     33:  *
                     34:  */
                     35: #include <sys/param.h>
                     36: #include <sys/buf.h>
                     37: #include <sys/ioctl.h>
                     38: #include <sys/systm.h>
                     39: #include <sys/tty.h>
                     40: #include <sys/vnode.h>
                     41:
                     42: #include <machine/conf.h>
                     43:
                     44: #include "sd.h"
                     45: #include "st.h"
                     46: #include "cd.h"
                     47: #include "ss.h"
                     48: #include "uk.h"
                     49: #include "rd.h"
                     50: #include "wd.h"
                     51: bdev_decl(wd);
                     52: cdev_decl(wd);
                     53:
                     54: #include "vnd.h"
                     55: #include "ccd.h"
                     56: #include "raid.h"
                     57:
                     58: struct bdevsw bdevsw[] = {
                     59:        bdev_disk_init(NWD,wd),         /* 0: ST506/ESDI/IDE disk */
                     60:        bdev_swap_init(1,sw),           /* 1 swap pseudo device */
                     61:        bdev_disk_init(NSD,sd),         /* 2 SCSI Disk */
                     62:        bdev_disk_init(NCD,cd),         /* 3 SCSI CD-ROM */
                     63:        bdev_notdef(),                  /* 4 unknown*/
                     64:        bdev_notdef(),                  /* 5 unknown*/
                     65:        bdev_notdef(),                  /* 6 unknown*/
                     66:        bdev_notdef(),                  /* 7 unknown*/
                     67:        bdev_lkm_dummy(),               /* 8 */
                     68:        bdev_lkm_dummy(),               /* 9 */
                     69:        bdev_lkm_dummy(),               /* 10 */
                     70:        bdev_lkm_dummy(),               /* 11 */
                     71:        bdev_lkm_dummy(),               /* 12 */
                     72:        bdev_lkm_dummy(),               /* 13 */
                     73:        bdev_disk_init(NVND,vnd),       /* 14 vnode disk driver*/
                     74:        bdev_notdef(),                  /* 15 unknown*/
                     75:        bdev_disk_init(NCCD,ccd),       /* 16 concatenated disk driver*/
                     76:        bdev_disk_init(NRD,rd),         /* 17 ram disk driver*/
                     77:        bdev_notdef(),                  /* 18 unknown*/
                     78:        bdev_disk_init(NRAID,raid),     /* 19: RAIDframe disk driver */
                     79: };
                     80: int nblkdev = sizeof bdevsw / sizeof bdevsw[0];
                     81:
                     82: #include "pty.h"
                     83: #include "zstty.h"
                     84:
                     85: cdev_decl(kbd);
                     86: cdev_decl(ms);
                     87:
                     88: #include "com.h"
                     89: cdev_decl(com);
                     90:
                     91: #include "wsdisplay.h"
                     92: #include "wskbd.h"
                     93: #include "wsmouse.h"
                     94:
                     95: #include "iop.h"
                     96:
                     97: #include "bpfilter.h"
                     98:
                     99: #include "tun.h"
                    100:
                    101: #ifdef XFS
                    102: #include <xfs/nxfs.h>
                    103: cdev_decl(xfs_dev);
                    104: #endif
                    105:
                    106: #ifdef LKM
                    107: #define NLKM 1
                    108: #else
                    109: #define NLKM 0
                    110: #endif
                    111:
                    112: #include "ksyms.h"
                    113: #include "usb.h"
                    114: #include "uhid.h"
                    115: #include "ugen.h"
                    116: #include "ulpt.h"
                    117: #include "urio.h"
                    118: #include "ucom.h"
                    119: #include "uscanner.h"
                    120:
                    121: #include "inet.h"
                    122:
                    123: #include "apm.h"
                    124: #include "bthub.h"
                    125:
                    126: #include "wsmux.h"
                    127:
                    128: #ifdef USER_PCICONF
                    129: #include "pci.h"
                    130: cdev_decl(pci);
                    131: #endif
                    132:
                    133: #include "audio.h"
                    134:
                    135: #include "pf.h"
                    136:
                    137: #include "systrace.h"
                    138:
                    139: #include "radio.h"
                    140: #include "bktr.h"
                    141: #include "hotplug.h"
                    142: #include "gpio.h"
                    143: #include "bio.h"
                    144:
                    145: struct cdevsw cdevsw[] = {
                    146:        cdev_cn_init(1,cn),             /* 0: virtual console */
                    147:        cdev_ctty_init(1,ctty),         /* 1: controlling terminal */
                    148:        cdev_mm_init(1,mm),             /* 2: /dev/{null,mem,kmem,...} */
                    149:        cdev_swap_init(1,sw),           /* 3: /dev/drum (swap pseudo-device) */
                    150:        cdev_tty_init(NPTY,pts),        /* 4: pseudo-tty slave */
                    151:        cdev_ptc_init(NPTY,ptc),        /* 5: pseudo-tty master */
                    152:        cdev_log_init(1,log),           /* 6: /dev/klog */
                    153:        cdev_tty_init(NZSTTY,zs),       /* 7: Serial ports */
                    154:        cdev_disk_init(NSD,sd),         /* 8: SCSI disk */
                    155:        cdev_disk_init(NCD,cd),         /* 9: SCSI CD-ROM */
                    156:        cdev_notdef(),                  /* 10: SCSI changer */
                    157:        cdev_disk_init(NWD,wd),         /* 11: ST506/ESDI/IDE disk */
                    158:        cdev_notdef(),                  /* 12 */
                    159:        cdev_notdef(),                  /* 13 */
                    160:        cdev_notdef(),                  /* 14 */
                    161:        cdev_notdef(),                  /* 15 */
                    162:        cdev_notdef(),                  /* 16 */
                    163:        cdev_disk_init(NRD,rd),         /* 17 ram disk driver*/
                    164:        cdev_disk_init(NCCD,ccd),       /* 18 concatenated disk driver */
                    165:        cdev_disk_init(NVND,vnd),       /* 19: vnode disk */
                    166:        cdev_tape_init(NST,st),         /* 20: SCSI tape */
                    167:        cdev_fd_init(1,filedesc),       /* 21: file descriptor pseudo-dev */
                    168:        cdev_bpftun_init(NBPFILTER,bpf),/* 22: berkeley packet filter */
                    169:        cdev_bpftun_init(NTUN,tun),     /* 23: network tunnel */
                    170:        cdev_lkm_init(NLKM,lkm),        /* 24: loadable module driver */
                    171:        cdev_apm_init(NAPM,apm),        /* 25: APM interface */
                    172:        cdev_tty_init(NCOM,com),        /* 26: Serial Ports via com(4) */
                    173:        cdev_notdef(),                  /* 27 */
                    174:        cdev_notdef(),                  /* 28 */
                    175:        cdev_notdef(),                  /* 29 */
                    176:        cdev_notdef(),                  /* 30 */
                    177:        cdev_notdef(),                  /* 31 */
                    178:        cdev_notdef(),                  /* 32 */
                    179:        cdev_lkm_dummy(),               /* 33 */
                    180:        cdev_lkm_dummy(),               /* 34 */
                    181:        cdev_lkm_dummy(),               /* 35 */
                    182:        cdev_lkm_dummy(),               /* 36 */
                    183:        cdev_lkm_dummy(),               /* 37 */
                    184:        cdev_lkm_dummy(),               /* 38 */
                    185:        cdev_pf_init(NPF,pf),           /* 39: packet filter */
                    186:        cdev_random_init(1,random),     /* 40: random data source */
                    187:        cdev_uk_init(NUK,uk),           /* 41: unknown SCSI */
                    188:        cdev_ss_init(NSS,ss),           /* 42: SCSI scanner */
                    189:        cdev_ksyms_init(NKSYMS,ksyms),  /* 43: Kernel symbols device */
                    190:        cdev_audio_init(NAUDIO,audio),  /* 44: generic audio I/O */
                    191:        cdev_notdef(),                  /* 45 */
                    192:        cdev_notdef(),                  /* 46 */
                    193:        cdev_crypto_init(NCRYPTO,crypto), /* 47: /dev/crypto */
                    194:        cdev_notdef(),                  /* 48 */
                    195:        cdev_notdef(),                  /* 49 */
                    196:        cdev_systrace_init(NSYSTRACE,systrace), /* 50 system call tracing */
                    197: #ifdef XFS
                    198:        cdev_xfs_init(NXFS,xfs_dev),    /* 51: xfs communication device */
                    199: #else
                    200:        cdev_notdef(),                  /* 51 */
                    201: #endif
                    202:        cdev_notdef(),                  /* 52 */
                    203:        cdev_notdef(),                  /* 53 */
                    204:        cdev_disk_init(NRAID,raid),     /* 54: RAIDframe disk driver */
                    205:        cdev_notdef(),                  /* 55 */
                    206:        /* The following slots are reserved for isdn4bsd. */
                    207:        cdev_notdef(),                  /* 56: i4b main device */
                    208:        cdev_notdef(),                  /* 57: i4b control device */
                    209:        cdev_notdef(),                  /* 58: i4b raw b-channel access */
                    210:        cdev_notdef(),                  /* 59: i4b trace device */
                    211:        cdev_notdef(),                  /* 60: i4b phone device */
                    212:        /* End of reserved slots for isdn4bsd. */
                    213:        cdev_usb_init(NUSB,usb),        /* 61: USB controller */
                    214:        cdev_usbdev_init(NUHID,uhid),   /* 62: USB generic HID */
                    215:        cdev_usbdev_init(NUGEN,ugen),   /* 63: USB generic driver */
                    216:        cdev_ulpt_init(NULPT,ulpt),     /* 64: USB printers */
                    217:        cdev_urio_init(NURIO,urio),     /* 65: USB Diamond Rio 500 */
                    218:        cdev_tty_init(NUCOM,ucom),      /* 66: USB tty */
                    219:        cdev_wsdisplay_init(NWSDISPLAY, /* 67: frame buffers, etc. */
                    220:                wsdisplay),
                    221:        cdev_mouse_init(NWSKBD, wskbd), /* 68: keyboards */
                    222:        cdev_mouse_init(NWSMOUSE,       /* 69: mice */
                    223:                wsmouse),
                    224:        cdev_mouse_init(NWSMUX, wsmux), /* 70: ws multiplexor */
                    225: #ifdef USER_PCICONF
                    226:        cdev_pci_init(NPCI,pci),        /* 71: PCI user */
                    227: #else
                    228:        cdev_notdef(),
                    229: #endif
                    230:        cdev_notdef(),                  /* 72: ALTQ (deprecated) */
                    231:        cdev_iop_init(NIOP,iop),        /* 73: I2O IOP control interface */
                    232:        cdev_usbdev_init(NUSCANNER,uscanner), /* 74: usb scanner */
                    233:        cdev_bktr_init(NBKTR,bktr),     /* 75: Bt848 video capture device */
                    234:        cdev_radio_init(NRADIO, radio), /* 76: generic radio I/O */
                    235:        cdev_ptm_init(NPTY,ptm),        /* 77: pseudo-tty ptm device */
                    236:        cdev_hotplug_init(NHOTPLUG,hotplug), /* 78: devices hot plugging */
                    237:        cdev_gpio_init(NGPIO,gpio),     /* 79: GPIO interface */
                    238:        cdev_bio_init(NBIO,bio),        /* 80: ioctl tunnel */
                    239:        cdev_bthub_init(NBTHUB,bthub),  /* 81: bthub */
                    240: };
                    241: int nchrdev = sizeof cdevsw / sizeof cdevsw[0];
                    242:
                    243: int mem_no = 2;                                /* major number of /dev/mem */
                    244:
                    245: /*
                    246:  * Swapdev is a fake device implemented in sw.c.
                    247:  * It is used only internally to get to swstrategy.
                    248:  */
                    249: dev_t swapdev = makedev(1, 0);
                    250:
                    251: /*
                    252:  * Check whether dev is /dev/mem or /dev/kmem.
                    253:  */
                    254: int
                    255: iskmemdev(dev_t dev)
                    256: {
                    257:        return major(dev) == mem_no && minor(dev) < 2;
                    258: }
                    259:
                    260: /*
                    261:  * Check whether dev is /dev/zero.
                    262:  */
                    263: int
                    264: iszerodev(dev_t dev)
                    265: {
                    266:        return major(dev) == mem_no && minor(dev) == 12;
                    267: }
                    268:
                    269: dev_t
                    270: getnulldev()
                    271: {
                    272:        return makedev(mem_no, 2);
                    273: }
                    274:
                    275: int chrtoblktbl[] = {
                    276:        /*VCHR*/        /*VBLK*/
                    277:        /*  0 */        NODEV,
                    278:        /*  1 */        NODEV,
                    279:        /*  2 */        NODEV,
                    280:        /*  3 */        NODEV,
                    281:        /*  4 */        NODEV,
                    282:        /*  5 */        NODEV,
                    283:        /*  6 */        NODEV,
                    284:        /*  7 */        NODEV,
                    285:        /*  8 */        2,
                    286:        /*  9 */        NODEV,
                    287:        /* 10 */        NODEV,
                    288:        /* 11 */        0,
                    289:        /* 12 */        NODEV,
                    290:        /* 13 */        4,
                    291:        /* 14 */        NODEV,
                    292:        /* 15 */        NODEV,
                    293:        /* 16 */        NODEV,
                    294:        /* 17 */        17,
                    295:        /* 18 */        NODEV,
                    296:        /* 19 */        NODEV,
                    297:        /* 20 */        NODEV,
                    298:        /* 21 */        NODEV,
                    299:        /* 22 */        NODEV,
                    300:        /* 23 */        NODEV,
                    301:        /* 24 */        NODEV,
                    302:        /* 25 */        NODEV,
                    303:        /* 26 */        NODEV,
                    304:        /* 27 */        NODEV,
                    305:        /* 28 */        NODEV,
                    306:        /* 29 */        NODEV,
                    307:        /* 30 */        NODEV,
                    308:        /* 31 */        NODEV,
                    309:        /* 32 */        NODEV,
                    310:        /* 33 */        NODEV,
                    311:        /* 34 */        NODEV,
                    312:        /* 35 */        NODEV,
                    313:        /* 36 */        NODEV,
                    314:        /* 37 */        NODEV,
                    315:        /* 38 */        NODEV,
                    316:        /* 39 */        NODEV,
                    317:        /* 40 */        NODEV,
                    318:        /* 41 */        NODEV,
                    319:        /* 42 */        NODEV,
                    320:        /* 43 */        NODEV,
                    321:        /* 44 */        NODEV,
                    322:        /* 45 */        NODEV,
                    323:        /* 46 */        NODEV,
                    324:        /* 47 */        NODEV,
                    325:        /* 48 */        NODEV,
                    326:        /* 49 */        NODEV,
                    327:        /* 50 */        NODEV,
                    328:        /* 51 */        NODEV,
                    329:        /* 52 */        NODEV,
                    330:        /* 53 */        NODEV,
                    331:        /* 54 */        19,
                    332: };
                    333: int nchrtoblktbl = sizeof(chrtoblktbl) / sizeof(chrtoblktbl[0]);
                    334:
                    335: #include <dev/cons.h>
                    336: #include "vgafb_pci.h"
                    337:
                    338: cons_decl(ws);
                    339: cons_decl(zs);
                    340: cons_decl(ofc);
                    341: cons_decl(com);
                    342:
                    343: struct consdev constab[] = {
                    344: #if NWSDISPLAY > 0
                    345:        cons_init(ws),
                    346: #endif
                    347: #if NZSTTY > 0
                    348:        cons_init(zs),
                    349: #endif
                    350: #if NOFCONS > 0
                    351:        cons_init(ofc),
                    352: #endif
                    353:        { 0 },
                    354: };

CVSweb