00001 /* 00002 Copyright (C) 2011 Computer Sciences Department, 00003 University of Wisconsin -- Madison 00004 00005 ---------------------------------------------------------------------- 00006 00007 This file is part of Mnemosyne: Lightweight Persistent Memory, 00008 originally developed at the University of Wisconsin -- Madison. 00009 00010 Mnemosyne was originally developed primarily by Haris Volos 00011 with contributions from Andres Jaan Tack. 00012 00013 ---------------------------------------------------------------------- 00014 00015 Mnemosyne is free software; you can redistribute it and/or 00016 modify it under the terms of the GNU General Public License 00017 as published by the Free Software Foundation, version 2 00018 of the License. 00019 00020 Mnemosyne is distributed in the hope that it will be useful, 00021 but WITHOUT ANY WARRANTY; without even the implied warranty of 00022 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00023 GNU General Public License for more details. 00024 00025 You should have received a copy of the GNU General Public License 00026 along with this program; if not, write to the Free Software 00027 Foundation, Inc., 51 Franklin Street, Fifth Floor, 00028 Boston, MA 02110-1301, USA. 00029 00030 ### END HEADER ### 00031 */ 00032 00049 #ifndef MNEMOSYNE_H_4EOVRWJH 00050 #define MNEMOSYNE_H_4EOVRWJH 00051 00052 #include <sys/types.h> 00053 00061 #define MNEMOSYNE_PERSISTENT __attribute__ ((section("PERSISTENT"))) 00062 00063 #ifndef PSEGMENT_RESERVED_REGION_START 00064 # define PSEGMENT_RESERVED_REGION_START 0x0000100000000000 00065 #endif 00066 #ifndef PSEGMENT_RESERVED_REGION_SIZE 00067 # define PSEGMENT_RESERVED_REGION_SIZE 0x0000010000000000 /* 1 TB */ 00068 #endif 00069 00070 # ifdef __cplusplus 00071 extern "C" { 00072 # endif 00073 00089 void mnemosyne_reincarnation_callback_register(void(*initializer)()); 00090 00091 void *m_pmap(void *start, size_t length, int prot, int flags); 00092 void *m_pmap2(void *start, size_t length, int prot, int flags); 00093 int m_punmap(void *start, size_t length); 00094 00095 void mnemosyne_init_global(void); 00096 00097 # ifdef __cplusplus 00098 } 00099 # endif 00100 00101 #endif /* end of include guard: MNEMOSYNE_H_4EOVRWJH */