|
|
1.1 ! root 1: /* @(#)zscom.h 1.1 86/02/03 SMI */ ! 2: ! 3: /* ! 4: * Copyright (c) 1984 by Sun Microsystems, Inc. ! 5: */ ! 6: ! 7: /* ! 8: * Support common to all users of Z8530 devices ! 9: */ ! 10: ! 11: /* ! 12: * Interrupt vectors - per protocol ! 13: */ ! 14: struct zsops { ! 15: int (*zsop_attach)(); /* attach protocol */ ! 16: int (*zsop_txint)(); /* xmit buffer empty */ ! 17: int (*zsop_xsint)(); /* external/status */ ! 18: int (*zsop_rxint)(); /* receive char available */ ! 19: int (*zsop_srint)(); /* special receive condition */ ! 20: int (*zsop_softint)(); /* process software interrupt */ ! 21: }; ! 22: ! 23: /* ! 24: * Common data ! 25: */ ! 26: struct zscom { ! 27: int (*zs_vec[4])(); /* vector routines - must be first */ ! 28: struct zscc_device *zs_addr; /* address of half of chip - second */ ! 29: short zs_unit; /* which channel (0:NZSLINE) */ ! 30: caddr_t zs_priv; /* protocol private data */ ! 31: struct zsops *zs_ops; /* intr op vector */ ! 32: u_char zs_wreg[16]; /* shadow of write registers */ ! 33: char zs_flags; /* random flags */ ! 34: }; ! 35: /* flags */ ! 36: #define ZS_NEEDSOFT 1 ! 37: ! 38: int zssoftpend; /* level 3 interrupt pending */ ! 39: #define ZSSETSOFT(zs) { \ ! 40: zs->zs_flags |= ZS_NEEDSOFT; \ ! 41: if (!zssoftpend) { \ ! 42: zssoftpend = 1; \ ! 43: setzssoft(); \ ! 44: } \ ! 45: } ! 46: ! 47: /* ! 48: * Macros to access a port ! 49: */ ! 50: #define ZREAD(n) zszread(zs->zs_addr, n) ! 51: #define ZWRITE(n,v) zszwrite(zs->zs_addr, n, (int)(zs->zs_wreg[n] = v)) ! 52: #define ZBIS(n,v) zszwrite(zs->zs_addr, n, (int)(zs->zs_wreg[n] |= v)) ! 53: #define ZBIC(n,v) zszwrite(zs->zs_addr, n, (int)(zs->zs_wreg[n] &=~ v)) ! 54: ! 55: extern struct zsops *zs_proto[];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.