1e288d156SDavid du Colombier typedef struct Tos Tos; 2e288d156SDavid du Colombier typedef struct Plink Plink; 312fd1c83SDavid du Colombier 412fd1c83SDavid du Colombier #pragma incomplete Plink 512fd1c83SDavid du Colombier 6e288d156SDavid du Colombier struct Tos { 7e288d156SDavid du Colombier struct /* Per process profiling */ 8e288d156SDavid du Colombier { 9e288d156SDavid du Colombier Plink *pp; /* known to be 0(ptr) */ 10e288d156SDavid du Colombier Plink *next; /* known to be 4(ptr) */ 11e288d156SDavid du Colombier Plink *last; 12e288d156SDavid du Colombier Plink *first; 13e288d156SDavid du Colombier ulong pid; 14e288d156SDavid du Colombier ulong what; 15e288d156SDavid du Colombier } prof; 16e288d156SDavid du Colombier uvlong cyclefreq; /* cycle clock frequency if there is one, 0 otherwise */ 17e288d156SDavid du Colombier vlong kcycles; /* cycles spent in kernel */ 18e288d156SDavid du Colombier vlong pcycles; /* cycles spent in process (kernel + user) */ 19e288d156SDavid du Colombier ulong pid; /* might as well put the pid here */ 20e288d156SDavid du Colombier ulong clock; 21*92f23974SDavid du Colombier /* scratch space for kernel use (e.g., mips fp delay-slot execution) */ 22*92f23974SDavid du Colombier ulong kscr[4]; 23e288d156SDavid du Colombier /* top of stack is here */ 24e288d156SDavid du Colombier }; 25e288d156SDavid du Colombier 26e288d156SDavid du Colombier extern Tos *_tos; 27