xref: /plan9-contrib/sys/include/ptrace.h (revision af198995f3f1f1d87a386835b2bcd15ca90a6fed)
1 typedef enum PTevent {
2 	SAdmit = 0,	/* Edf admit */
3 	SRelease,	/* Edf release, waiting to be scheduled */
4 	SEdf,		/* running under EDF */
5 	SRun,		/* running best effort */
6 
7 	SReady,		/* runnable but not running  */
8 	SSleep,		/* blocked; arg is PSstate| pc<<8  */
9 	SYield,		/* blocked waiting for release */
10 	SSlice,		/* slice exhausted */
11 
12 	SDeadline,	/* proc's deadline */
13 	SExpel,		/* Edf expel */
14 	SDead,		/* proc dies */
15 	SInts,		/* Interrupt start */
16 
17 	SInte,		/* Interrupt end */
18 	STrap,		/* fault */
19 	SUser,		/* user event */
20 	SName,		/* used to report names for pids */
21 	Nevent,
22 } Tevent;
23 
24 enum {
25 	PTsize = 4 + 4 + 4 + 8 + 8,
26 
27 	/* STrap arg flags */
28 	STrapRPF = 0x1000000000000000ULL,	/* page fault (read) STrap arg */
29 	STrapWPF = 0x1000000000000000ULL,	/* page fault (write) STrap arg */
30 	STrapSC  = 0x2000000000000000ULL,	/* sys call STrap arg */
31 	STrapMask = 0x0FFFFFFFFFFFFFFFULL,	/* bits available in arg */
32 
33 	/* Sleep states; keep in sync with the kernel schedstate
34 	 * BUG: generate automatically.
35 	 */
36 	PSDead = 0,		/* not used */
37 	PSMoribund,		/* not used */
38 	PSReady,		/* not used */
39 	PSScheding,		/* not used */
40 	PSRunning,		/* not used */
41 	PSQueueing,
42 	PSQueueingR,
43 	PSQueueingW,
44 	PSWakeme,
45 	PSBroken,		/* not used */
46 	PSStopped,		/* not used */
47 	PSRendezvous,
48 	PSWaitrelease,
49 
50 };
51 
52 typedef struct PTraceevent	PTraceevent;
53 struct PTraceevent {
54 	u32int	pid;	/* for the process */
55 	u32int	etype;	/* Event type */
56 	u32int	machno;	/* where the event happen */
57 	vlong	time;	/* time stamp  */
58 	u64int	arg;	/* for this event type */
59 };
60