kernel: scheduling fix for ARM
[minix.git] / kernel / profile.h
blob1a05236fa315dbb6429cf7b29c617af2f9cd5286
1 #ifndef PROFILE_H
2 #define PROFILE_H
4 #include <minix/profile.h>
6 #if SPROFILE /* statistical profiling */
8 #include "arch_watchdog.h"
10 #define SAMPLE_BUFFER_SIZE (64 << 20)
11 extern char sprof_sample_buffer[SAMPLE_BUFFER_SIZE];
13 EXTERN int sprofiling; /* whether profiling is running */
14 EXTERN int sprofiling_type; /* whether profiling is running */
15 EXTERN int sprof_mem_size; /* available user memory for data */
16 EXTERN struct sprof_info_s sprof_info; /* profiling info for user program */
17 EXTERN vir_bytes sprof_data_addr_vir; /* user address to write data */
18 EXTERN endpoint_t sprof_ep; /* user process */
20 void nmi_sprofile_handler(struct nmi_frame * frame);
22 #endif /* SPROFILE */
25 EXTERN int cprof_mem_size; /* available user memory for data */
26 EXTERN struct cprof_info_s cprof_info; /* profiling info for user program */
27 EXTERN int cprof_procs_no; /* number of profiled processes */
28 EXTERN struct cprof_proc_info_s { /* info about profiled process */
29 endpoint_t endpt; /* endpoint */
30 char *name; /* name */
31 vir_bytes ctl_v; /* location of control struct */
32 vir_bytes buf_v; /* location of buffer */
33 int slots_used; /* table slots used */
34 } cprof_proc_info_inst;
35 EXTERN struct cprof_proc_info_s cprof_proc_info[NR_SYS_PROCS];
37 #endif /* PROFILE_H */