Changeset 4241:2e673249758d in roaraudio
- Timestamp:
- 08/25/10 14:59:29 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/memlock.c
r4234 r4241 67 67 } 68 68 69 static int memlock_lock(struct memlock * seg) { 70 #ifdef ROAR_HAVE_MLOCK 71 return ROAR_MLOCK(seg->addr, seg->len); 72 #else 73 return -1; 74 #endif 75 } 76 77 static int memlock_unlock(struct memlock * seg) { 78 return -1; 79 } 80 69 81 int memlock_str2level(const char * str) { 70 82 if ( str == NULL ) … … 88 100 int memlock_set_level(int level) { 89 101 static int old_level = MEMLOCK_NONE; 102 int i; 103 int ret = 0; 90 104 91 105 if ( !memlock_table_inited ) … … 95 109 return 0; 96 110 97 return -1; 111 for (i = 0; i < MAX_SEGMENTS; i++) { 112 if ( memlock_table[i].addr == NULL ) { 113 if ( level > old_level ) { 114 if ( memlock_table[i].level > old_level && memlock_table[i].level <= level ) 115 if ( memlock_lock(&(memlock_table[i])) == -1 ) 116 ret = -1; 117 } else { 118 if ( memlock_table[i].level <= old_level && memlock_table[i].level > level ) 119 if ( memlock_unlock(&(memlock_table[i])) == -1 ) 120 ret = -1; 121 } 122 } 123 } 124 125 old_level = level; 126 127 return ret; 98 128 } 99 129
Note: See TracChangeset
for help on using the changeset viewer.