|
|
1.1 root 1: /*
2: * /usr/include/sys/mwc_coherent.h
3: *
4: * mwc_coherent.h is for kernel debugging definitions.
5: *
6: * Revised: Thu May 27 08:06:57 1993 CDT
7: */
8: #ifndef __SYS_MWC_COHERENT_H__
9: #define __SYS_MWC_COHERENT_H__
10:
11: /*
12: * Control flags for tracing features.
13: *
14: * t_piggy bits:
15: * 0x0001 pexit()
16: * 0x0002 286 system calls
17: * 0x0004 386 system calls
18: * 0x0008 uioctl()
19: * 0x0020 ssread()/sswrite() in io.386/ss.c
20: * 0x0200 uread() in coh.386/sys3.c
21: * 0x0400 ssblock() in io.386/ss.c
22: * 0x1000 XP_DATA_IN/OUT in state machine in io.386/ss.c
23: * 0x10000 open() bad exit values in coh.386/sys3.c
24: *
25: * t_hal bits:
26: * 0x0001 TCSETA/TCSETAF/TCSETAW ioctl's
27: * 0x0002 TIOCSETP/TIOCSETN ioctl's
28: * 0x0004 al[01] verbose mode (see alx.c); asy devmsgs
29: * 0x0008 obrk()
30: * 0x0010 pipe open/read/write
31: * 0x0020 1= NO c_grow() calls; alx overruns
32: * 0x0040 monitor number of free clists
33: * 0x0080 '+' when asleep waiting for free clist
34: * 0x0100 trace c_grow() calls
35: * 0x0200 run check_slot() on alloc() and ubrk()
36: * 0x0400 async opens, closes, speed changes
37: * 0x0800 asy, all interrupts
38: * 0x1000 explanation of page faults
39: * 0x2000
40: * 0x4000 all traps
41: * 0x8000 ubrk()
42: *
43: * 0x0001 0000
44: * 0x0002 0000
45: *
46: * t_vlad bits:
47: * 0x0001
48: * 0x0002 fcntl
49: *
50: * t_errno - trace u.u_error settings
51: * t_con - trace console events
52: *
53: * t_msgq bits:
54: * 0x0001 memory alloc
55: * 0x0002 permissions
56: */
57:
58:
59: /*
60: * T_PIGGY() is for piggy controlled tracing.
61: */
62: extern unsigned t_piggy;
63: #define T_PIGGY(flag, command) { \
64: if (t_piggy&flag) { \
65: command; \
66: } \
67: }
68:
69: /*
70: * T_HAL() is for hal controlled tracing.
71: */
72: extern unsigned t_hal;
73: #define T_HAL(flag, command) { \
74: if (t_hal&flag) { \
75: command; \
76: } \
77: }
78:
79: /*
80: * T_VLAD() is for vlad controlled tracing.
81: */
82: extern unsigned t_vlad;
83: #define T_VLAD(flag, command) { \
84: if (t_vlad&flag) { \
85: command; \
86: } \
87: }
88:
89: /*
90: * T_MSGQ() is for message queue controlled tracing.
91: */
92: extern unsigned t_msgq;
93: #define T_MSGQ(flag, command) { \
94: if (t_msgq&flag) { \
95: command; \
96: } \
97: }
98:
99: /*
100: * SET_U_ERROR() is for error tracing.
101: */
102: extern unsigned t_errno;
103: #define SET_U_ERROR(errno, msg) { \
104: u.u_error = (errno); \
105: if (t_errno) { \
106: printf("u_error: %d: %s\n", (errno), msg); \
107: } \
108: }
109:
110: /*
111: * T_CON() is for video & keyboard tracing.
112: */
113: extern unsigned t_con;
114: #define T_CON(flag, command) { \
115: if (t_con&flag) { \
116: command; \
117: } \
118: }
119:
120: /* DV(variable) displays: variable=.... */
121: #define DISP_VAR(v) { strchirp(" "#v"="); print32(v); }
122: #define DV(v) T_PIGGY(0x400, DISP_VAR(v))
123:
124: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.