1 /* dn_systm.h 1.3 82/10/09 */ 2 3 /* 4 * Miscellaneous DECnet definitions for kernel 5 */ 6 7 /* 8 * Network types. 9 * 10 * The DECnet protocols often use unaligned 16 bit fields 11 * as integers. The d_short type represents such a field 12 * in a protocol structure definition and the D_SHORT macro 13 * extracts such a field given a pointer to the first byte. 14 * The AD_SHORT macro assigns to such a field. 15 * On the VAX it's easy since unaligned references are 16 * allowed, on the 11 it would be a bit harder. 17 */ 18 typedef char d_short[2]; 19 20 #if vax 21 #define D_SHORT(x) (*((u_short *)(x))) 22 #define AD_SHORT(x, v) (*((u_short *)(x))) = (v) 23 #endif 24 25 /* 26 * The DECnet code, like the Internet code, runs off software 27 * interrupts. At present there is only a software interrupt 28 * for the NSP layer, which will hand the data to the socket. 29 */ 30 #define setnspintr() mtpr(SIRR, 14) 31 #define splimp spl5 32