HPCToolkit
perf_mmap.h
Go to the documentation of this file.
1 // -*-Mode: C++;-*- // technically C99
2 
3 // * BeginRiceCopyright *****************************************************
4 //
5 // --------------------------------------------------------------------------
6 // Part of HPCToolkit (hpctoolkit.org)
7 //
8 // Information about sources of support for research and development of
9 // HPCToolkit is at 'hpctoolkit.org' and in 'README.Acknowledgments'.
10 // --------------------------------------------------------------------------
11 //
12 // Copyright ((c)) 2002-2019, Rice University
13 // All rights reserved.
14 //
15 // Redistribution and use in source and binary forms, with or without
16 // modification, are permitted provided that the following conditions are
17 // met:
18 //
19 // * Redistributions of source code must retain the above copyright
20 // notice, this list of conditions and the following disclaimer.
21 //
22 // * Redistributions in binary form must reproduce the above copyright
23 // notice, this list of conditions and the following disclaimer in the
24 // documentation and/or other materials provided with the distribution.
25 //
26 // * Neither the name of Rice University (RICE) nor the names of its
27 // contributors may be used to endorse or promote products derived from
28 // this software without specific prior written permission.
29 //
30 // This software is provided by RICE and contributors "as is" and any
31 // express or implied warranties, including, but not limited to, the
32 // implied warranties of merchantability and fitness for a particular
33 // purpose are disclaimed. In no event shall RICE or contributors be
34 // liable for any direct, indirect, incidental, special, exemplary, or
35 // consequential damages (including, but not limited to, procurement of
36 // substitute goods or services; loss of use, data, or profits; or
37 // business interruption) however caused and on any theory of liability,
38 // whether in contract, strict liability, or tort (including negligence
39 // or otherwise) arising in any way out of the use of this software, even
40 // if advised of the possibility of such damage.
41 //
42 // ******************************************************* EndRiceCopyright *
43 
44 //
45 // Linux perf sample source interface
46 //
47 
48 
49 #ifndef __PERF_MMAP_H__
50 #define __PERF_MMAP_H__
51 
52 
53 /******************************************************************************
54  * headers
55  *****************************************************************************/
56 #include <linux/perf_event.h>
57 
58 #include "perf-util.h"
59 
60 
61 /******************************************************************************
62  * constants
63  *****************************************************************************/
64 
65 #define BUFFER_FRONT(current_perf_mmap) ((char *) current_perf_mmap + pagesize)
66 #define BUFFER_SIZE (tail_mask + 1)
67 #define BUFFER_OFFSET(tail) ((tail) & tail_mask)
68 
69 /******************************************************************************
70  * types
71  *****************************************************************************/
72 
73 typedef struct perf_event_header pe_header_t;
74 
75 
76 /******************************************************************************
77  * interfaces
78  *****************************************************************************/
79 
80 void perf_mmap_init();
81 
82 pe_mmap_t* set_mmap(int perf_fd);
83 void perf_unmmap(pe_mmap_t *mmap);
84 
85 int
86 read_perf_buffer(pe_mmap_t *current_perf_mmap,
87  struct perf_event_attr *attr, perf_mmap_data_t *mmap_info);
88 
89 #endif
pe_mmap_t * set_mmap(int perf_fd)
Definition: perf_mmap.c:498
int read_perf_buffer(pe_mmap_t *current_perf_mmap, struct perf_event_attr *attr, perf_mmap_data_t *mmap_info)
Definition: perf_mmap.c:430
void perf_unmmap(pe_mmap_t *mmap)
Definition: perf_mmap.c:527
struct perf_event_mmap_page pe_mmap_t
Definition: perf-util.h:144
void perf_mmap_init()
Definition: perf_mmap.c:537
struct perf_event_header pe_header_t
Definition: perf_mmap.h:73