/* * Copyright 2003-2009, Axel Dörfler, axeld@pinc-software.de. * Distributed under the terms of the MIT License. */ #ifndef _KERNEL_TLS_H #define _KERNEL_TLS_H #include #define TLS_SIZE (TLS_MAX_KEYS * sizeof(void *)) #define TLS_COMPAT_SIZE (TLS_MAX_KEYS * sizeof(uint32)) enum { TLS_BASE_ADDRESS_SLOT = 0, // contains the address of the local storage space TLS_THREAD_ID_SLOT, TLS_ERRNO_SLOT, TLS_ON_EXIT_THREAD_SLOT, TLS_USER_THREAD_SLOT, TLS_DYNAMIC_THREAD_VECTOR, TLS_LOCALE_SLOT, // Note: these entries can safely be changed between // releases; 3rd party code always calls tls_allocate() // to get a free slot TLS_FIRST_FREE_SLOT // the first free slot for user allocations }; #endif /* _KERNEL_TLS_H */