00001 00012 #ifndef OPD_PROC_H 00013 #define OPD_PROC_H 00014 00015 #include "op_types.h" 00016 #include "op_list.h" 00017 00018 struct opd_map; 00019 struct opd_image; 00020 struct op_note; 00021 struct op_sample; 00022 00026 struct opd_proc { 00030 struct list_head maps; 00032 char const * name; 00034 pid_t tid; 00036 pid_t tgid; 00039 int accessed; 00041 int dead; 00043 struct list_head next; 00044 }; 00045 00049 void opd_init_procs(void); 00050 00058 void opd_put_sample(struct op_sample const * sample); 00059 00070 void opd_put_image_sample(struct opd_image * image, unsigned long offset, u32 counter); 00071 00082 void opd_handle_fork(struct op_note const * note); 00083 00091 void opd_handle_exec(pid_t tid, pid_t tgid); 00092 00103 void opd_handle_exit(struct op_note const * note); 00104 00114 struct opd_proc * opd_get_proc(pid_t tid, pid_t tgid); 00115 00124 struct opd_proc * opd_new_proc(pid_t tid, pid_t tgid); 00125 00129 int opd_get_nr_procs(void); 00130 00134 void opd_age_procs(void); 00135 00139 void opd_proc_cleanup(void); 00140 00149 void opd_clear_kernel_mapping(void); 00150 00151 #endif /* OPD_PROC_H */