Changeset fa23560 in mainline for uspace/lib/libc/arch/ppc32
- Timestamp:
- 2007-10-30T22:54:11Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4d21cf8
- Parents:
- b2a0f6dd
- Location:
- uspace/lib/libc/arch/ppc32
- Files:
-
- 1 added
- 2 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libc/arch/ppc32/Makefile.inc
rb2a0f6dd rfa23560 35 35 ARCH_SOURCES += arch/$(ARCH)/src/syscall.c \ 36 36 arch/$(ARCH)/src/fibril.S \ 37 arch/$(ARCH)/src/t hread.c37 arch/$(ARCH)/src/tls.c 38 38 39 39 CFLAGS += -mcpu=powerpc -msoft-float -m32 -
uspace/lib/libc/arch/ppc32/include/thread.h
rb2a0f6dd rfa23560 36 36 #define LIBC_ppc32_THREAD_H_ 37 37 38 #define PPC_TP_OFFSET 0x700039 40 typedef struct {41 void *fibril_data;42 } tcb_t;43 44 static inline void __tcb_set(tcb_t *tcb)45 {46 void *tp = tcb;47 tp += PPC_TP_OFFSET + sizeof(tcb_t);48 49 asm volatile (50 "mr %%r2, %0\n"51 :52 : "r" (tp)53 );54 }55 56 static inline tcb_t * __tcb_get(void)57 {58 void * retval;59 60 asm volatile (61 "mr %0, %%r2\n"62 : "=r" (retval)63 );64 65 return (tcb_t *)(retval - PPC_TP_OFFSET - sizeof(tcb_t));66 }67 68 38 #endif 69 39 -
uspace/lib/libc/arch/ppc32/src/tls.c
rb2a0f6dd rfa23560 33 33 */ 34 34 35 #include <t hread.h>36 #include < malloc.h>35 #include <tls.h> 36 #include <sys/types.h> 37 37 38 /** Allocate TLS & TCB for initial module threads39 *40 * @param data Start of data section41 * @return pointer to tcb_t structure42 *43 */44 38 tcb_t * __alloc_tls(void **data, size_t size) 45 39 { 46 tcb_t *result; 47 48 result = malloc(sizeof(tcb_t) + size); 49 *data = ((void *)result) + sizeof(tcb_t); 50 return result; 40 return tls_alloc_variant_1(data, size); 51 41 } 52 42 53 43 void __free_tls_arch(tcb_t *tcb, size_t size) 54 44 { 55 free(tcb);45 tls_free_variant_1(tcb, size); 56 46 } 57 47
Note:
See TracChangeset
for help on using the changeset viewer.