#ifndef lint static char sccsid[] = "@(#)conf.c 1.1 94/10/31 SMI"; #endif /* * Copyright (c) 1987-1989 by Sun Microsystems, Inc. */ #include #include #include #include #include #include #include #include #include #include extern int nulldev(); extern int nodev(); #ifdef VDDRV extern int vd_unuseddev(); extern vdopen(), vdclose(), vdioctl(); #else #define vd_unuseddev nodev #define vdopen nodev #define vdclose nodev #define vdioctl nodev #endif #include "xy.h" #if NXY > 0 extern int xyopen(), xystrategy(), xyread(), xywrite(); extern int xydump(), xyioctl(), xysize(); #else #define xyopen nodev #define xystrategy nodev #define xyread nodev #define xywrite nodev #define xydump nodev #define xyioctl nodev #define xysize 0 #endif #include "hrc.h" #if NHRC > 0 extern int hrcopen(), hrcclose(), hrcmmap(), hrcioctl(), hrcread(); #else #define hrcopen nodev #define hrcclose nodev #define hrcmmap nodev #define hrcioctl nodev #define hrcread nodev #endif #include "xd.h" #if NXD > 0 extern int xdopen(), xdstrategy(), xdread(), xdwrite(); extern int xddump(), xdioctl(), xdsize(); #else #define xdopen nodev #define xdstrategy nodev #define xdread nodev #define xdwrite nodev #define xddump nodev #define xdioctl nodev #define xdsize 0 #endif #include "st.h" #if NST > 0 extern int stopen(), stclose(), stread(), stwrite(), stioctl(), ststrategy(); #else #define stopen nodev #define stclose nodev #define stread nodev #define stwrite nodev #define stioctl nodev #define ststrategy nodev #endif #include "ns.h" #if NNS > 0 extern int nsopen(), nsread(), nswrite(), nssize(), nsioctl(), nsstrategy(); #else #define nsopen nodev #define nsclose nodev #define nsread nodev #define nswrite nodev #define nssize 0 #define nsioctl nodev #define nsstrategy nodev #endif #include "rd.h" #if NRD > 0 extern int rdopen(), rdread(), rdwrite(), rdsize(), rdioctl(), rdstrategy(); #else #define rdopen nodev #define rdclose nodev #define rdread nodev #define rdwrite nodev #define rdsize 0 #define rdioctl nodev #define rdstrategy nodev #endif #include "ft.h" #if NFT > 0 extern int ftopen(), ftclose(), ftread(), ftwrite(), ftsize(), ftioctl(), ftstrategy(); #else #define ftopen nodev #define ftclose nodev #define ftread nodev #define ftwrite nodev #define ftsize 0 #define ftioctl nodev #define ftstrategy nodev #endif #include "mt.h" #if NMT > 0 extern int tmopen(), tmclose(), tmstrategy(), tmread(), tmwrite(); extern int tmdump(), tmioctl(); #else #define tmopen nodev #define tmclose nodev #define tmstrategy nodev #define tmread nodev #define tmwrite nodev #define tmdump nodev #define tmioctl nodev #endif #include "xt.h" #if NXT > 0 extern int xtopen(), xtclose(), xtstrategy(), xtread(), xtwrite(), xtioctl(); #else #define xtopen nodev #define xtclose nodev #define xtstrategy nodev #define xtread nodev #define xtwrite nodev #define xtioctl nodev #endif #include "ar.h" #if NAR > 0 extern int aropen(), arclose(), arstrategy(), arread(), arwrite(), arioctl(); #else #define aropen nodev #define arclose nodev #define arstrategy nodev #define arread nodev #define arwrite nodev #define arioctl nodev #endif #include "sd.h" #if NSD > 0 extern int sdopen(), sdclose(), sdstrategy(), sdread(), sdwrite(); extern int sddump(), sdioctl(), sdsize(); #else #define sdopen nodev #define sdclose nodev #define sdstrategy nodev #define sdread nodev #define sdwrite nodev #define sddump nodev #define sdioctl nodev #define sdsize 0 #endif #include "hd.h" #if NHD > 0 extern int hdopen(), hdstrategy(), hdread(), hdwrite(); extern int hddump(), hdioctl(), hdsize(); #else #define hdopen nodev #define hdstrategy nodev #define hdread nodev #define hdwrite nodev #define hddump nodev #define hdioctl nodev #define hdsize 0 #endif #include "fd.h" #if NFD > 0 extern int fdopen(), fdclose(), fdread(), fdstrategy(), fdwrite(); extern int fddump(), fdioctl(), fdsize(); #else #define fdopen nodev #define fdclose nodev #define fdstrategy nodev #define fdread nodev #define fdwrite nodev #define fddump nodev #define fdioctl nodev #define fdsize 0 #endif #include "id.h" #if NID > 0 extern int idcopen(), idbopen(), idstrategy(), idread(), idwrite(); extern int iddump(), idioctl(), idsize(); #else #define idbopen nodev #define idcopen nodev #define idstrategy nodev #define idread nodev #define idwrite nodev #define iddump nodev #define idioctl nodev #define idsize 0 #endif #include "tvone.h" #if NTVONE > 0 extern int tvoneopen(), tvoneclose(), tvonemmap(), tvoneioctl(); #else #define tvoneopen nodev #define tvoneclose nodev #define tvoneioctl nodev #define tvonemmap nodev #endif #include "sr.h" #if NSR > 0 int sropen(), srclose(), srread(), srioctl(), srstrategy(), srsize(); #else #define sropen nodev #define srclose nodev #define srread nodev #define srioctl nodev #define srstrategy nodev #define srsize nodev #endif #include "vx.h" #if NVX > 0 extern int vxopen(), vxclose(); extern int vxread(), vxwrite(); extern int vxioctl(), vxmmap(); extern int vxsegmap(); #else #define vxopen nodev #define vxclose nodev #define vxread nodev #define vxwrite nodev #define vxioctl nodev #define vxmmap nodev #define vxsegmap nodev #endif struct bdevsw bdevsw[] = { { nodev, nodev, nodev, nodev, /*0*/ 0, 0 }, /* was ip */ { tmopen, tmclose, tmstrategy, tmdump, /*1*/ 0, B_TAPE }, { nodev, nodev, nodev, nodev, /*2*/ 0, B_TAPE }, /* was ar */ { xyopen, nulldev, xystrategy, xydump, /*3*/ xysize, 0 }, { nodev, nodev, nodev, nodev, /*4*/ 0, 0 }, /* was sw */ { nodev, nodev, nodev, nodev, /*5*/ nodev, 0 }, /* was nd */ { nodev, nodev, nodev, nodev, /*6*/ 0, 0 }, { sdopen, sdclose, sdstrategy, sddump, /*7*/ sdsize, 0 }, { xtopen, xtclose, xtstrategy, nodev, /*8*/ 0, B_TAPE }, { nodev, nodev, nodev, nodev, /*9*/ nodev, 0 }, /* was sf */ { xdopen, nulldev, xdstrategy, xddump, /*10*/ xdsize, 0 }, { stopen, stclose, ststrategy, nodev, /*11*/ 0, B_TAPE }, { nsopen, nodev, nsstrategy, nodev, /*12*/ nssize, 0 }, { rdopen, nodev, rdstrategy, nodev, /*13*/ rdsize, 0 }, { ftopen, ftclose, ftstrategy, nodev, /*14*/ ftsize, 0 }, { hdopen, nulldev, hdstrategy, hddump, /*15*/ hdsize, 0 }, { fdopen, fdclose, fdstrategy, fddump, /*16*/ fdsize, 0 }, { vd_unuseddev, vd_unuseddev, vd_unuseddev, vd_unuseddev, /*17*/ 0, 0 }, { sropen, srclose, srstrategy, nodev, /*18*/ srsize, 0 }, { vd_unuseddev, vd_unuseddev, vd_unuseddev, vd_unuseddev, /*19*/ 0, 0 }, { vd_unuseddev, vd_unuseddev, vd_unuseddev, vd_unuseddev, /*20*/ 0, 0 }, { vd_unuseddev, vd_unuseddev, vd_unuseddev, vd_unuseddev, /*21*/ 0, 0 }, { idbopen, nulldev, idstrategy, iddump, /*22*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*23*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*24*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*25*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*26*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*27*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*28*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*29*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*30*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*31*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*32*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*33*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*34*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*35*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*36*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*37*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*38*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*39*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*40*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*41*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*42*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*43*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*44*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*45*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*46*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*47*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*48*/ idsize, 0 }, { idbopen, nulldev, idstrategy, iddump, /*49*/ idsize, 0 }, }; int nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]); extern int swread(), swwrite(); extern int cnopen(), cnclose(), cnread(), cnwrite(), cnioctl(), cnselect(); extern struct streamtab wcinfo; extern struct streamtab conskbd_info; extern int consfbopen(), consfbclose(), consfbioctl(), consfbmmap(); extern int spec_segmap(); #include "ms.h" #if NMS > 0 extern struct streamtab consms_info; #define consmstab &consms_info #else #define consmstab 0 #endif extern int syopen(), syread(), sywrite(), syioctl(), syselect(); extern int mmopen(), mmread(), mmwrite(), mmioctl(), mmmmap(), mmsegmap(); #define mmselect seltrue #include "vp.h" #if NVP > 0 extern int vpopen(), vpclose(), vpwrite(), vpioctl(); #else #define vpopen nodev #define vpclose nodev #define vpwrite nodev #define vpioctl nodev #endif #include "vpc.h" #if NVPC > 0 extern int vpcopen(), vpcclose(), vpcwrite(), vpcioctl(); #else #define vpcopen nodev #define vpcclose nodev #define vpcwrite nodev #define vpcioctl nodev #endif #include "zs.h" #if NZS > 0 extern struct streamtab zsstab; #define zstab &zsstab #else #define zstab 0 #endif #include "pty.h" #if NPTY > 0 extern struct streamtab ptsinfo; extern int ptcopen(), ptcclose(), ptcread(), ptcwrite(), ptcioctl(); extern int ptcselect(); #define ptstab &ptsinfo #else #define ptstab 0 #define ptcopen nodev #define ptcclose nodev #define ptcread nodev #define ptcwrite nodev #define ptcioctl nodev #define ptcselect nodev #endif #include "mti.h" #if NMTI > 0 extern int mtireset(); extern struct streamtab mtistab; #define mtitab &mtistab #else #define mtireset nodev #define mtitab 0 #endif #include "mcpa.h" #if NMCPA > 0 extern struct streamtab mcpstab; extern struct streamtab mcppstab; #define mcptab &mcpstab #define mcpptab &mcppstab #else #define mcptab 0 #define mcpptab 0 #endif #include "cgtwo.h" #if NCGTWO > 0 extern int cgtwoopen(), cgtwommap(), cgtwoioctl(); extern int cgtwoclose(); #else #define cgtwoopen nodev #define cgtwommap nodev #define cgtwoioctl nodev #define cgtwoclose nodev #endif #include "cgfour.h" #if NCGFOUR > 0 extern int cgfouropen(), cgfourclose(), cgfourioctl(), cgfourmmap(); #else #define cgfouropen nodev #define cgfourclose nodev #define cgfourioctl nodev #define cgfourmmap nodev #endif #include "gpone.h" #if NGPONE > 0 extern int gponeopen(), gponemmap(), gponeioctl(); extern int gponeclose(); #else #define gponeopen nodev #define gponemmap nodev #define gponeioctl nodev #define gponeclose nodev #endif #include "win.h" #if NWIN > 0 extern int winopen(), winclose(), winread(), winwrite(); extern int winioctl(), winmmap(), winselect(), winsegmap(); #else #define winopen nodev #define winclose nodev #define winread nodev #define winwrite nodev #define winioctl nodev #define winmmap nodev #define winselect nodev #define winsegmap 0 #endif int logopen(), logclose(), logread(), logioctl(), logselect(); #include "pi.h" #if NPI > 0 extern struct streamtab piinfo; #define pitab &piinfo #else #define pitab 0 #endif #include "bwtwo.h" #if NBWTWO > 0 extern int bwtwoopen(), bwtwommap(), bwtwoioctl(); extern int bwtwoclose(); #else #define bwtwoopen nodev #define bwtwommap nodev #define bwtwoioctl nodev #define bwtwoclose nodev #endif #include "des.h" #if NDES > 0 extern int desopen(), desclose(), desioctl(); #else #define desopen nodev #define desclose nodev #define desioctl nodev #endif #ifdef FPU #include "fpa.h" #endif FPU #if NFPA > 0 extern int fpaopen(), fpaclose(), fpaioctl(); #else #define fpaopen nodev #define fpaclose nodev #define fpaioctl nodev #endif #include "sp.h" #if NSP > 0 extern struct streamtab spinfo; #define sptab &spinfo #else #define sptab 0 #endif #include "clone.h" #if NCLONE > 0 extern int cloneopen(); #else #define cloneopen nodev #endif #include "pc.h" #if NPC > 0 extern int pcopen(), pcclose(), pcioctl(), pcselect(), pcmmap(); #else #define pcopen nodev #define pcclose nodev #define pcioctl nodev #define pcselect nodev #define pcmmap nodev #endif extern int dumpopen(), dumpread(), dumpwrite(); /* Sunlink device driver entries */ #include "ifd.h" #if NIFD > 0 int ifdopen(), ifdclose(), ifdread(), ifdwrite(), ifdioctl(), ifdselect(); #else #define ifdopen nodev #define ifdclose nodev #define ifdread nodev #define ifdwrite nodev #define ifdioctl nodev #define ifdselect nodev #endif #include "dcp.h" #if NDCP > 0 int dcpopen(), dcpclose(), dcpread(), dcpwrite(), dcpdioctl(), dcpselect(); #else #define dcpopen nodev #define dcpclose nodev #define dcpread nodev #define dcpwrite nodev #define dcpdioctl nodev #define dcpselect nodev #endif #include "dnalink.h" #if NDNALINK > 0 int dnaopen(), dnaclose(), dnaread(), dnawrite(), dnaioctl(), dnaselect(); #else #define dnaopen nodev #define dnaclose nodev #define dnaread nodev #define dnawrite nodev #define dnaioctl nodev #define dnaselect nodev #endif #include "tbi.h" #if NTBI > 0 int tbiopen(), tbiclose(), tbiread(), tbiwrite(), tbidioctl(); #else #define tbiopen nodev #define tbiclose nodev #define tbiread nodev #define tbiwrite nodev #define tbidioctl nodev #endif #include "chat.h" #if NCHAT > 0 int chatopen(), chatclose(), chatread(), chatwrite(); int chatioctl(), chatselect(); int chutopen(), chutclose(), chutread(), chutwrite(); int chutioctl(), chutselect(); #else #define chatopen nodev #define chatclose nodev #define chatread nodev #define chatwrite nodev #define chatioctl nodev #define chatselect nodev #define chutopen nodev #define chutclose nodev #define chutread nodev #define chutwrite nodev #define chutioctl nodev #define chutselect nodev #endif /* bpp device */ #include "bpp.h" #if NBPP > 0 extern int bpp_open(), bpp_close(), bpp_read(), bpp_write(); extern int bpp_ioctl(); #else #define bpp_open nodev #define bpp_close nodev #define bpp_read nodev #define bpp_write nodev #define bpp_ioctl nodev #endif /* streams NIT device */ #include "snit.h" #if NSNIT > 0 extern struct streamtab snit_info; #define snittab &snit_info #else NSNIT > 0 #define snittab 0 #endif NSNIT > 0 #include "cgthree.h" #if NCGTHREE > 0 extern int cgthreeopen(), cgthreeclose(), cgthreemmap(), cgthreeioctl(); #else #define cgthreeopen nodev #define cgthreeclose nodev #define cgthreeioctl nodev #define cgthreemmap nodev #endif #include "cgeight.h" #if NCGEIGHT > 0 extern int cgeightopen(), cgeightclose(), cgeightmmap(), cgeightioctl(); #else #define cgeightopen nodev #define cgeightclose nodev #define cgeightioctl nodev #define cgeightmmap nodev #endif #include "cgsix.h" #if NCGSIX > 0 extern int cgsixopen(), cgsixclose(), cgsixmmap(), cgsixioctl(); extern int cgsixsegmap(); #else #define cgsixopen nodev #define cgsixclose nodev #define cgsixioctl nodev #define cgsixmmap nodev #define cgsixsegmap nodev #endif #include "cgnine.h" #if NCGNINE > 0 extern int cgnineopen(), cgnineclose(), cgninemmap(), cgnineioctl(); #else #define cgnineopen nodev #define cgnineclose nodev #define cgnineioctl nodev #define cgninemmap nodev #endif #include "pp.h" #if NPP > 0 extern int ppopen(), ppclose(), ppwrite(), ppioctl(); #else #define ppopen nodev #define ppclose nodev #define ppwrite nodev #define ppioctl nodev #endif #include "taac.h" #if NTAAC > 0 extern int taacopen(), taacmmap(); extern int taacclose(), taacioctl(), taacread(), taacwrite(); #else #define taacopen nodev #define taacmmap nodev #define taacclose nodev #define taacioctl nodev #define taacread nodev #define taacwrite nodev #endif /* TCP stream head */ #include "tcptli.h" #if NTCPTLI > 0 extern struct streamtab tcptli_info; #define tcptlitab &tcptli_info #else NTCPTLI > 0 #define tcptlitab 0 #endif NTCPTLI > 0 #include "audioamd.h" #if NAUDIOAMD > 0 extern struct streamtab audio_79C30_info; #define audio_79C30tab &audio_79C30_info #else #define audio_79C30tab 0 #endif #include "audiocs.h" #if NAUDIOCS > 0 extern struct streamtab audio_4231_info; #define audio_4231tab &audio_4231_info #else #define audio_4231tab 0 #endif #include "dbri.h" #if NDBRI > 0 extern struct streamtab dbri_info; #define dbri_tab &dbri_info #else #define dbri_tab 0 #endif #if NDBRI > 0 || NAUDIOAMD > 0 extern int acloneopen(); #else #define acloneopen nodev #endif NDBRI || NAUDIOAMD #ifdef OPENPROMS #include "openeepr.h" #else #define NOPENEEPR 0 #endif #if NOPENEEPR > 0 extern int opromopen(), opromioctl(); #else #define opromopen nodev #define opromioctl nodev #endif #include "sg.h" #if NSG > 0 int sgopen(), sgclose(), sgioctl(), sgread(), sgwrite(); #else NSG > 0 #define sgopen nodev #define sgclose nodev #define sgioctl nodev #define sgread nodev #define sgwrite nodev #endif #include "cgtwelve.h" #if NCGTWELVE > 0 extern int cgtwelveopen(), cgtwelveclose(), cgtwelvemmap(); extern int cgtwelveioctl(), cgtwelvesegmap(); #else #define cgtwelveopen nodev #define cgtwelveclose nodev #define cgtwelvemmap nodev #define cgtwelveioctl nodev #define cgtwelvesegmap nodev #endif #include "tcx.h" #if NTCX > 0 extern int tcx_open(), tcx_close(), tcx_ioctl(), tcx_mmap(); #else #define tcx_open nodev #define tcx_close nodev #define tcx_ioctl nodev #define tcx_mmap nodev #endif #include "gt.h" #if NGT > 0 extern int gtopen(), gtclose(), gtmmap(); extern int gtioctl(), gtsegmap(); extern struct streamtab lightpenptab; #define lightpentab &lightpenptab #else #define gtopen nodev #define gtclose nodev #define gtmmap nodev #define gtioctl nodev #define gtsegmap nodev #define lightpentab 0 #endif extern int seltrue(); struct cdevsw cdevsw[] = { { cnopen, cnclose, cnread, cnwrite, /*0*/ cnioctl, nulldev, cnselect, 0, 0, 0, }, { nodev, nodev, nodev, nodev, /*1*/ nodev, nodev, nodev, 0, &wcinfo, 0, }, { syopen, nulldev, syread, sywrite, /*2*/ syioctl, nulldev, syselect, 0, 0, 0, }, { mmopen, nulldev, mmread, mmwrite, /*3*/ mmioctl, nulldev, mmselect, mmmmap, 0, mmsegmap, }, { nodev, nodev, nodev, nodev, /*4*/ nodev, nodev, nodev, 0, /* was ip */ 0, 0, }, { tmopen, tmclose, tmread, tmwrite, /*5*/ tmioctl, nulldev, seltrue, 0, 0, 0, }, { vpopen, vpclose, nodev, vpwrite, /*6*/ vpioctl, nulldev, seltrue, 0, 0, 0, }, { nulldev, nulldev, swread, swwrite, /*7*/ nodev, nulldev, nodev, 0, 0, 0, }, { aropen, arclose, arread, arwrite, /*8*/ arioctl, nulldev, seltrue, 0, 0, 0, }, { xyopen, nulldev, xyread, xywrite, /*9*/ xyioctl, nulldev, seltrue, 0, 0, 0, }, { nodev, nodev, nodev, nodev, /*10*/ nodev, mtireset, nodev, 0, mtitab, 0, }, { desopen, desclose, nodev, nodev, /*11*/ desioctl, nulldev, nodev, 0, 0, 0, }, { nodev, nodev, nodev, nodev, /*12*/ nodev, nodev, nodev, 0, zstab, 0, }, { nodev, nodev, nodev, nodev, /*13*/ nodev, nulldev, nodev, 0, consmstab, 0, }, { nodev, nodev, nodev, nodev, /*14*/ nodev, nodev, nodev, 0, /* was cgone */ 0, 0, }, { winopen, winclose, winread, winwrite, /*15*/ winioctl, nodev, winselect, winmmap, 0, winsegmap, }, { logopen, logclose, logread, nodev, /*16*/ logioctl, nulldev, logselect, 0, 0, 0, }, { sdopen, sdclose, sdread, sdwrite, /*17*/ sdioctl, nulldev, seltrue, 0, 0, 0, }, { stopen, stclose, stread, stwrite, /*18*/ stioctl, nodev, nodev, 0, 0, 0, }, { nodev, nodev, nodev, nodev, /*19*/ nodev, nodev, nodev, 0, /* was nd */ 0, 0, }, { nodev, nodev, nodev, nodev, /*20*/ nodev, nodev, nodev, 0, ptstab, 0, }, { ptcopen, ptcclose, ptcread, ptcwrite, /*21*/ ptcioctl, nulldev, ptcselect, 0, 0, 0, }, { consfbopen, consfbclose, nodev, nodev, /*22*/ consfbioctl, nodev, nodev, consfbmmap, 0, spec_segmap, }, { nodev, nodev, nodev, nodev, /*23*/ nodev, nodev, nodev, 0, /* was ropc */ 0, 0, }, { nodev, nodev, nodev, nodev, /*24*/ nodev, nodev, nodev, 0, /* was sky */ 0, 0, }, { nodev, nodev, nodev, nodev, /*25*/ nodev, nodev, nodev, 0, pitab, 0, }, { nodev, nodev, nodev, nodev, /*26*/ nodev, nodev, nodev, 0, /* was bwone */ 0, 0, }, { bwtwoopen, bwtwoclose, nodev, nodev, /*27*/ bwtwoioctl, nodev, seltrue, bwtwommap, 0, spec_segmap, }, { vpcopen, vpcclose, nodev, vpcwrite, /*28*/ vpcioctl, nulldev, seltrue, 0, 0, 0, }, { nodev, nodev, nodev, nodev, /*29*/ nodev, nulldev, nodev, 0, &conskbd_info, 0, }, { xtopen, xtclose, xtread, xtwrite, /*30*/ xtioctl, nulldev, seltrue, 0, 0, 0, }, { cgtwoopen, cgtwoclose, nodev, nodev, /*31*/ cgtwoioctl, nodev, seltrue, cgtwommap, 0, spec_segmap, }, { gponeopen, gponeclose, nodev, nodev, /*32*/ gponeioctl, nodev, seltrue, gponemmap, 0, spec_segmap, }, { nodev, nodev, nodev, nodev, /*33*/ nodev, nodev, nodev, 0, /* was sf */ 0, 0, }, { fpaopen, fpaclose, nodev, nodev, /*34*/ fpaioctl, nodev, nodev, 0, 0, 0, }, { nodev, nodev, nodev, nodev, /*35*/ nodev, nodev, nodev, 0, sptab, 0, }, { nodev, nodev, nodev, nodev, /*36*/ nodev, nodev, nodev, 0, 0, 0, }, { cloneopen, nodev, nodev, nodev, /*37*/ nodev, nodev, nodev, 0, 0, 0, }, { pcopen, pcclose, nodev, nodev, /*38*/ pcioctl, nodev, pcselect, pcmmap, 0, spec_segmap, }, { cgfouropen, cgfourclose, nodev, nodev, /*39*/ cgfourioctl, nodev, seltrue, cgfourmmap, 0, spec_segmap, }, { nodev, nodev, nodev, nodev, /*40*/ nodev, nodev, nodev, 0, snittab, 0, }, { dumpopen, nulldev, dumpread, dumpwrite, /*41*/ nodev, nulldev, nodev, 0, 0, 0, }, { xdopen, nulldev, xdread, xdwrite, /*42*/ xdioctl, nulldev, seltrue, 0, 0, 0, }, { hrcopen, hrcclose, hrcread, nodev, /*43*/ hrcioctl, nulldev, nodev, hrcmmap, 0, spec_segmap, }, { nodev, nodev, nodev, nodev, /*44*/ nodev, nodev, nodev, 0, mcptab, 0, }, { ifdopen, ifdclose, ifdread, ifdwrite, /*45*/ ifdioctl, nulldev, ifdselect, 0, 0, 0, }, { dcpopen, dcpclose, dcpread, dcpwrite, /*46*/ dcpdioctl, nulldev, dcpselect, 0, 0, 0, }, { dnaopen, dnaclose, dnaread, dnawrite, /*47*/ dnaioctl, nulldev, dnaselect, 0, 0, 0, }, { tbiopen, tbiclose, tbiread, tbiwrite, /*48*/ tbidioctl, nulldev, nulldev, 0, 0, 0, }, { chatopen, chatclose, chatread, chatwrite, /*49*/ chatioctl, nulldev, chatselect, 0, 0, 0, }, { chutopen, chutclose, chutread, chutwrite, /*50*/ chutioctl, nulldev, chutselect, 0, 0, 0, }, { chutopen, chutclose, chutread, chutwrite, /*51*/ chutioctl, nulldev, chutselect, 0, 0, 0, }, { nodev, nodev, nodev, nodev, /*52*/ nodev, nodev, nodev, 0, 0, 0, }, { hdopen, nulldev, hdread, hdwrite, /*53*/ hdioctl, nulldev, seltrue, 0, 0, 0, }, { fdopen, fdclose, fdread, fdwrite, /*54*/ fdioctl, nulldev, seltrue, 0, 0, 0, }, { cgthreeopen, cgthreeclose, nodev, nodev, /*55*/ cgthreeioctl, nodev, seltrue, cgthreemmap, 0, spec_segmap, }, { ppopen, ppclose, nodev, ppwrite, /*56*/ ppioctl, nodev, nodev, 0, 0, 0, }, { vdopen, vdclose, nodev, nodev, /*57*/ vdioctl, nodev, nodev, 0, 0, 0, }, { sropen, srclose, srread, nodev, /*58*/ srioctl, nulldev, nulldev, 0, 0, 0, }, { vd_unuseddev, vd_unuseddev, vd_unuseddev, vd_unuseddev, /*59*/ vd_unuseddev, vd_unuseddev, vd_unuseddev, 0, 0, 0, }, { vd_unuseddev, vd_unuseddev, vd_unuseddev, vd_unuseddev, /*60*/ vd_unuseddev, vd_unuseddev, vd_unuseddev, 0, 0, 0, }, { vd_unuseddev, vd_unuseddev, vd_unuseddev, vd_unuseddev, /*61*/ vd_unuseddev, vd_unuseddev, vd_unuseddev, 0, 0, 0, }, { taacopen, taacclose, taacread, taacwrite, /*62*/ taacioctl, nodev, seltrue, taacmmap, 0, spec_segmap, }, { nodev, nodev, nodev, nodev, /*63*/ nodev, nodev, nodev, 0, tcptlitab, 0, }, { cgeightopen, cgeightclose, nodev, nodev, /*64*/ cgeightioctl, nodev, seltrue, cgeightmmap, 0, spec_segmap, }, /* unused major number (old IPI driver) */ { nodev, nodev, nodev, nodev, /*65*/ nodev, nodev, nodev, 0, 0, 0, }, /* mcp parallel printer port */ { nodev, nodev, nodev, nodev, /*66*/ nodev, nodev, nodev, 0, mcpptab, 0, }, { cgsixopen, cgsixclose, nodev, nodev, /*67*/ cgsixioctl, nodev, nodev, cgsixmmap, 0, cgsixsegmap, }, { cgnineopen, cgnineclose, nodev, nodev, /*68*/ cgnineioctl, nodev, nodev, cgninemmap, 0, spec_segmap, }, { acloneopen, nodev, nodev, nodev, /*69*/ nodev, nodev, nodev, 0, 0, 0, }, { opromopen, nulldev, nodev, nodev, /*70*/ opromioctl, nodev, nodev, 0, 0, 0, }, { sgopen, sgclose, sgread, sgwrite, /*71*/ sgioctl, nodev, nodev, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*72*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*73*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*74*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*75*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*76*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*77*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*78*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*79*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*80*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*81*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*82*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*83*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*84*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*85*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*86*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*87*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*88*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*89*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*90*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*91*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*92*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*93*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*94*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*95*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*96*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*97*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*98*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { idcopen, nulldev, idread, idwrite, /*99*/ idioctl, nulldev, seltrue, 0, 0, 0, }, { tvoneopen, tvoneclose, nodev, nodev, /*100*/ tvoneioctl, nodev, seltrue, tvonemmap, 0, 0, }, { vxopen, vxclose, vxread, vxwrite, /*101*/ vxioctl, nodev, seltrue, vxmmap, 0, vxsegmap, }, { cgtwelveopen, cgtwelveclose, nodev, nodev, /*102*/ cgtwelveioctl, nodev, nodev, cgtwelvemmap, 0, cgtwelvesegmap, }, { gtopen, gtclose, nodev, nodev, /*103*/ gtioctl, nodev, nodev, gtmmap, 0, gtsegmap, }, { nodev, nodev, nodev, nodev, /*104*/ nodev, nodev, nodev, 0, lightpentab, 0, }, { nodev, nodev, nodev, nodev, /*105*/ nodev, nodev, nodev, 0, audio_79C30tab, 0, }, { nodev, nodev, nodev, nodev, /*106*/ nodev, nodev, nodev, 0, dbri_tab, 0, }, { bpp_open, bpp_close, bpp_read, bpp_write, /*107*/ bpp_ioctl, nulldev, seltrue, 0, 0, 0, }, { nodev, nodev, nodev, nodev, /*108*/ nodev, nodev, nodev, 0, audio_4231tab, 0, }, { tcx_open, tcx_close, nulldev, nulldev, /*109*/ tcx_ioctl, nodev, seltrue, tcx_mmap, 0, 0, }, }; int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]); int mem_no = 3; /* major device number of memory special file */ int dump_no = 41; /* major device number of dump special file */