root / lab4 / .minix-src / include / minix / profile.h @ 14
History | View | Annotate | Download (866 Bytes)
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 */ |