electric fence: initial checkin
[akaros.git] / user / electric-fence / efence.h
1 #include <sys/types.h>
2 #include <sys/param.h>
3
4 /*
5  * ef_number is the largest unsigned integer we'll need. On systems that
6  * support 64-bit pointers, this may be "unsigned long long".
7  */
8 #if defined(USE_LONG_LONG)
9 typedef unsigned long long      ef_number;
10 #else
11 typedef unsigned long           ef_number;
12 #endif
13
14 /*
15  * NBBY is the number of bits per byte. Some systems define it in
16  * <sys/param.h> .
17  */
18 #ifndef NBBY
19 #define NBBY    8
20 #endif
21
22 /*
23  * This is used to declare functions with "C" linkage if we are compiling
24  * with C++ .
25  */
26 #ifdef  __cplusplus
27 #define C_LINKAGE       "C"
28 #else
29 #define C_LINKAGE
30 #endif
31
32 void                    Page_AllowAccess(void * address, size_t size);
33 void *                  Page_Create(size_t size);
34 void                    Page_Delete(void * address, size_t size);
35 void                    Page_DenyAccess(void * address, size_t size);
36 size_t                  Page_Size(void);
37
38 void                    EF_Abort(const char * message, ...);
39 void                    EF_Exit(const char * message, ...);
40 void                    EF_Print(const char * message, ...);
41 void                    EF_Lock();
42 void                    EF_UnLock();