xref: /plan9/sys/include/tos.h (revision 92f23974a9fc639034aacb1b807fd633b3325041)
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