Annotation of coherent/f/usr/include/sys/confinfo.h, revision 1.1

1.1     ! root        1: #ifndef        __SYS_CONFINFO_H__
        !             2: #define        __SYS_CONFINFO_H__
        !             3: 
        !             4: /*
        !             5:  * This file contains definitions used by the automatically-generated
        !             6:  * configuration file "conf.c". The generated code makes heavy use of macros
        !             7:  * to allow the final result to be precisely tailored to the target system
        !             8:  * without modification to the code generator.
        !             9:  */
        !            10: /*
        !            11:  *-IMPORTS:
        !            12:  *     <common/ccompat.h>
        !            13:  *             __EXTERN_C_BEGIN__
        !            14:  *             __EXTERN_C_END__
        !            15:  *             __USE_PROTO__
        !            16:  *             __PROTO ()
        !            17:  *     <common/xdebug.h>
        !            18:  *             __LOCAL__
        !            19:  *     <common/_intmask.h>
        !            20:  *             intmask_t
        !            21:  *     <common/_cred.h>
        !            22:  *             cred_t
        !            23:  *     <common/_uid.h>
        !            24:  *             n_dev_t
        !            25:  *             __major_t
        !            26:  *             __minor_t
        !            27:  *     <common/_off.h>
        !            28:  *             off_t
        !            29:  *     <sys/inline.h>
        !            30:  *             _masktab []
        !            31:  *             __GET_BASE_MASK ()
        !            32:  *             __SET_BASE_MASK ()
        !            33:  *     <sys/stream.h>
        !            34:  *             struct streamtab
        !            35:  *     <sys/uio.h>
        !            36:  *             uio_t
        !            37:  */
        !            38: 
        !            39: #include <common/ccompat.h>
        !            40: #include <common/xdebug.h>
        !            41: #include <common/_intmask.h>
        !            42: #include <common/_cred.h>
        !            43: #include <common/_uid.h>
        !            44: #include <common/_off.h>
        !            45: #include <sys/inline.h>
        !            46: #include <sys/stream.h>
        !            47: #include <sys/uio.h>
        !            48: 
        !            49: 
        !            50: #ifdef __USE_PROTO__
        !            51: #define        DEF(ansi,k_r)           ansi
        !            52: #else
        !            53: #define        DEF(ansi,k_r)           k_r
        !            54: #endif
        !            55: 
        !            56: /*
        !            57:  * Since we don't import the definition of "buf", let's create an incomplete
        !            58:  * definition at file scope. Same for "pollhead".
        !            59:  */
        !            60: 
        !            61: struct buf;
        !            62: struct pollhead;
        !            63: 
        !            64: #define        __OPEN(name)    __CONCAT (name, open)
        !            65: #define        __CLOSE(name)   __CONCAT (name, close)
        !            66: #define        __READ(name)    __CONCAT (name, read)
        !            67: #define        __WRITE(name)   __CONCAT (name, write)
        !            68: #define        __IOCTL(name)   __CONCAT (name, ioctl)
        !            69: #define        __STRATEGY(name) __CONCAT (name, strategy)
        !            70: #define        __PRINT(name)   __CONCAT (name, print)
        !            71: #define        __SIZE(name)    __CONCAT (name, size)
        !            72: #define        __CHPOLL(name)  __CONCAT (name, chpoll)
        !            73: #define        __MMAP(name)    __CONCAT (name, mmap)
        !            74: #define        __INTR(name)    __CONCAT (name, intr)
        !            75: #define        __INIT(name)    __CONCAT (name, init)
        !            76: #define        __HALT(name)    __CONCAT (name, halt)
        !            77: #define        __START(name)   __CONCAT (name, start)
        !            78: #define        __EXIT(name)    __CONCAT (name, exit)
        !            79: 
        !            80: #define        __INFO(name)    __CONCAT (name, info)
        !            81: #define        __DEVFLAG(name) __CONCAT (name, devflag)
        !            82: 
        !            83: 
        !            84: typedef        int  (* ddi_open_t)     __PROTO ((n_dev_t * _devp, int _oflag,
        !            85:                                          int _otyp, cred_t * _credp));
        !            86: #define        EXTERN_OPEN(name) __EXTERN_C__ \
        !            87:   int  __OPEN (name)   __PROTO ((n_dev_t * _devp, int _oflag,\
        !            88:                                         int _otyp, cred_t * _credp))
        !            89: 
        !            90: typedef        int  (* ddi_close_t)    __PROTO ((n_dev_t _dev, int _oflag, int _otyp,
        !            91:                                          cred_t * _credp));
        !            92: #define        EXTERN_CLOSE(name) __EXTERN_C__ \
        !            93:   int  __CLOSE (name)  __PROTO ((n_dev_t _dev, int _oflag, int _otyp,\
        !            94:                                          cred_t * _credp))
        !            95: 
        !            96: typedef        int  (* ddi_read_t)     __PROTO ((n_dev_t _dev, uio_t * _uiop,
        !            97:                                          cred_t * _credp));
        !            98: #define        EXTERN_READ(name) __EXTERN_C__ \
        !            99:   int  __READ (name)   __PROTO ((n_dev_t _dev, uio_t * _uiop,\
        !           100:                                          cred_t * _credp))
        !           101: 
        !           102: typedef int  (*        ddi_write_t)    __PROTO ((n_dev_t _dev, uio_t * _uiop,
        !           103:                                          cred_t * _credp));
        !           104: #define        EXTERN_WRITE(name) __EXTERN_C__ \
        !           105:   int  __WRITE (name)  __PROTO ((n_dev_t _dev, uio_t * _uiop,\
        !           106:                                          cred_t * _credp))
        !           107: 
        !           108: typedef        int  (* ddi_ioctl_t)    __PROTO ((n_dev_t _dev, int _cmd, _VOID * _arg,
        !           109:                                          int _mode, cred_t * _credp,
        !           110:                                          int * _rvalp));
        !           111: #define        EXTERN_IOCTL(name) __EXTERN_C__ \
        !           112:   int  __IOCTL (name)  __PROTO ((n_dev_t _dev, int _cmd, _VOID * _arg,\
        !           113:                                          int _mode, cred_t * _credp,\
        !           114:                                          int * _rvalp))
        !           115: 
        !           116: typedef        int  (* ddi_strategy_t) __PROTO ((struct buf * _bufp));
        !           117: #define        EXTERN_STRATEGY(name) __EXTERN_C__ \
        !           118:   int  __STRATEGY (name) __PROTO ((struct buf * _bufp))
        !           119: 
        !           120: typedef int  (*        ddi_print_t)    __PROTO ((n_dev_t _dev, char * _str));
        !           121: #define        EXTERN_PRINT(name) __EXTERN_C__ \
        !           122:   int  __PRINT (name)  __PROTO ((n_dev_t _dev, char * _str))
        !           123: 
        !           124: typedef int  (*        ddi_size_t)     __PROTO ((n_dev_t _dev));
        !           125: #define        EXTERN_SIZE(name) __EXTERN_C__ \
        !           126:   int  __SIZE (name)   __PROTO ((n_dev_t _dev))
        !           127: 
        !           128: typedef        int  (* ddi_chpoll_t)   __PROTO ((n_dev_t _dev, short _events,
        !           129:                                          int _anyyet, short * _reventsp,
        !           130:                                          struct pollhead ** _phpp));
        !           131: #define        EXTERN_CHPOLL(name) __EXTERN_C__ \
        !           132:   int  __CHPOLL (name) __PROTO ((n_dev_t _dev, short _events,\
        !           133:                                          int _anyyet, short * _reventsp,\
        !           134:                                          struct pollhead ** _phpp))
        !           135: 
        !           136: typedef        int  (* ddi_mmap_t)     __PROTO ((n_dev_t _dev, off_t _off,
        !           137:                                          int _prot));
        !           138: #define        EXTERN_MMAP(name) __EXTERN_C__ \
        !           139:   int  __MMAP (name)   __PROTO ((n_dev_t _dev, off_t _off,\
        !           140:                                          int _prot))
        !           141: 
        !           142: typedef        int  (* ddi_intr_t)     __PROTO ((int _ivec));
        !           143: #define        EXTERN_INTR(name) __EXTERN_C__ \
        !           144:   int  __INTR (name)   __PROTO ((int _ivec))
        !           145: 
        !           146: typedef void (*        ddi_init_t)     __PROTO ((void));
        !           147: #define        EXTERN_INIT(name) __EXTERN_C__ \
        !           148:   void __INIT (name)   __PROTO ((void))
        !           149: 
        !           150: typedef        void (* ddi_start_t)    __PROTO ((void));
        !           151: #define        EXTERN_START(name) __EXTERN_C__ \
        !           152:   void __START (name)  __PROTO ((void))
        !           153: 
        !           154: typedef        void (* ddi_exit_t)     __PROTO ((void));
        !           155: #define        EXTERN_EXIT(name) __EXTERN_C__ \
        !           156:   void __EXIT (name)   __PROTO ((void))
        !           157: 
        !           158: typedef        void (* ddi_halt_t)     __PROTO ((void));
        !           159: #define        EXTERN_HALT(name) __EXTERN_C__ \
        !           160:   void __HALT (name)   __PROTO ((void))
        !           161: 
        !           162: #define        NULL_OPEN               ((ddi_open_t) 0)
        !           163: #define        NULL_CLOSE              ((ddi_close_t) 0)
        !           164: #define        NULL_READ               ((ddi_read_t) 0)
        !           165: #define        NULL_WRITE              ((ddi_write_t) 0)
        !           166: #define        NULL_IOCTL              ((ddi_ioctl_t) 0)
        !           167: #define        NULL_STRATEGY           ((ddi_strategy_t) 0)
        !           168: #define        NULL_PRINT              ((ddi_print_t) 0)
        !           169: #define        NULL_SIZE               ((ddi_size_t) 0)
        !           170: #define        NULL_CHPOLL             ((ddi_chpoll_t) 0)
        !           171: #define        NULL_MMAP               ((ddi_mmap_t) 0)
        !           172: #define        NULL_INTR               ((ddi_intr_t) 0)
        !           173: #define        NULL_INIT               ((ddi_init_t) 0)
        !           174: #define        NULL_START              ((ddi_start_t) 0)
        !           175: #define        NULL_EXIT               ((ddi_exit_t) 0)
        !           176: #define        NULL_HALT               ((ddi_halt_t) 0)
        !           177: #define        NULL_CON                ((CON *) 0)
        !           178: 
        !           179: #if    __COHERENT__ || defined (__MSDOS__)
        !           180: 
        !           181: #define        __KERNEL__      2
        !           182: 
        !           183: #if    defined (__MSDOS__)
        !           184: #include <sys/_con.h>
        !           185: #else
        !           186: #include <sys/buf.h>
        !           187: #include <sys/con.h>
        !           188: #endif
        !           189: 
        !           190: #include <sys/io.h>
        !           191: 
        !           192: #undef __KERNEL__
        !           193: 
        !           194: __EXTERN_C_BEGIN__
        !           195: 
        !           196: int            _forward_open   __PROTO ((o_dev_t _dev, int _mode, int _flags,
        !           197:                                          ddi_open_t _funcp));
        !           198: int            _forward_close  __PROTO ((o_dev_t _dev, int _mode, int _flags,
        !           199:                                          ddi_close_t _funcp));
        !           200: int            _forward_read   __PROTO ((o_dev_t _dev, IO * _iop,
        !           201:                                          ddi_read_t _funcp));
        !           202: int            _forward_write  __PROTO ((o_dev_t _dev, IO * _iop,
        !           203:                                          ddi_write_t _funcp));
        !           204: int            _forward_ioctl  __PROTO ((o_dev_t _dev, int _cmd,
        !           205:                                          _VOID * _arg, int mode,
        !           206:                                          ddi_ioctl_t _funcp));
        !           207: #ifndef        __MSDOS__
        !           208: int            _forward_strategy __PROTO ((BUF * _buf,
        !           209:                                            ddi_strategy_t _funcp));
        !           210: #endif
        !           211: int            _forward_chpoll __PROTO ((o_dev_t _dev, int _events,
        !           212:                                          int _msec, ddi_chpoll_t _funcp));
        !           213: 
        !           214: int            _streams_open   __PROTO ((o_dev_t _dev, int _mode, int _flags,
        !           215:                                          struct streamtab * _infop));
        !           216: int            _streams_close  __PROTO ((o_dev_t _dev, int _mode, int _flags,
        !           217:                                          struct streamtab * _infop));
        !           218: int            _streams_read   __PROTO ((o_dev_t _dev, IO * _iop,
        !           219:                                          struct streamtab * _infop));
        !           220: int            _streams_write  __PROTO ((o_dev_t _dev, IO * _iop,
        !           221:                                          struct streamtab * _infop));
        !           222: int            _streams_ioctl  __PROTO ((o_dev_t _dev, int _cmd,
        !           223:                                          _VOID * _arg, int mode,
        !           224:                                          struct streamtab * _infop));
        !           225: int            _streams_chpoll __PROTO ((o_dev_t _dev, int _events,
        !           226:                                          int _msec,
        !           227:                                          struct streamtab * _infop));
        !           228: 
        !           229: __EXTERN_C_END__
        !           230: 
        !           231: typedef struct {
        !           232:        int           * cdev_flag;
        !           233:        CON             cdev_con;
        !           234: } cdevsw_t;
        !           235: 
        !           236: /*
        !           237:  * Note that we do not have the DFPOL flag set by default. While most compilers
        !           238:  * can evaluate a "(ch) == 0 ? :" type of expression which is a constant in an
        !           239:  * initializer, the MWC compiler cannot do so reliably. We fix up the flags at
        !           240:  * startup time as a result.
        !           241:  */
        !           242: 
        !           243: #define        CDEVSW_ENTRY(fl,op,cl,re,wr,io,ch,mm) \
        !           244:        { (fl), { (ch) == 0 ? DFCHR : DFCHR | DFPOL, 0, \
        !           245:                  (op), (cl), 0, (re), (wr), (io), 0, 0, 0, 0, (ch) } }
        !           246: 
        !           247: #define        NULL_CDEVSW() \
        !           248:        { 0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
        !           249: 
        !           250: #define        STREAMS_ENTRY(name) \
        !           251:        { & __DEVFLAG (name), { DFCHR | DFPOL, 0, \
        !           252:                __CONCAT (name, openS), __CONCAT (name, closeS), \
        !           253:                0, __CONCAT (name, readS), __CONCAT (name, writeS), \
        !           254:                __CONCAT (name, ioctlS), 0, 0, 0, 0, \
        !           255:                __CONCAT (name, chpollS) } }
        !           256: 
        !           257: #define        COH_OPEN(name,s) \
        !           258:   __LOCAL__ int __CONCAT3 (name, open, s) \
        !           259:        DEF ((o_dev_t dev, int mode, int flag),\
        !           260:             (dev, mode, flag) o_dev_t dev; int mode; int flag;)
        !           261: 
        !           262: #define        COH_CLOSE(name,s) \
        !           263:   __LOCAL__ int __CONCAT3 (name, close, s) \
        !           264:        DEF ((o_dev_t dev, int mode, int flag), \
        !           265:             (dev, mode, flag) o_dev_t dev; int mode; int flag;)
        !           266: 
        !           267: #define        COH_READ(name,s) \
        !           268:   __LOCAL__ int __CONCAT3 (name, read, s) \
        !           269:        DEF ((o_dev_t dev, IO * iop), \
        !           270:             (dev, iop) o_dev_t dev; IO * iop;)
        !           271: 
        !           272: #define        COH_WRITE(name,s) \
        !           273:   __LOCAL__ int __CONCAT3 (name, write, s) \
        !           274:        DEF ((o_dev_t dev, IO * iop), \
        !           275:             (dev, iop) o_dev_t dev; IO * iop;)
        !           276: 
        !           277: #define        COH_IOCTL(name,s) \
        !           278:   __LOCAL__ int __CONCAT3 (name, ioctl, s) \
        !           279:        DEF ((o_dev_t dev, int cmd, _VOID * arg, int mode), \
        !           280:             (dev, cmd, arg, mode) \
        !           281:                o_dev_t dev; int cmd; _VOID * arg; int mode;)
        !           282: 
        !           283: #define        COH_STRATEGY(name,s) \
        !           284:   __LOCAL__ int __CONCAT3 (name, strategy, s) \
        !           285:        DEF ((BUF * buf), \
        !           286:             (buf) BUF * buf;)
        !           287: 
        !           288: #define        COH_CHPOLL(name,s) \
        !           289:    __LOCAL__ int __CONCAT3 (name, chpoll, s) \
        !           290:        DEF ((o_dev_t dev, int events, int msec), \
        !           291:             (dev, events, msec) o_dev_t dev; int events; int msec;)
        !           292: 
        !           293: #define        DECLARE_STREAMS(name) \
        !           294:  extern struct streamtab __INFO (name); \
        !           295:  COH_OPEN (name, S) { \
        !           296:        return _streams_open (dev, mode, flag, & __INFO (name)); \
        !           297:  } \
        !           298:  COH_CLOSE (name, S) { \
        !           299:        return _streams_close (dev, mode, flag, & __INFO (name)); \
        !           300:  } \
        !           301:  COH_READ (name, S) { \
        !           302:        return _streams_read (dev, iop, & __INFO (name)); \
        !           303:  } \
        !           304:  COH_WRITE (name, S) { \
        !           305:        return _streams_write (dev, iop, & __INFO (name)); \
        !           306:  } \
        !           307:  COH_IOCTL (name, S) { \
        !           308:        return _streams_ioctl (dev, cmd, arg, mode, & __INFO (name));\
        !           309:  } \
        !           310:  COH_CHPOLL (name, S) { \
        !           311:        return _streams_chpoll (dev, events, msec, & __INFO (name)); \
        !           312:  }
        !           313: 
        !           314: #define        DECLARE_OPEN(name) \
        !           315:   COH_OPEN (name,D) { \
        !           316:        EXTERN_OPEN (name); \
        !           317:        return _forward_open (dev, mode, flag, __OPEN (name)); \
        !           318:   }
        !           319: 
        !           320: #define        DECLARE_CLOSE(name) \
        !           321:   COH_CLOSE (name,D) { \
        !           322:        EXTERN_CLOSE (name); \
        !           323:        return _forward_close (dev, mode, flag, __CLOSE (name)); \
        !           324:   }
        !           325: 
        !           326: #define        DECLARE_READ(name) \
        !           327:   COH_READ (name,D) { \
        !           328:        EXTERN_READ (name); \
        !           329:        return _forward_read (dev, iop, __READ (name)); \
        !           330:   }
        !           331: 
        !           332: #define        DECLARE_WRITE(name) \
        !           333:   COH_WRITE (name,D) { \
        !           334:        EXTERN_WRITE (name); \
        !           335:        return _forward_write (dev, iop, __WRITE (name)); \
        !           336:   }
        !           337: 
        !           338: #define        DECLARE_IOCTL(name) \
        !           339:   COH_IOCTL (name,D) { \
        !           340:        EXTERN_IOCTL (name); \
        !           341:        return _forward_ioctl (dev, cmd, arg, mode, __IOCTL (name)); \
        !           342:   }
        !           343: 
        !           344: #define        DECLARE_STRATEGY(name) \
        !           345:   COH_STRATEGY (name,D) { \
        !           346:        EXTERN_STRATEGY (name); \
        !           347:        return _forward_strategy (buf, __STRATEGY (name)); \
        !           348:   }
        !           349: 
        !           350: #define        DECLARE_CHPOLL(name) \
        !           351:   COH_CHPOLL (name,D) { \
        !           352:        EXTERN_CHPOLL (name); \
        !           353:        return _forward_chpoll (dev, events, msec, __CHPOLL (name)); \
        !           354:   }
        !           355: 
        !           356: #define        OPEN(name)              __CONCAT (name, openD)
        !           357: #define CLOSE(name)            __CONCAT (name, closeD)
        !           358: #define        READ(name)              __CONCAT (name, readD)
        !           359: #define        WRITE(name)             __CONCAT (name, writeD)
        !           360: #define        IOCTL(name)             __CONCAT (name, ioctlD)
        !           361: #define        STRATEGY(name)          __CONCAT (name, strategyD)
        !           362: #define        CHPOLL(name)            __CONCAT (name, chpollD)
        !           363: 
        !           364: /*
        !           365:  * "drvl" and "drvn" are declared for us in <sys/con.h>. Note that the drvl []
        !           366:  * table always has 32 entries to allow the patching hacks (shudder).
        !           367:  */
        !           368: 
        !           369: #define        DECLARE_DRVL(name)      extern CON      __CONCAT (name, con);
        !           370: 
        !           371: #define        DRVL_ENTRY(name)        { & __CONCAT (name, con) }
        !           372: 
        !           373: #define        NULL_DRVL()             { 0 }
        !           374: 
        !           375: #endif /* __COHERENT__ || defined (__MSDOS__) */
        !           376: 
        !           377: 
        !           378: /*
        !           379:  * Now default definitions for those things that are not overridden above.
        !           380:  */
        !           381: 
        !           382: #if    ! defined (DECLARE_STREAMS)
        !           383: # define       DECLARE_STREAMS(name)   extern struct streamtab __INFO (name);
        !           384: #endif
        !           385: 
        !           386: #if    ! defined (DECLARE_MODULE)
        !           387: # define       DECLARE_MODULE(name)    extern struct streamtab __INFO (name);
        !           388: #endif
        !           389: 
        !           390: #if    ! defined (DECLARE_OPEN) || ! defined (OPEN)
        !           391: # define       DECLARE_OPEN(name)      EXTERN_OPEN (name);
        !           392: # define       OPEN(name)              __OPEN (name)
        !           393: #endif
        !           394: 
        !           395: #if    ! defined (DECLARE_CLOSE) || ! defined (CLOSE)
        !           396: # define       DECLARE_CLOSE(name)     EXTERN_CLOSE (name);
        !           397: # define       CLOSE(name)             __CLOSE (name)
        !           398: #endif
        !           399: 
        !           400: #if    ! defined (DECLARE_READ) || ! defined (READ)
        !           401: # define       DECLARE_READ(name)      EXTERN_READ (name);
        !           402: # define       READ(name)              __READ (name)
        !           403: #endif
        !           404: 
        !           405: #if    ! defined (DECLARE_WRITE) || ! defined (WRITE)
        !           406: # define       DECLARE_WRITE(name)     EXTERN_WRITE (name);
        !           407: # define       WRITE(name)             __WRITE (name)
        !           408: #endif
        !           409: 
        !           410: #if    ! defined (DECLARE_IOCTL) || ! defined (IOCTL)
        !           411: # define       DECLARE_IOCTL(name)     EXTERN_IOCTL (name);
        !           412: # define       IOCTL(name)             __IOCTL (name)
        !           413: #endif
        !           414: 
        !           415: #if    ! defined (DECLARE_CHPOLL) || ! defined (CHPOLL)
        !           416: # define       DECLARE_CHPOLL(name)    EXTERN_CHPOLL (name);
        !           417: # define       CHPOLL(name)            __CHPOLL (name)
        !           418: #endif
        !           419: 
        !           420: #if    ! defined (DECLARE_MMAP) || ! defined (MMAP)
        !           421: # define       DECLARE_MMAP(name)      EXTERN_MMAP (name);
        !           422: # define       MMAP(name)              __MMAP (name)
        !           423: #endif
        !           424: 
        !           425: #if    ! defined (DECLARE_STRATEGY) || ! defined (STRATEGY)
        !           426: # define       DECLARE_STRATEGY(name)  EXTERN_STRATEGY (name);
        !           427: # define       STRATEGY(name)          __STRATEGY (name)
        !           428: #endif
        !           429: 
        !           430: #if    ! defined (DECLARE_PRINT) || ! defined (PRINT)
        !           431: # define       DECLARE_PRINT(name)     EXTERN_PRINT (name);
        !           432: # define       PRINT(name)             __PRINT (name)
        !           433: #endif
        !           434: 
        !           435: #if    ! defined (DECLARE_SIZE) || ! defined (SIZE)
        !           436: # define       DECLARE_SIZE(name)      EXTERN_SIZE (name);
        !           437: # define       SIZE(name)              __SIZE (name)
        !           438: #endif
        !           439: 
        !           440: #if    ! defined (DECLARE_INTR) || ! defined (INTR)
        !           441: # define       DECLARE_INTR(name)      EXTERN_INTR (name);
        !           442: # define       INTR(name)              __INTR (name)
        !           443: #endif
        !           444: 
        !           445: #if    ! defined (DECLARE_INIT) || ! defined (INIT)
        !           446: # define       DECLARE_INIT(name)      EXTERN_INIT (name);
        !           447: # define       INIT(name)              __INIT (name)
        !           448: #endif
        !           449: 
        !           450: #if    ! defined (DECLARE_START) || ! defined (START)
        !           451: # define       DECLARE_START(name)     EXTERN_START (name);
        !           452: # define       START(name)             __START (name)
        !           453: #endif
        !           454: 
        !           455: #if    ! defined (DECLARE_EXIT) || ! defined (EXIT)
        !           456: # define       DECLARE_EXIT(name)      EXTERN_EXIT (name);
        !           457: # define       EXIT(name)              __EXIT (name)
        !           458: #endif
        !           459: 
        !           460: #if    ! defined (DECLARE_HALT) || ! defined (HALT)
        !           461: # define       DECLARE_HALT(name)      EXTERN_HALT (name);
        !           462: # define       HALT(name)              __EXIT (halt)
        !           463: #endif
        !           464: 
        !           465: #ifndef        CDEVSW_ENTRY
        !           466: 
        !           467: typedef struct {
        !           468:        int           * cdev_flag;
        !           469:        struct streamtab
        !           470:                      * cdev_stream;
        !           471:        ddi_open_t      cdev_open;
        !           472:        ddi_close_t     cdev_close;
        !           473:        ddi_read_t      cdev_read;
        !           474:        ddi_write_t     cdev_write;
        !           475:        ddi_ioctl_t     cdev_ioctl;
        !           476:        ddi_chpoll_t    cdev_chpoll;
        !           477:        ddi_mmap_t      cdev_mmap;
        !           478: } cdevsw_t;
        !           479: 
        !           480: #define        CDEVSW_ENTRY(fl,op,cl,re,wr,io,ch,mm) \
        !           481:        { (fl), 0, (op), (cl), (re), (wr), (io), (ch), (mm) }
        !           482: 
        !           483: #define        STREAMS_ENTRY(name) \
        !           484:        { & __DEVFLAG (name), & __INFO (name), 0, 0, 0, 0, 0, 0 }
        !           485: 
        !           486: #define        NULL_CDEVSW() \
        !           487:        { 0, 0, 0, 0, 0, 0, 0, 0 }
        !           488: 
        !           489: #endif /* ! defined (CDEVSW_ENTRY) */
        !           490: 
        !           491: #ifndef        BDEVSW_ENTRY
        !           492: 
        !           493: typedef struct {
        !           494:        int           * bdev_flag;
        !           495:        ddi_open_t      bdev_open;
        !           496:        ddi_close_t     bdev_close;
        !           497:        ddi_strategy_t  bdev_strategy;
        !           498:        ddi_print_t     bdev_print;
        !           499:        ddi_size_t      bdev_size;
        !           500: } bdevsw_t;
        !           501: 
        !           502: #define        BDEVSW_ENTRY(fl,op,cl,st,pr,si) \
        !           503:        { (fl), (op), (cl), (st), (pr), (si) }
        !           504: 
        !           505: #define        NULL_BDEVSW() \
        !           506:        { 0, 0, 0, 0, 0, 0 }
        !           507: 
        !           508: #endif /* ! defined (BDEVSW_ENTRY) */
        !           509: 
        !           510: 
        !           511: #ifndef        MODSW_ENTRY
        !           512: 
        !           513: typedef        struct {
        !           514:        int           * mod_flag;
        !           515:        struct streamtab
        !           516:                      * mod_stream;
        !           517: } modsw_t;
        !           518: 
        !           519: #define        MODSW_ENTRY(name)       { & __DEVFLAG (name), & __INFO (name) }
        !           520: 
        !           521: #define        NULL_MODSW()            { 0, 0 }
        !           522: 
        !           523: #endif /* ! defined (MODSW_ENTRY) */
        !           524: 
        !           525: 
        !           526: #define        __VECTOR(vec)   __CONCAT (vector, vec)
        !           527: #define        __PREV(vec)     __CONCAT3 (vector, vec, _prev)
        !           528: 
        !           529: 
        !           530: #ifdef __BORLANDC__
        !           531: 
        !           532: /*
        !           533:  * Under MS-DOS, we have to avoid disrupting the existing software. That means
        !           534:  * we have to take care to chain to the appropriate previous handlers; given
        !           535:  * that Borland C++ has support for this, interrupts under C++ are supported
        !           536:  * using native facilities rather than a generic trap layer. A generic trap
        !           537:  * layer should be doing similar things, of course.
        !           538:  */
        !           539: 
        !           540: typedef        interrupt void (* intthunk_t)   __PROTO ((__ANY_ARGS__));
        !           541: 
        !           542: __EXTERN_C_BEGIN__
        !           543: 
        !           544: void   _chain_intr (intthunk_t _prev_int);     /* Borland C++ library */
        !           545: void   CHECK_DEFER (void);
        !           546: 
        !           547: __EXTERN_C_END__
        !           548: 
        !           549: 
        !           550: typedef        struct {
        !           551:        int             int_vector;
        !           552:        intthunk_t      int_thunk;
        !           553:        intthunk_t    * int_prev;
        !           554: } intr_t;
        !           555: 
        !           556: #define        BEGIN_THUNK(vec,mask) \
        !           557:   __LOCAL__ intthunk_t __PREV (vec); \
        !           558:   __LOCAL__ interrupt void __VECTOR (vec) \
        !           559:        DEF ((__ANY_ARGS__), __ARGS (())) { \
        !           560:                intmask_t       oldmask = __GET_BASE_MASK (); \
        !           561:                pl_t            prev_pl; \
        !           562:                if (__PREV (vec) != 0) \
        !           563:                        (* __PREV (vec)) (); \
        !           564:                __SET_BASE_MASK (oldmask | (mask)); \
        !           565:                ddi_cpu_data ()->dc_int_level ++; \
        !           566:                prev_pl = spltimeout (); \
        !           567:                __SEND_EOI (vec); \
        !           568:                __CHEAP_ENABLE_INTS ();
        !           569: 
        !           570: #define        CALL_INTR(vec,name)     (void) __INTR (name) (vec);
        !           571: 
        !           572: #define        END_THUNK(vec) \
        !           573:                __CHEAP_DISABLE_INTS (); \
        !           574:                __SET_BASE_MASK (oldmask); \
        !           575:                splx (prev_pl); \
        !           576:                if (ddi_cpu_data ()->dc_int_level == 1 && \
        !           577:                    ddi_cpu_data ()->dc_ipl == plbase) \
        !           578:                        CHECK_DEFER (); \
        !           579:                ddi_cpu_data ()->dc_int_level --; \
        !           580:        }
        !           581: 
        !           582: #define        INTR_THUNK(vec)         { vec, __VECTOR (vec), & __PREV (vec) }
        !           583: 
        !           584: #else
        !           585: 
        !           586: typedef        void         (* intthunk_t)     __PROTO ((__ANY_ARGS__));
        !           587: 
        !           588: typedef        struct {
        !           589:        int             int_vector;
        !           590:        intthunk_t      int_thunk;
        !           591: } intr_t;
        !           592: 
        !           593: #define        BEGIN_THUNK(vec,mask) \
        !           594:   __LOCAL__ void __VECTOR (vec) \
        !           595:        DEF ((void), __ARGS (())) { \
        !           596:                intmask_t       oldmask = __GET_BASE_MASK (); \
        !           597:                __SET_BASE_MASK (oldmask | (mask)); \
        !           598:                ddi_cpu_data ()->dc_int_level ++;
        !           599: 
        !           600: #define        CALL_INTR(vec,name)     (void) __INTR (name) (vec);
        !           601: 
        !           602: #define        END_THUNK(vec) \
        !           603:                ddi_cpu_data ()->dc_int_level --; \
        !           604:                __SET_BASE_MASK (oldmask); \
        !           605:        }
        !           606: 
        !           607: #define        INTR_THUNK(vec)         { vec, __VECTOR (vec) }
        !           608: 
        !           609: #endif
        !           610: 
        !           611: 
        !           612: typedef        ddi_init_t      init_t;
        !           613: typedef        ddi_start_t     start_t;
        !           614: typedef        ddi_exit_t      exit_t;
        !           615: typedef        ddi_halt_t      halt_t;
        !           616: 
        !           617: extern init_t          inittab [];
        !           618: extern unsigned int    ninit;
        !           619: 
        !           620: extern start_t         starttab [];
        !           621: extern unsigned int    nstart;
        !           622: 
        !           623: extern exit_t          exittab [];
        !           624: extern unsigned int    nexit;
        !           625: 
        !           626: extern halt_t          halttab [];
        !           627: extern unsigned int    nhalt;
        !           628: 
        !           629: extern cdevsw_t        cdevsw [];
        !           630: extern unsigned int    ncdevsw;
        !           631: 
        !           632: extern bdevsw_t        bdevsw [];
        !           633: extern unsigned int    nbdevsw;
        !           634: 
        !           635: extern modsw_t         modsw [];
        !           636: extern unsigned int    nmodsw;
        !           637: 
        !           638: extern __major_t       _maxmajor;
        !           639: extern __major_t       _major [];
        !           640: extern __minor_t       _minor [];
        !           641: 
        !           642: extern intr_t          inttab [];
        !           643: extern unsigned int    nintr;
        !           644: 
        !           645: #endif /* ! defined (__SYS_CONFINFO_H__) */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.