}
if (map_address != (void *)-1) {
+#if defined(SMP) && !defined(USE_OPENMP)
LOCK_COMMAND(&alloc_lock);
+#endif
release_info[release_pos].address = map_address;
release_info[release_pos].func = alloc_mmap_free;
release_pos ++;
+#if defined(SMP) && !defined(USE_OPENMP)
UNLOCK_COMMAND(&alloc_lock);
+#endif
}
#ifdef OS_LINUX
#if defined(OS_LINUX) && !defined(NO_WARMUP)
}
#endif
- LOCK_COMMAND(&alloc_lock);
if (map_address != (void *)-1) {
+#if defined(SMP) && !defined(USE_OPENMP)
+ LOCK_COMMAND(&alloc_lock);
+#endif
release_info[release_pos].address = map_address;
release_info[release_pos].func = alloc_mmap_free;
release_pos ++;
+#if defined(SMP) && !defined(USE_OPENMP)
+ UNLOCK_COMMAND(&alloc_lock);
+#endif
}
- UNLOCK_COMMAND(&alloc_lock);
return map_address;
}
NULL,
};
void *(**func)(void *address);
+
+#if defined(SMP) && !defined(USE_OPENMP)
LOCK_COMMAND(&alloc_lock);
+#endif
if (!memory_initialized) {
memory_initialized = 1;
}
+#if defined(SMP) && !defined(USE_OPENMP)
UNLOCK_COMMAND(&alloc_lock);
+#endif
#ifdef DEBUG
printf("Alloc Start ...\n");
do {
if (!memory[position].used && (memory[position].pos == mypos)) {
+#if defined(SMP) && !defined(USE_OPENMP)
LOCK_COMMAND(&alloc_lock);
+#endif
/* blas_lock(&memory[position].lock);*/
if (!memory[position].used) goto allocation;
-
+#if defined(SMP) && !defined(USE_OPENMP)
UNLOCK_COMMAND(&alloc_lock);
+#endif
/* blas_unlock(&memory[position].lock);*/
}
do {
/* if (!memory[position].used) { */
+#if defined(SMP) && !defined(USE_OPENMP)
LOCK_COMMAND(&alloc_lock);
+#endif
/* blas_lock(&memory[position].lock);*/
if (!memory[position].used) goto allocation;
-
+#if defined(SMP) && !defined(USE_OPENMP)
UNLOCK_COMMAND(&alloc_lock);
+#endif
/* blas_unlock(&memory[position].lock);*/
/* } */
#endif
memory[position].used = 1;
-
+#if defined(SMP) && !defined(USE_OPENMP)
UNLOCK_COMMAND(&alloc_lock);
+#endif
+
/* blas_unlock(&memory[position].lock);*/
if (!memory[position].addr) {
} while ((BLASLONG)map_address == -1);
+#if defined(SMP) && !defined(USE_OPENMP)
LOCK_COMMAND(&alloc_lock);
+#endif
memory[position].addr = map_address;
+#if defined(SMP) && !defined(USE_OPENMP)
UNLOCK_COMMAND(&alloc_lock);
+#endif
#ifdef DEBUG
printf(" Mapping Succeeded. %p(%d)\n", (void *)memory[position].addr, position);
if (memory_initialized == 1) {
+#if defined(SMP) && !defined(USE_OPENMP)
LOCK_COMMAND(&alloc_lock);
+#endif
if (memory_initialized == 1) {
memory_initialized = 2;
}
+#if defined(SMP) && !defined(USE_OPENMP)
UNLOCK_COMMAND(&alloc_lock);
-
+#endif
}
#endif
#endif
position = 0;
+#if defined(SMP) && !defined(USE_OPENMP)
LOCK_COMMAND(&alloc_lock);
-
+#endif
while ((position < NUM_BUFFERS) && (memory[position].addr != free_area))
position++;
WMB;
memory[position].used = 0;
+#if defined(SMP) && !defined(USE_OPENMP)
UNLOCK_COMMAND(&alloc_lock);
+#endif
#ifdef DEBUG
printf("Unmap Succeeded.\n\n");
for (position = 0; position < NUM_BUFFERS; position++)
printf("%4ld %p : %d\n", position, memory[position].addr, memory[position].used);
#endif
+#if defined(SMP) && !defined(USE_OPENMP)
UNLOCK_COMMAND(&alloc_lock);
-
+#endif
return;
}