00001 00013 #ifndef OP_INTERFACE_H 00014 #define OP_INTERFACE_H 00015 00016 #include "op_config.h" 00017 #include "op_types.h" 00018 00021 #define OP_FORK 1 00022 00023 #define OP_MAP 2 00024 00025 #define OP_EXEC 4 00026 00027 #define OP_DROP_MODULES 8 00028 00029 #define OP_EXIT 16 00030 00033 struct op_sample { 00034 unsigned long eip; 00035 u32 counter; 00036 u32 pid; 00037 u32 tgid; 00038 }; 00039 00041 enum oprof_state { 00042 STOPPED = 0, 00043 STOPPING = 1, 00044 RUNNING = 2 00045 }; 00046 00050 struct op_buffer_head { 00051 int cpu_nr; 00052 size_t count; 00053 enum oprof_state state; 00054 struct op_sample buffer[0]; 00055 } __attribute__((__packed__)); 00056 00063 struct op_note { 00064 unsigned long addr; 00065 unsigned long len; 00066 unsigned long offset; 00067 unsigned int hash; 00068 unsigned int pid; 00069 unsigned int tgid; 00070 unsigned short type; 00071 }; 00072 00077 struct op_hash_index { 00079 u32 name; 00081 u32 parent; 00082 } __attribute__((__packed__)); 00083 00085 #define OP_HASH_MAP_SIZE (OP_HASH_MAP_NR * sizeof(struct op_hash_index) + POOL_SIZE) 00086 00087 #endif /* OP_INTERFACE_H */