Annotation of coherent/f/usr/include/kernel/ddi_glob.h, revision 1.1

1.1     ! root        1: #ifndef        __KERNEL_DDI_GLOB_H__
        !             2: #define        __KERNEL_DDI_GLOB_H__
        !             3: 
        !             4: /*
        !             5:  * This internal header file defines structures and an access procedure for
        !             6:  * DDI/DKI global data that must be shared between all CPUs. Note that this
        !             7:  * may not be all the truly global context; examine the STREAMS header files
        !             8:  * for additional global data specific to STREAMS.
        !             9:  */
        !            10: 
        !            11: /*
        !            12:  *-IMPORTS:
        !            13:  *     <common/ccompat.h>
        !            14:  *             __EXTERN_C_BEGIN__
        !            15:  *             __EXTERN_C_END__
        !            16:  *             __PROTO ()
        !            17:  *     <kernel/_lock.h>
        !            18:  *             lock_t
        !            19:  *     <kernel/_toid.h>
        !            20:  *             toid_t
        !            21:  *     <kernel/x86lock.h>
        !            22:  *             atomic_uchar_t
        !            23:  */
        !            24: 
        !            25: #include <common/ccompat.h>
        !            26: #include <kernel/x86lock.h>
        !            27: #include <kernel/_lock.h>
        !            28: #include <kernel/_toid.h>
        !            29: #include <kernel/ddi_data.h>
        !            30: 
        !            31: 
        !            32: /*
        !            33:  * Timeout events are stored on a global queue, both while they are pending
        !            34:  * and once they have expired. When an event expires, it is bound to a CPU
        !            35:  * (if one was not specified when the event was created) and a function to
        !            36:  * process expired events on that CPU is deferred.
        !            37:  */
        !            38: 
        !            39: typedef        struct timeout  timeout_t;
        !            40: 
        !            41: typedef struct tlist {
        !            42:        __lock_t      * td_lock;
        !            43:        toid_t          td_id;
        !            44:        timeout_t     * td_first;
        !            45:        timeout_t     * td_run;
        !            46: } timelist_t;
        !            47: 
        !            48: 
        !            49: /*
        !            50:  * Truly global data used by the DDI/DKI system (except for STREAMS global
        !            51:  * data).
        !            52:  */
        !            53: 
        !            54: struct ddi_global_data {
        !            55:        /*
        !            56:         * The defer-table data is at the front of the structure because it is
        !            57:         * typically manipulated by hand-coded assembly-language routines.
        !            58:         */
        !            59: 
        !            60:        defer_t         dg_defint;              /* interrupt-level defers */
        !            61:        defer_t         dg_defproc;             /* process-level defers */
        !            62: 
        !            63:        __lock_t      * dg_polllock;            /* global lock on polling */
        !            64:        __lock_t      * dg_proclock;            /* process reference count */
        !            65: 
        !            66:        timelist_t      dg_timeouts;            /* timeout data */
        !            67: 
        !            68:        atomic_uchar_t  dg_run_bufcalls;        /* bufcall check deferred */
        !            69:        atomic_uchar_t  dg_run_strsched;        /* STREAMS service deferred */
        !            70:        atomic_uchar_t  dg_run_time;            /* timeout check deferred */
        !            71: };
        !            72: 
        !            73: typedef        struct ddi_global_data  dgdata_t;
        !            74: 
        !            75: 
        !            76: __EXTERN_C_BEGIN__
        !            77: 
        !            78: dgdata_t      *        ddi_global_data __PROTO ((void));
        !            79: 
        !            80: __EXTERN_C_END__
        !            81: 
        !            82: 
        !            83: extern dgdata_t                __ddi_global_data;
        !            84: 
        !            85: #define        ddi_global_data()       (& __ddi_global_data)
        !            86: 
        !            87: 
        !            88: #endif /* ! defined (__KERNEL_DDI_GLOB_H__) */

unix.superglobalmegacorp.com

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