7 typedef struct UIntMap
{
17 #define UINTMAP_STATIC_INITIALIZE_N(_n) { NULL, 0, 0, (_n), RWLOCK_STATIC_INITIALIZE }
18 #define UINTMAP_STATIC_INITIALIZE UINTMAP_STATIC_INITIALIZE_N(~0)
20 void InitUIntMap(UIntMap
*map
, ALsizei limit
);
21 void ResetUIntMap(UIntMap
*map
);
22 ALenum
InsertUIntMapEntry(UIntMap
*map
, ALuint key
, ALvoid
*value
);
23 ALvoid
*RemoveUIntMapKey(UIntMap
*map
, ALuint key
);
24 ALvoid
*LookupUIntMapKey(UIntMap
*map
, ALuint key
);
26 inline void LockUIntMapRead(UIntMap
*map
)
27 { ReadLock(&map
->lock
); }
28 inline void UnlockUIntMapRead(UIntMap
*map
)
29 { ReadUnlock(&map
->lock
); }
30 inline void LockUIntMapWrite(UIntMap
*map
)
31 { WriteLock(&map
->lock
); }
32 inline void UnlockUIntMapWrite(UIntMap
*map
)
33 { WriteUnlock(&map
->lock
); }
35 #endif /* AL_UINTMAP_H */