|
|
1.1 ! root 1: /**************************************/ ! 2: /* Temporary header file. Used */ ! 3: /* to chase the infamous code key */ ! 4: /* release problem. Should be */ ! 5: /* removed after the problem is */ ! 6: /* solved. */ ! 7: /****************************************/ ! 8: #ifdef CKEY_DEBUG ! 9: struct history_item { ! 10: unsigned rel:4; /* 1 = release, 0 = get key */ ! 11: unsigned id:4; /* id # for traces */ ! 12: unsigned keyno:8; /* code key number as process gets it*/ ! 13: short procid:16; /* guilty (?) process id */ ! 14: }; ! 15: ! 16: #define DEPTH 1024 /* depth of history */ ! 17: #define GETK 0 ! 18: #define RELK 1 ! 19: ! 20: #define REMEMBER(_a,_b,_c) { c_key_hist[c_key_inx].rel = (_b); \ ! 21: c_key_hist[c_key_inx].id = (_a); \ ! 22: c_key_hist[c_key_inx].keyno = (_c); \ ! 23: c_key_hist[c_key_inx].procid = \ ! 24: u.u_procp->p_pid; \ ! 25: c_key_inx = (c_key_inx+1) % DEPTH; \ ! 26: } ! 27: ! 28: struct history_item c_key_hist[DEPTH]; ! 29: long c_key_inx; /* Starts from 0 */ ! 30: #else ! 31: #define REMEMBER(_a,_b,_c) ! 32: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.