Changeset 4234:ee0035abd1ff in roaraudio
- Timestamp:
- 08/25/10 01:44:54 (14 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/include/memlock.h
r4233 r4234 38 38 int memlock_str2level(const char * str); 39 39 int memlock_set_level(int level); 40 int memlock_register(int level, void * addr, size_t len); 40 41 void memlock_unload(); 41 42 void memlock_reload(); -
roard/memlock.c
r4233 r4234 26 26 #include "roard.h" 27 27 28 #define MAX_SEGMENTS 16 29 30 struct memlock { 31 int level; 32 void * addr; 33 size_t len; 34 }; 35 36 static struct memlock memlock_table[MAX_SEGMENTS]; 37 38 static volatile int memlock_table_inited = 0; 39 40 static void memlock_table_init (void) { 41 if ( memlock_table_inited ) 42 return; 43 44 memset(memlock_table, 0, sizeof(memlock_table)); 45 46 memlock_table_inited = 1; 47 48 memlock_register(MEMLOCK_MEDIUM, memlock_table, sizeof(memlock_table)); 49 } 50 51 int memlock_register(int level, void * addr, size_t len) { 52 int i; 53 54 if ( !memlock_table_inited ) 55 memlock_table_init(); 56 57 for (i = 0; i < MAX_SEGMENTS; i++) { 58 if ( memlock_table[i].addr == NULL ) { 59 memlock_table[i].level = level; 60 memlock_table[i].addr = addr; 61 memlock_table[i].len = len; 62 return 0; 63 } 64 } 65 66 return -1; 67 } 68 28 69 int memlock_str2level(const char * str) { 29 70 if ( str == NULL ) … … 48 89 static int old_level = MEMLOCK_NONE; 49 90 91 if ( !memlock_table_inited ) 92 memlock_table_init(); 93 50 94 if ( level == old_level ) 51 95 return 0;
Note: See TracChangeset
for help on using the changeset viewer.