No changes between revisions
//uspace/trunk/libc/arch/ia32/_link.ld.in |
20,6 → 20,16 |
.data ALIGN(0x1000) : SUBALIGN(0x1000) { |
*(.data); |
} :data |
.tdata : { |
_tdata_start = .; |
*(.tdata); |
_tdata_end = .; |
} :data |
.tbss : { |
_tbss_start = .; |
*(.tbss); |
_tbss_end = .; |
} :data |
.bss : { |
*(COMMON); |
*(.bss); |
//uspace/trunk/libc/arch/ia32/include/thread.h |
31,12 → 31,17 |
|
#include <libc.h> |
|
static inline void __tls_set(void *tls) |
typedef struct { |
void *self; |
void *pst_data; |
} tcb_t; |
|
static inline void __tcb_set(tcb_t *tcb) |
{ |
__SYSCALL1(SYS_TLS_SET, (sysarg_t) tls); |
__SYSCALL1(SYS_TLS_SET, (sysarg_t) tcb); |
} |
|
static inline void * __tls_get(void) |
static inline tcb_t * __tcb_get(void) |
{ |
void * retval; |
|
//uspace/trunk/libc/arch/ia32/Makefile.inc |
33,6 → 33,7 |
TOOLCHAIN_DIR = /usr/local/i686/bin |
|
ARCH_SOURCES += arch/$(ARCH)/src/syscall.c \ |
arch/$(ARCH)/src/psthread.S |
arch/$(ARCH)/src/psthread.S \ |
arch/$(ARCH)/src/thread.c |
|
LFLAGS += -N |