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