Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.32-rc3 104 lines 1.8 kB view raw
1#ifndef __PERF_RECORD_H 2#define __PERF_RECORD_H 3#include "../perf.h" 4#include "util.h" 5#include <linux/list.h> 6 7enum { 8 SHOW_KERNEL = 1, 9 SHOW_USER = 2, 10 SHOW_HV = 4, 11}; 12 13/* 14 * PERF_SAMPLE_IP | PERF_SAMPLE_TID | * 15 */ 16struct ip_event { 17 struct perf_event_header header; 18 u64 ip; 19 u32 pid, tid; 20 unsigned char __more_data[]; 21}; 22 23struct mmap_event { 24 struct perf_event_header header; 25 u32 pid, tid; 26 u64 start; 27 u64 len; 28 u64 pgoff; 29 char filename[PATH_MAX]; 30}; 31 32struct comm_event { 33 struct perf_event_header header; 34 u32 pid, tid; 35 char comm[16]; 36}; 37 38struct fork_event { 39 struct perf_event_header header; 40 u32 pid, ppid; 41 u32 tid, ptid; 42 u64 time; 43}; 44 45struct lost_event { 46 struct perf_event_header header; 47 u64 id; 48 u64 lost; 49}; 50 51/* 52 * PERF_FORMAT_ENABLED | PERF_FORMAT_RUNNING | PERF_FORMAT_ID 53 */ 54struct read_event { 55 struct perf_event_header header; 56 u32 pid, tid; 57 u64 value; 58 u64 time_enabled; 59 u64 time_running; 60 u64 id; 61}; 62 63struct sample_event{ 64 struct perf_event_header header; 65 u64 array[]; 66}; 67 68 69typedef union event_union { 70 struct perf_event_header header; 71 struct ip_event ip; 72 struct mmap_event mmap; 73 struct comm_event comm; 74 struct fork_event fork; 75 struct lost_event lost; 76 struct read_event read; 77 struct sample_event sample; 78} event_t; 79 80struct map { 81 struct list_head node; 82 u64 start; 83 u64 end; 84 u64 pgoff; 85 u64 (*map_ip)(struct map *, u64); 86 struct dso *dso; 87}; 88 89static inline u64 map__map_ip(struct map *map, u64 ip) 90{ 91 return ip - map->start + map->pgoff; 92} 93 94static inline u64 vdso__map_ip(struct map *map __used, u64 ip) 95{ 96 return ip; 97} 98 99struct map *map__new(struct mmap_event *event, char *cwd, int cwdlen); 100struct map *map__clone(struct map *self); 101int map__overlap(struct map *l, struct map *r); 102size_t map__fprintf(struct map *self, FILE *fp); 103 104#endif