root/eaccelerator/tags/0.9.1/mm.h

Revision 22, 1.7 kB (checked in by anonymous, 4 years ago)

This commit was manufactured by cvs2svn to create tag
'release-0-9-1'.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 /* libmm replacement */
2
3 #ifndef INCLUDED_MM_H
4 #define INCLUDED_MM_H
5
6 #include <sys/types.h>
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 #ifndef MM_PRIVATE
13 #  ifdef MM
14 #    undef MM
15 #  endif
16 #  define MM void
17 #endif
18
19 #define MM_LOCK_RW 1
20 #define MM_LOCK_RD 0
21
22 #if (_MSC_VER < 1300)
23 MM*    _mm_create(size_t size, const char* key);
24 void   _mm_set_attach(MM* mm, void* attach_addr);
25 void*  _mm_attach(size_t size, const char* key);
26 size_t _mm_size(MM* mm);
27 void   _mm_destroy(MM* mm);
28 int    _mm_lock(MM* mm, int kind);
29 int    _mm_unlock(MM* mm);
30 size_t _mm_available(MM* mm);
31 size_t _mm_maxsize(MM* mm);
32 void*  _mm_malloc(MM* mm, size_t size);
33 void   _mm_free(MM* mm, void* p);
34 void*  _mm_malloc_nolock(MM* mm, size_t size);
35 void   _mm_free_nolock(MM* mm, void* p);
36 size_t _mm_sizeof(MM* mm, void* x);
37 #endif
38
39
40 const char* mm_shm_type();
41 const char* mm_sem_type();
42
43 #define MM_PROT_NONE  1
44 #define MM_PROT_READ  2
45 #define MM_PROT_WRITE 4
46 #define MM_PROT_EXEC  8
47
48 int mm_protect(MM* mm, int mode);
49
50 #if (_MSC_VER < 1300)
51 #define mm_create(A, B)        _mm_create(A, B)
52 #define mm_set_attach(A, B)    _mm_set_attach(A, B)
53 #define mm_attach(A, B)        _mm_attach(A, B)
54 #define mm_size(A)             _mm_size(A)
55 #define mm_destroy(A)          _mm_destroy(A)
56 #define mm_lock(A, B)          _mm_lock(A, B)
57 #define mm_unlock(A)           _mm_unlock(A)
58 #define mm_available(A)        _mm_available(A)
59 #define mm_maxsize(A)          _mm_maxsize(A)
60 #define mm_malloc(A, B)        _mm_malloc(A, B)
61 #define mm_free(A, B)          _mm_free(A, B)
62 #define mm_malloc_nolock(A, B) _mm_malloc_nolock(A, B)
63 #define mm_free_nolock(A, B)   _mm_free_nolock(A, B)
64 #define mm_sizeof(A, B)        _mm_sizeof(A, B)
65 #endif
66
67 #ifdef __cplusplus
68 }
69 #endif
70
71 #endif
Note: See TracBrowser for help on using the browser.