xref: /minix/minix/include/minix/profile.h (revision e3b78ef1)
1 #ifndef _PROFILE_H
2 #define _PROFILE_H
3 
4 #include <minix/type.h>
5 #include <sys/types.h>
6 
7 /*
8  * Types relating to system profiling.
9  */
10 
11 #  define PROF_START       0    /* start statistical profiling */
12 #  define PROF_STOP        1    /* stop statistical profiling */
13 
14 #define PROF_RTC	0 /* RTC based profiling */
15 #define PROF_NMI	1 /* NMI based profiling, profiles kernel too */
16 
17 /* Info struct to be copied to from kernel to user program. */
18 struct sprof_info_s {
19   int mem_used;
20   int total_samples;
21   int idle_samples;
22   int system_samples;
23   int user_samples;
24 };
25 
26 /* What a profiling sample looks like (used for sizeof()). */
27 struct sprof_sample {
28 	endpoint_t	proc;
29 	void *		pc;
30 };
31 
32 struct sprof_proc {
33 	endpoint_t	proc;
34 	char		name[PROC_NAME_LEN];
35 };
36 
37 int sprofile(int action, int size, int freq, int type, void *ctl_ptr,
38 	void *mem_ptr);
39 
40 #endif /* PROFILE_H */
41