|
|
1.1 root 1: /*-
2: * Copyright (c) 1986 MICOM-Interlan, Inc., Boxborough Mass
3: * Copyright (c) 1991 The Regents of the University of California.
4: * All rights reserved.
5: *
6: * Redistribution and use in source and binary forms, with or without
7: * modification, are permitted provided that the following conditions
8: * are met:
9: * 1. Redistributions of source code must retain the above copyright
10: * notice, this list of conditions and the following disclaimer.
11: * 2. Redistributions in binary form must reproduce the above copyright
12: * notice, this list of conditions and the following disclaimer in the
13: * documentation and/or other materials provided with the distribution.
14: * 3. All advertising materials mentioning features or use of this software
15: * must display the following acknowledgement:
16: * This product includes software developed by the University of
17: * California, Berkeley and its contributors.
18: * 4. Neither the name of the University nor the names of its contributors
19: * may be used to endorse or promote products derived from this software
20: * without specific prior written permission.
21: *
22: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32: * SUCH DAMAGE.
33: *
34: * @(#)npreg.h 7.4 (Berkeley) 5/9/91
35: */
36:
37: /*
38: * Merged header file for MICOM-Interlan NP100.
39: */
40:
41: /*
42: * np100.h version 1.3
43: *
44: * This version retrieved: 8/18/86 @ 18:58:44
45: * This delta created: 8/18/86 @ 18:27:32
46: */
47: /*
48: * Typedefs for the VAX
49: */
50:
51: typedef short sign16; /* 16 bit signed value */
52: typedef unsigned short unsign16; /* 16 bit unsigned value */
53: typedef unsigned unsign32; /* 32 bit unsigned value */
54: typedef long paddr_t; /* Physical addresses */
55:
56:
57: /*
58: * Tunables
59: */
60:
61:
62: #define NUMCQE 40 /* Number of CQE's per board */
63:
64: /* Host configuration word in Status Block */
65:
66: /*
67: * To disable the lock/unlock internal function calls clear the 0x8000
68: * bit in the host configuration word (HOSTCONF)
69: */
70:
71: #define HOSTCONF 0x0109 /* See above */
72: #define LOWBYTE 1
73: #define HIGHBYTE 0
74: #define BUFFMAPPED 0
75:
76: /*
77: * Memory mapping definintions for PM68DUAL hardware.
78: */
79:
80: #ifdef PM68DUAL
81: #define PISHMEM 0x200000
82: #define PISHMEMSIZE 2
83: #define PIOFF 0x8000 /* change this to unique mem add. */
84: #define PIWINDOW MBUSBUFR + PIOFF
85: #define WINDOWSIZE 2
86: #endif
87: #define NPMAXXFR 32768 /* Maximum number of bytes / read */
88:
89: /*
90: * Define the protocols supported by the NP Driver.
91: */
92:
93: #define NONE 0x00 /* No protocols active for a process */
94: #define NPMAINT 0x01 /* Maintenance protocol, superusers only */
95: #define NPNTS 0x02 /* NTS Terminal Server */
96: #define NPIDP 0x04 /* Direct Datalink Access */
97: #define NPDLA 0x04 /* Direct Datalink Access */
98: #define NPXNS 0x06 /* Xerox NS ITP */
99: #define NPTCP 0x08 /* TCP/IP */
100: #define NPISO 0x0A /* ISO */
101: #define NPCLCONN 0xFF /* Closed connection, i.e. no protocol */
102:
103: /*
104: * Convert the protocol to a value used in the Device Protocol Mask field
105: * of the Shared Memory Status Block.
106: */
107:
108: #define PROTOMASK(x) ( 1 << (x) )
109:
110: /*
111: * Special requests handled by the NP Driver
112: */
113:
114: #define OS_STP 03400 /* Shut down connection on I Board */
115: #define NPSTOP 3 /* Conversion from above (OS_STP) */
116: #define NPCHNGP 50 /* Change the protocol on a connection */
117: #define NPCHNGB 51 /* Change the Board number */
118:
119: /*
120: * Miscellaneous
121: */
122:
123: #define ON 0x8000 /* Used for Command Q's scan and change flag */
124: #define UBADDRMASK 0x3FFFF /* 18 bit UNIBUS address */
125: #define INTMASK 0xFFFFFFFC /* Used for address validation */
126: #define CMDMASK 0xFFFF /* Mask ioctl cmd field (see ioctl.h) */
127: #define NPPSADDR 0x324 /* Pointer to addr of on-board panic string */
128: #define PANLEN 133 /* length of the panic buffer */
129:
130: /*
131: * Map function code from user to I-Board format
132: */
133:
134: #define FUNCTMAP(x) (((x) << 6) | 077) /* Maps user function to NP funcs */
135:
136: /*
137: * Round up to a 16 byte boundary
138: */
139:
140: #define ROUND16(x) (((x) + 15) & (~0x0F)) /* Round to 16 byte boundary */
141: #define ADDR24 1 /* Used by iomalloc() to specify 24 bit address */
142:
143: #define NPERRSHIFT 8 /* Used in function ReqDone() */
144: #define NPOK 0
145:
146: #define LOWORD(X) (((ushort *)&(X))[0])
147: #define HIWORD(X) (((ushort *)&(X))[1])
148:
149: /* Everyday flag settings */
150:
151: #define NPSET 1
152: #define NPCLEAR 0
153:
154: /*
155: * Command Queue Elements are the primary data structure for passing data
156: * between the driver and the device.
157: */
158:
159: struct CQE {
160:
161: struct npreq *cqe_reqid;/* Address of asssociated npreq */
162: union {
163: unsign32 cqe_Famid; /* Family ID (Process ID) - wn */
164: unsign16 cqe_PrtSig[2]; /* port and signal - tn */
165: } u1;
166: #define cqe_famid u1.cqe_Famid
167: #define cqe_port u1.cqe_PrtSig[0]
168: #define cqe_signal u1.cqe_PrtSig[1]
169: unsign16 cqe_func; /* I/O function to be performed */
170: #ifdef mc68000
171: char cqe_prot; /* Protocol type for I/O request */
172: char cqe_lenrpb; /* Length of the RPB in bytes */
173: #else
174: char cqe_lenrpb; /* Length of the RPB in bytes */
175: char cqe_prot; /* Protocol type for I/O request */
176: #endif
177: union {
178: unsign16 cqe_ustS[2]; /* Protocol status return */
179: unsign32 cqe_ustL; /* Protocol status return */
180: } u2;
181: #define cqe_ust0 u2.cqe_ustS[0]
182: #define cqe_ust1 u2.cqe_ustS[1]
183: #define cqe_usts u2.cqe_ustL
184: unsign16 cqe_devrsv; /* Reserved for use by device only! */
185: #ifdef mc68000
186: char cqe_char; /* CQE characteristics */
187: char cqe_sts; /* Status return from device to user */
188: char cqe_wind; /* Buffer mapping window size (page units) */
189: char cqe_nbuf; /* Number of data buffers for I/O */
190: #else
191: char cqe_sts; /* Status return from device to user */
192: char cqe_char; /* CQE characteristics */
193: char cqe_nbuf; /* Number of data buffers for I/O */
194: char cqe_wind; /* Buffer mapping window size (page units) */
195: #endif
196: unsign16 cqe_bcnt; /* Total number of bytes in the data buffer */
197: union {
198: unsign16 cqe_Unused; /* Unused */
199: struct {
200: char cqe_Maxbcnt; /* Maximum size of buffer */
201: char cqe_Bflags; /* Used by the SPI */
202: } s;
203: } u3;
204: #define cqe_unused u3.cqe_Unused
205: #define cqe_maxbcnt u3.s.cqe_Maxbcnt
206: #define cqe_bflags u3.s.cqe_Bflags
207: unsign16 cqe_dma[2]; /* Address of the MULTIBUS data buffer */
208: unsign16 rpb1; /* Word 1 of protocol parameters */
209: unsign16 rpb2; /* Word 2 of protocol parameters */
210: unsign16 rpb3; /* Word 3 of protocol parameters */
211: unsign16 rpb4; /* Word 4 of protocol parameters */
212: unsign16 rpb5; /* Word 5 of protocol parameters */
213: unsign16 rpb6; /* Word 6 of protocol parameters */
214: unsign16 rpb7; /* Word 7 of protocol parameters */
215: unsign16 rpb8; /* Word 8 of protocol parameters */
216: unsign16 rpb9; /* Word 9 of protocol parameters */
217: unsign16 rpb10; /* Word 10 of protocol parameters */
218: unsign16 rpb11; /* Word 11 of protocol parameters */
219: unsign16 rpb12; /* Word 12 of protocol parameters */
220:
221: };
222:
223: /*
224: * NP Driver Request structure contains information about a request
225: * maintained solely by the driver. One per CQE, plus a header.
226: */
227:
228: struct npreq {
229:
230: struct npreq *forw; /* Forward pointer for active list */
231: struct npreq *back; /* Backward pointer for active list */
232: struct npreq *free; /* Next member on free list */
233: struct CQE *element; /* CQE associated with this request */
234: int flags; /* Always useful */
235: int reqcnt; /* Request count for reqtab */
236: int bufoffset; /* Offset into buffer for turns */
237: int bytecnt; /* Number of bytes to transfer */
238: caddr_t virtmem; /* Virtual address of buffer */
239: int mapbase; /* Address of the mapping register */
240: int mapsize; /* Size of mapped area */
241: caddr_t bufaddr; /* Address of the user buffer */
242: struct buf buf; /* Buf structure needed for mem. mgmt */
243: struct proc *procp; /* Pointer to process of requestor */
244: caddr_t user; /* Structure passed by user from itpuser.h */
245: int (*intr)(); /* Ptr to routine to call at interrupt time */
246: int int_param; /* Paramater to be used by above routine */
247: };
248:
249: /*
250: * Npmaster structure, one per device, is used for boardwise centralization
251: * of relevant information including queues, I/O addresses and request pools.
252: */
253:
254: struct npmaster {
255:
256: struct npmaster *next; /* Linked list of these, NULL terminator */
257: struct npspace *shmemp; /* Shared memory address (driver <-> device) */
258: struct uba_device *devp; /* UBA Device for this unit */
259: struct NPREG *iobase; /* I/O base address for this board */
260: struct npreq *reqtab; /* Header for pool of CQE requests */
261: int iomapbase; /* Base index of I/O map reg's allocated */
262: int flags; /* State of the Board */
263: int unit; /* Unit number of this device */
264: int vector; /* Interrupt vector for this unit */
265: };
266:
267: struct NPREG {
268: unsign16 CSR0; /* Control Status Register 0 */
269: unsign16 CSR1; /* Control Status Register 1 */
270: unsign16 CSR2; /* Control Status Register 2 */
271: unsign16 CSR3; /* Control Status Register 3 */
272:
273: };
274:
275: /*
276: * The following structures are used for communicating with the
277: * Intelligent Board and are located in Shared Memory.
278: */
279:
280: /*
281: * Status Block
282: */
283:
284: struct NpStat{
285:
286: unsign16 sb_drw; /* Device Request Word */
287: unsign16 sb_hcw; /* Host Configuration Word */
288: unsign16 sb_dcw; /* Device Configuration Word */
289: unsign16 sb_dpm; /* Device Protocol Mask */
290: unsign16 sb_dcq; /* Offset to Device CQ */
291: unsign16 sb_hcq; /* Offset to Host CQ */
292: };
293:
294: /*
295: * Command Queue, two per device. One is owned by the driver and the other
296: * is owned by the device.
297: */
298:
299: struct CmdQue {
300:
301: unsign16 scanflag; /* Scan Flag, MSB set if being scanned */
302: unsign16 chngflag; /* Change Flag, MSB set by initiator */
303: unsign16 cq_wrap; /* Offset to last CQE entry +2 */
304: unsign16 cq_add; /* Offset to add a CQE to the queue */
305: unsign16 cq_rem; /* Offset to remove a CQE from the queue */
306: unsign16 cq_cqe[NUMCQE]; /* Command Queue Element Offsets */
307: };
308:
309: /*
310: * Structure of the shared memory area per board. Declared this way to avoid
311: * compiler word alignment vagaries when computing offsets.
312: */
313:
314: struct npspace {
315:
316: struct NpStat statblock; /* Status Block */
317: struct CmdQue devcq; /* Device's Command Queue */
318: struct CmdQue hostcq; /* Host's Command Queue */
319: struct CQE elements[NUMCQE]; /* Shared Command Queue Elements */
320: unsign16 filler[8]; /* Here for 16 byte alignment */
321: };
322:
323: /*
324: * Structure of array of base addresses of I-Board controllers
325: * (See global data definitions in np.c)
326: */
327:
328: struct npbase {
329: caddr_t baseaddr;
330: };
331:
332: /* State of the NP Driver as kept in NpState */
333:
334: #define ICPAVAIL 0x01 /* ICP is waiting for a request */
335:
336: /* Tells ICP Process that there are no more requests for this board */
337:
338: #define BRDDONE 1
339:
340: /* Flags used by the driver (npreq structure) to monitor status of requests */
341:
342: #define REQDONE 0x01 /* Request completed */
343: #define IOIFC 0x02 /* Internal Function Code Request */
344: #define IOERR 0x04 /* Error on Request */
345: #define NPPEND 0x08 /* Unused at this time */
346: #define IOABORT 0x10 /* Request aborted by ICP */
347: #define KERNREQ 0x20 /* Request was from the kernel */
348: #define WANTREQ 0x40 /* Process is waiting for a npreq structure */
349: #define NPUIO 0x80 /* Process doing physio */
350: #define REQALOC 0x100 /* Request has been allocated */
351: #define REQUSE 0x200 /* Request is in request queue */
352:
353: /* Service Request Commands from the Intelligent Board */
354:
355: #define NOREQ 0x00 /* No service requested */
356: #define NPLOAD 0x01 /* Dump request */
357: #define NPDUMP 0x02 /* Load request */
358: #define NPPANIC 0x100 /* Panic request */
359:
360: /* Definitions of Status returned from the I-Board */
361:
362: #define NPDONE 0x01 /* Normal completion */
363: #define NPIFC 0x00 /* Internal Function Code request */
364: #define NPPERR 0x80 /* Protocol error */
365: #define NPMERR 0x82 /* Memory allocation failure on I-Board */
366:
367: /* Definitions of IFC type requests from I-Board */
368:
369: #define NPLOCK 0x64 /* Lock the process's data area */
370: #define NPUNLOCK 0xA4 /* Unlock the process */
371: #define NPREMAP 0x124 /* Window turn */
372:
373: /* Definition of flags for the Npmaster structure */
374:
375: #define CSRPEND 0x01 /* CSR0 command pending */
376: #define PANICREQ 0x02 /* Panic request */
377: #define DUMPREQ 0x04 /* Dump request */
378: #define LOADREQ 0x08 /* Load request */
379: #define BOARDREQ 0x10 /* Any request by the board */
380: #define BADBOARD 0x20 /* Board disabled */
381: #define AVAILABLE 0x40 /* Board available */
382: #define BRDRESET 0x80 /* Board is being reset */
383: #define PANIC1 0x100 /* Driver wants panic address */
384: #define PANIC2 0x200 /* Driver wants panic string */
385: #define PANIC3 0x400 /* Clear first byte of panic string */
386: #define LSTCMD 0x800 /* Clear last command during NPIO */
387: #define SCANNING 0x1000 /* We are scanning for cqe's */
388:
389: /*
390: * Debugging Constants
391: */
392:
393: #define DEBENTRY 0x0001 /* debug entry points */
394: #define DEBMEM 0x0002 /* debug memory */
395: #define DEBREQ 0x0004 /* debug requests */
396: #define DEBCQE 0x0008 /* debug cqe's */
397: #define DEBCQ 0x0010 /* debug cq's */
398: #define DEBMAINT 0x0020 /* debug maintainance requests */
399: #define DEBINTR 0x0040 /* debug interrupt routines */
400: #define DEBINIT 0x0080 /* debug initialization routines */
401: #define DEBIFC 0x0100 /* debug Internal function codes */
402: #define DEBIOCTL 0x0200 /* debug ioctl calls */
403: #define DEBOPEN 0x0400 /* debug open calls */
404: #define DEBIO 0x0800 /* debug read & write calls */
405: #define DEBCSR 0x1000 /* debug CSR commands */
406: #define DEBLOCK 0x2000 /* debug lock / unlock calls */
407: #define NOBOARD 0x4000 /* debug user/host interface */
408: #define DEBCANCEL 0x8000 /* debug cancel command */
409:
410: /*
411: * npreg.h version 1.3
412: *
413: * This version retrieved: 8/18/86 @ 18:58:46
414: * This delta created: 8/18/86 @ 18:27:42
415: */
416:
417: /*
418: * NPREG.H
419: *
420: * This file contain definitions of specific hardware interest
421: * to be used when communicating with the NI1510 Network Processor
422: * Board. More complete information can be found in the NI1510
423: * Multibus compatible Ethernet Communications Processor Hardware
424: * Specification.
425: */
426:
427: /*
428: * npcmd.h version 1.3
429: *
430: * This version retrieved: 8/18/86 @ 18:58:45
431: * This delta created: 8/18/86 @ 18:27:38
432: */
433: #ifdef KERNEL
434: # define IoVOID 0
435: #else
436: # define IoVOID IOC_VOID
437: #endif
438:
439: #define NPRESET (IoVOID|0x01) /* reset the board */
440: #define NPSTART (IoVOID|0x04) /* start board execution */
441: #define NPGPANIC (IoVOID|0x05) /* Get panic message */
442: #define NPINIT (IoVOID|0x06) /* initialize software on board */
443: #define NPSTATS (IoVOID|0x07)
444: #define NPRCSR0 (IoVOID|0x08) /* read CSR0 */
445: #define NPRCSR1 (IoVOID|0x09) /* read CSR1 */
446: #define NPRCSR2 (IoVOID|0x0a) /* read CSR2 */
447: #define NPRCSR3 (IoVOID|0x0b) /* read CSR3 */
448: #define NPWCSR0 (IoVOID|0x0c) /* write CSR0 */
449: #define NPWCSR1 (IoVOID|0x0d) /* write CSR1 */
450: #define NPWCSR2 (IoVOID|0x0e) /* write CSR2 */
451: #define NPWCSR3 (IoVOID|0x0f) /* write CSR3 */
452: #define NPPOLL (IoVOID|0x10)
453: #define NPKILL (IoVOID|0x11)
454: #define NPSETPROT (IoVOID|0x12) /* set the protocol to use */
455: #define NPSETBOARD (IoVOID|0x13) /* set board to use */
456: #define NPSETNPDEB (IoVOID|0x14) /* set nc debuging level */
457: #define NPSETADDR (IoVOID|0x15) /* set host address */
458: #define NPNETBOOT (IoVOID|0x16) /* boot from the network */
459: #define NPSETLAST (IoVOID|0x17) /* set last command flag in NPIO */
460: #define NPCLRICNT (IoVOID|0x18) /* clear interupt count */
461: #define NPGETICNT (IoVOID|0x19) /* get interupt count */
462: #define NPGETIVEC (IoVOID|0x1a) /* get interupt vector */
463: #define NPMAPMEM (IoVOID|0x1b) /* map user memory to shmem */
464:
465: #define NP_SET 1031 /* set memory mapping */
466: #define NP_USET 1032 /* unset memory mapping */
467:
468: struct np_mem {
469: long mem_type;
470: char *mem_addr;
471: long mem_count;
472: } ;
473:
474: #define NNPCNN 4 /* Number of connections per board */
475: #define NPUNIT(a) ((minor(a) >> 4) & 0x0F)
476: #define NPCONN(a) ((minor(a)) & 0x03)
477:
478: #define TRUE 1
479: #define FALSE 0
480:
481: #define IBOOTADDR 0xF8000l /* Addr of 80186 Boot ROM */
482: #define INETBOOT 0xF8087l
483: #define IXEQADDR 0x400 /* Where to begin Board image XEQ */
484: #define DIAGTIME 1200 /* Time for timeout /HZ seconds */
485:
486: #define DELAYTIME 1000000L /* delay count */
487: #define NPDELAY(N) {register int n = (N) >> 1; while(--n > 0); }
488:
489: /* Handy macros for talking to the Board */
490:
491: #define RESET(x) (WCSR3(x->iobase,0xff))
492: #define CLEARINT(x) {unsign16 y; y = RCSR2(x->iobase); }
493: #define INTNI(x) (WCSR1(x->iobase,0xFF))
494:
495: /* Command and Status Register (CSR) Definitions */
496:
497: /*
498: * CSR0 is the only direct means for data transfer between the host processor
499: * and the 3510. Access is controlled by the 80186 who sets the CSR1 Enable and
500: * Ready bits to allow writing here. Writing to this register will always
501: * result in an interrupt to the 80186.
502: */
503:
504: /*
505: * Bit definitions for CSR1.
506: */
507:
508: #define NPRFU 0x01 /* Reserved for Future Use */
509: #define NPHOK 0x02 /* Hardware OK */
510: #define NPLAN 0x04 /* Logic 0 indicates operational LAN exists */
511: #define NP_IP 0x08 /* Interrupt pending from this board */
512: #define NP_IE 0x10 /* Interrupts enabled for this board */
513: #define NPRDR 0x20 /* Set when 80186 writes data into CSR0 */
514: #define NPRDY 0x40 /* CSR0 ready to accept data */
515: #define NPENB 0x80 /* CSR0 available for use by the host */
516:
517: /*
518: * Bit defintions for CSR0 Command Block
519: */
520:
521: #define NPLST 0x20 /* Last Command */
522: #define NPCMD 0x80 /* Shared Memory Address */
523: #define NPBGN 0x200 /* Begin Execution in On-Board Memory */
524: #define NPCBI 0x800 /* Interrupt at completion of Command Block */
525: #define NPDMP 0x2000 /* Dump 80186 On-Board Memory to Multibus */
526: #define NPLD 0x8000 /* Load 80186 On-board Memory from Multibus */
527:
528: /*
529: * CSR0 Count definitions. These are the lengths of the Command Blocks for the
530: * CSR0 commands above (not counting the Command Word itself).
531: */
532:
533: #define LSTCNT 0
534: #define CMDCNT 2
535: #define BGNCNT 2
536: #define CBICNT 1
537: #define DMPCNT 5
538: #define LDCNT 5
539: #define IOCNT 5
540:
541: /* Macros for reading and writing CSR's (Control and Status Registers) */
542:
543: #define WCSR0(x,y) ((x)->CSR0 = y)
544: #define WCSR1(x,y) ((x)->CSR1 = y)
545: #define WCSR2(x,y) ((x)->CSR2 = y)
546: #define WCSR3(x,y) ((x)->CSR3 = y)
547:
548: #define RCSR0(x) ((x)->CSR0)
549: #define RCSR1(x) ((x)->CSR1)
550: #define RCSR2(x) ((x)->CSR2)
551: #define RCSR3(x) ((x)->CSR3)
552:
553: struct npconn {
554:
555: struct npmaster *unit; /* Unit number (board) of this connection */
556: unsign16 protocol; /* Protocol used on this connection */
557: struct buf np_wbuf; /* write buf structure for raw access */
558: struct buf np_rbuf; /* read buf structure for raw access */
559: };
560:
561: /* ICP Board Requests */
562:
563: #define ICPLOAD 0x02
564: #define ICPDUMP 0x03
565: #define ICPPANIC 0x05
566: #define ICPPOLL 0x10
567:
568: /*
569: * npdebug.h version 1.3
570: *
571: * This version retrieved: 8/18/86 @ 18:58:46
572: * This delta created: 8/18/86 @ 18:27:39
573: */
574:
575: /*
576: * Debugging Constants
577: */
578:
579: #define DEBENTRY 0x0001 /* debug entry points */
580: #define DEBMEM 0x0002 /* debug memory */
581: #define DEBREQ 0x0004 /* debug requests */
582: #define DEBCQE 0x0008 /* debug cqe's */
583: #define DEBCQ 0x0010 /* debug cq's */
584: #define DEBMAINT 0x0020 /* debug maintainance requests */
585: #define DEBINTR 0x0040 /* debug interrupt routines */
586: #define DEBINIT 0x0080 /* debug initialization routines */
587: #define DEBIFC 0x0100 /* debug Internal function codes */
588: #define DEBIOCTL 0x0200 /* debug ioctl calls */
589: #define DEBOPEN 0x0400 /* debug open calls */
590: #define DEBIO 0x0800 /* debug read & write calls */
591: #define DEBCSR 0x1000 /* debug CSR commands */
592: #define DEBLOCK 0x2000 /* debug lock / unlock calls */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.