libmsr  0.3.0
A friendlier interface to accessing MSRs on Intel platforms
 All Classes Files Functions Variables Enumerations Enumerator Macros Pages
memhdlr.h
Go to the documentation of this file.
1 /* memhdlr.h
2  *
3  * Copyright (c) 2011-2016, Lawrence Livermore National Security, LLC.
4  * LLNL-CODE-645430
5  *
6  * Produced at Lawrence Livermore National Laboratory
7  * Written by Barry Rountree, rountree@llnl.gov
8  * Scott Walker, walker91@llnl.gov
9  * Kathleen Shoga, shoga1@llnl.gov
10  *
11  * All rights reserved.
12  *
13  * This file is part of libmsr.
14  *
15  * libmsr is free software: you can redistribute it and/or modify it under the
16  * terms of the GNU Lesser General Public License as published by the Free
17  * Software Foundation, either version 3 of the License, or (at your option)
18  * any later version.
19  *
20  * libmsr is distributed in the hope that it will be useful, but WITHOUT ANY
21  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
22  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
23  * details.
24  *
25  * You should have received a copy of the GNU Lesser General Public License
26  * along with libmsr. If not, see <http://www.gnu.org/licenses/>.
27  *
28  * This material is based upon work supported by the U.S. Department of
29  * Energy's Lawrence Livermore National Laboratory. Office of Science, under
30  * Award number DE-AC52-07NA27344.
31  *
32  */
33 
34 #ifndef MEMHDLR_H_INCLUDE
35 #define MEMHDLR_H_INCLUDE
36 
37 #include <stdlib.h>
38 
39 // These functions are for libmsr use only. Use outside of libmsr may cause
40 // segfaults or disrupt libmsr functions.
41 // The primary purpose of these functions is to simplify memory management and
42 // debugging (debugging much easier), but there are plans to add more
43 // functionality in the future.
44 
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
56 };
57 
63 void *libmsr_malloc(size_t size);
64 
73 void *libmsr_calloc(size_t num,
74  size_t size);
75 
83 void *libmsr_realloc(void *addr,
84  size_t size);
85 
91 void *libmsr_free(void *addr);
92 
97 void *memhdlr_finalize(void);
98 
109 int memory_handler(void *address,
110  void *oldaddr,
111  int type);
112 
113 #ifdef __cplusplus
114 }
115 #endif
116 #endif