usermode/library/mcore/include/mnemosyne.h

Go to the documentation of this file.
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 */

Generated on Sat Apr 23 11:43:35 2011 for Mnemosyne by  doxygen 1.4.7