Added a dumb TLS implementation rather than printing an error.

Will properly implement TLS soon, for now a "working" implementation
is needed for anything to work properly.
This commit is contained in:
Alex Smith
2012-07-28 16:54:30 +01:00
parent 0efc5e72dc
commit bd8b78e6ee
+12 -8
View File
@@ -18,33 +18,37 @@
#include <assert.h>
static int32 gNextSlot = TLS_FIRST_FREE_SLOT;
static void* gSlots[TLS_MAX_KEYS];
int32
tls_allocate(void)
{
assert(0 && "tls_allocate: not implemented");
return 0;
int32 next = atomic_add(&gNextSlot, 1);
if (next >= TLS_MAX_KEYS)
return B_NO_MEMORY;
return next;
}
void*
tls_get(int32 index)
{
assert(0 && "tls_get: not implemented");
return NULL;
return gSlots[index];
}
void**
tls_address(int32 index)
{
assert(0 && "tls_address: not implemented");
return NULL;
return &gSlots[index];
}
void
tls_set(int32 index, void* value)
{
assert(0 && "tls_set: not implemented");
gSlots[index] = value;
}