Annotation of kernel/bsd/netat/h/localglue.h.pre0529, revision 1.1.1.1

1.1       root        1: /*
                      2:  * localglue.h:
                      3:  * Assorted local glue.
                      4:  */
                      5: 
                      6: #ifndef LOCALGLUE_H
                      7: #define        LOCALGLUE_H
                      8: 
                      9: #include <sys/errno.h>
                     10: #include <sys/types.h>
                     11: #include <sys/param.h>
                     12: 
                     13: 
                     14: #define AT_ATP_LINK    111
                     15: #define AT_ATP_UNLINK  222
                     16: #define AT_ADSP_LINK   333
                     17: #define AT_ADSP_UNLINK 444
                     18: 
                     19: typedef struct {
                     20:        int  maxlen; /* max buffer length */
                     21:        int  len;    /* length of data */
                     22:        char *buf;   /* pointer to buffer */
                     23: } strbuf_t;
                     24: typedef struct {
                     25:        int  ic_cmd;
                     26:        int  ic_timout;
                     27:        int  ic_len;
                     28:        char *ic_dp;
                     29: } ioccmd_t;
                     30: typedef struct {
                     31:        int  ioc_cmd;
                     32:        void *ioc_cr;
                     33:        int  ioc_id;
                     34:        int  ioc_cnt;
                     35:        int  ioc_error;
                     36:        int  ioc_rval;
                     37:        void    *ioc_private;
                     38:        int  ioc_filler[4];
                     39: } ioc_t;
                     40: #ifndef ioc_count
                     41: #define ioc_count ioc_cnt
                     42: #endif
                     43: #ifndef MOREDATA
                     44: #define MOREDATA 1
                     45: #endif
                     46: 
                     47: #ifdef _KERNEL
                     48: #include <sys/systm.h>
                     49: /* ### LD 4/28/97 tempo removed */
                     50: #ifdef _AIX
                     51: #include <sys/pri.h>
                     52: #include <sys/intr.h>
                     53: #include <sys/lockl.h>
                     54: #include <net/spl.h>
                     55: #else
                     56: #include <sys/kernel.h>
                     57: #include <sys/proc.h>
                     58: #include <sys/filedesc.h>
                     59: #include <sys/fcntl.h>
                     60: #endif
                     61: #include <sys/mbuf.h>
                     62: 
                     63: /*
                     64:  * Rhapsody: we can't include stdlib.h (which contains atoi) in the
                     65:  * kernel because it conflics with libkern.h for "random"
                     66:  * so we use the inline definition of atoi here...
                     67:  *
                     68:  */
                     69: #ifndef _AIX
                     70: #define atoi(x) (int)((x)-'0') 
                     71: #endif
                     72: 
                     73: #define AT_WR_OFFSET 38
                     74: #ifndef EVENT_NULL
                     75: #define EVENT_NULL   -1
                     76: #define LOCK_HANDLER  2
                     77: #endif
                     78: typedef int atevent_t;
                     79: /* ### LD 4/28/97 tempo removed */
                     80: #ifdef _AIX
                     81: typedef Simple_lock atlock_t;
                     82: #define ATLOCKINIT(a)   simple_lock_init((void *)&a)
                     83: #define ATDISABLE(l, a) (l = disable_lock(PL_IMP, (void *)&a))
                     84: #define ATENABLE(l, a)  unlock_enable(l, (void *)&a)
                     85: #define ATEVENTINIT(a)  (a = EVENT_NULL)
                     86: #define DDP_OUTPUT(m) ddp_putmsg(0,m)
                     87: #define StaticProc static
                     88: #else
                     89: /* ### LD 4/28/97 tempo for next */
                     90: typedef simple_lock_t atlock_t;
                     91: typedef int *atomic_p; 
                     92: #define ATLOCKINIT(a)  (a = EVENT_NULL)
                     93: #define ATDISABLE(l, a) (l = splnet())
                     94: #define ATENABLE(l, a)  splx(l)
                     95: #define ATEVENTINIT(a)  (a = EVENT_NULL)
                     96: #define DDP_OUTPUT(m) ddp_putmsg(0,m)
                     97: #define StaticProc static
                     98: 
                     99: #endif
                    100: #ifdef NEXT
                    101: /* 
                    102:  * Rhapsody specific defines: Right now they're triggered
                    103:  * by the NEXT define. Might want to change that latter
                    104:  * ld 04/28/97
                    105:  */
                    106: 
                    107: #define RHAPSODY 1
                    108: /* HZ ticks definition used throughout AppleTalk */
                    109: #define HZ hz
                    110: 
                    111: /* returned when the operation is not possible at this
                    112:  * time (ie when starting up or shutting down.
                    113:  * right now, uses ESHUTDOWN because ENOTREADY is not defined
                    114:  * in Rhapsody. Need to find a better Error code ###LD
                    115:  */
                    116: #define ENOTREADY      ESHUTDOWN
                    117: #define ENOMSG                 EOPNOTSUPP
                    118: #define EPROTO                 EPROTOTYPE
                    119: #define ENOSR          ENOBUFS
                    120: 
                    121: /* T_MPSAFE is used only in atp_open. I suspect it's a
                    122:  * trick to accelerate local atp transactions.
                    123:  */
                    124: #define T_MPSAFE       0
                    125: 
                    126: #define INTERRUPTIBLE   1
                    127: #define POLLIN                 0x0001
                    128: #define POLLOUT        0x0002
                    129: #define POLLPRI        0x0004
                    130: #define POLLMSG        0x0080
                    131: #define POLLSYNC       0x8000
                    132: #define POLLMSG        0x0080
                    133: 
                    134: /*
                    135:  * Define a new Data Type for file. it was DTYPE_OTHER for 
                    136:  * AIX, for Rhapsody there is no such define so defines
                    137:  * DTYPE_ATALK
                    138:  */
                    139: 
                    140: #define DTYPE_ATALK -1
                    141: 
                    142: typedef unsigned char uchar;
                    143: 
                    144: #endif
                    145: 
                    146: #define MSG_DATA       0x00
                    147: #define MSG_PROTO      0x01
                    148: #define MSG_IOCTL      0x0e
                    149: #define MSG_ERROR      0x8a
                    150: #define MSG_HANGUP     0x89
                    151: #define MSG_IOCACK     0x81
                    152: #define MSG_IOCNAK     0x82
                    153: #define MSG_CTL        0x0d
                    154: #define PRI_LO         1
                    155: #define PRI_MED        2
                    156: #define PRI_HI         3
                    157: 
                    158: typedef struct mbuf gbuf_t;
                    159: extern gbuf_t *gbuf_copym();
                    160: extern gbuf_t *gbuf_dupb();
                    161: extern gbuf_t *gbuf_dupm();
                    162: extern void gbuf_freeb();
                    163: extern void gbuf_freem();
                    164: extern gbuf_t *gbuf_alloc();
                    165: #define gbuf_prepend(m,len) M_PREPEND(m,len,M_DONTWAIT)
                    166: #define gbuf_attach(buf,func,len,arg) m_clattach(buf,func,len,arg,M_DONTWAIT)
                    167: #define gbuf_cont(m)   m->m_next
                    168: #define gbuf_next(m)   m->m_nextpkt
                    169: #define gbuf_rptr(m)   m->m_data
                    170: #define gbuf_rinc(m,len)       {m->m_data += len; m->m_len -= len;}
                    171: #define gbuf_rdec(m,len)       {m->m_data -= len; m->m_len += len;}
                    172: #define gbuf_wptr(m)   (m->m_data + m->m_len)
                    173: #define gbuf_winc(m,len)       (m->m_len += len)
                    174: #define gbuf_wdec(m,len)       (m->m_len -= len)
                    175: #define gbuf_wset(m,len)       (m->m_len = len)
                    176: #define gbuf_type(m)   m->m_type
                    177: #define gbuf_len(m)    m->m_len
                    178: 
                    179: typedef struct gref {
                    180:        struct gref *next;
                    181:        void *info;
                    182:        gbuf_t *ichead;
                    183:        gbuf_t *ictail;
                    184:        gbuf_t *rdhead;
                    185:        gbuf_t *rdtail;
                    186:        unsigned char  proto;
                    187:        unsigned char  errno;
                    188:        unsigned short sevents;
                    189:        int pid;
                    190:        atlock_t lock;
                    191:        atevent_t event;
                    192:        atevent_t iocevent;
                    193:        int (*writeable)();
                    194:        int (*readable)();
                    195:        /* for BSD 4.4 we need a selinfo structure for selrecord/selwakeup */
                    196: #ifndef _AIX
                    197:        struct selinfo si;
                    198: #endif
                    199: } gref_t;
                    200: 
                    201: #undef timeoutcf
                    202: #undef timeout
                    203: #undef untimeout
                    204: #define        MAXATALKTIMERS          128
                    205: 
                    206: #else  /* _KERNEL */
                    207: 
                    208: /* Various device info */
                    209: #define AT_DEF_ET_INTERFACE    "et0"
                    210: #define NVRAM          "/etc/appletalk.nvram"
                    211: #define NVRAMSIZE      256
                    212: 
                    213: #endif         /* _KERNEL */
                    214: 
                    215: #endif /* LOCALGLUE_H */

unix.superglobalmegacorp.com

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