X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=smalloc.c;h=c8f1642eb54cfc7863182286be03d03599dd4dae;hp=b0173739b49c18254e5a425d58d09e9369a0792e;hb=49cba9b3e5fa6b30f0fdff52eaf83427ec1baa3f;hpb=a3ebe7e079847413458b9d80bd7a4acc924d108b diff --git a/smalloc.c b/smalloc.c index b0173739..c8f1642e 100644 --- a/smalloc.c +++ b/smalloc.c @@ -16,6 +16,7 @@ #include "mutex.h" #include "arch/arch.h" #include "os/os.h" +#include "smalloc.h" #define SMALLOC_REDZONE /* define to detect memory corruption */ @@ -30,7 +31,7 @@ #define SMALLOC_POST_RED 0x5aa55aa5U unsigned int smalloc_pool_size = INITIAL_SIZE; -const int int_mask = sizeof(int) - 1; +static const int int_mask = sizeof(int) - 1; struct pool { struct fio_mutex *lock; /* protects this pool */ @@ -52,7 +53,7 @@ struct block_hdr { static struct pool mp[MAX_POOLS]; static unsigned int nr_pools; static unsigned int last_pool; -static struct fio_mutex *lock; +static struct fio_rwlock *lock; static inline void pool_lock(struct pool *pool) { @@ -66,22 +67,22 @@ static inline void pool_unlock(struct pool *pool) static inline void global_read_lock(void) { - fio_mutex_down_read(lock); + fio_rwlock_read(lock); } static inline void global_read_unlock(void) { - fio_mutex_up_read(lock); + fio_rwlock_unlock(lock); } static inline void global_write_lock(void) { - fio_mutex_down_write(lock); + fio_rwlock_write(lock); } static inline void global_write_unlock(void) { - fio_mutex_up_write(lock); + fio_rwlock_unlock(lock); } static inline int ptr_valid(struct pool *pool, void *ptr) @@ -223,7 +224,7 @@ void sinit(void) { int ret; - lock = fio_mutex_rw_init(); + lock = fio_rwlock_init(); ret = add_pool(&mp[0], INITIAL_SIZE); assert(!ret); } @@ -248,7 +249,7 @@ void scleanup(void) cleanup_pool(&mp[i]); if (lock) - fio_mutex_remove(lock); + fio_rwlock_remove(lock); } #ifdef SMALLOC_REDZONE