Changeset a949f4a in mainline for uspace/lib/c/arch/ia64
- Timestamp:
- 2019-07-16T15:07:01Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2cc569a3, 9fb280c
- Parents:
- fa603e99
- git-author:
- Jiri Svoboda <jiri@…> (2019-07-15 17:03:31)
- git-committer:
- Jiri Svoboda <jiri@…> (2019-07-16 15:07:01)
- Location:
- uspace/lib/c/arch/ia64
- Files:
-
- 5 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/ia64/Makefile.inc
rfa603e99 ra949f4a 35 35 arch/$(UARCH)/src/ddi.c \ 36 36 arch/$(UARCH)/src/stacktrace.c \ 37 arch/$(UARCH)/src/stacktrace_asm.S 37 arch/$(UARCH)/src/stacktrace_asm.S \ 38 arch/$(UARCH)/src/rtld/dynamic.c \ 39 arch/$(UARCH)/src/rtld/reloc.c 38 40 39 41 ARCH_AUTOCHECK_HEADERS = \ -
uspace/lib/c/arch/ia64/include/libarch/tls.h
rfa603e99 ra949f4a 42 42 /* This structure must be exactly 16 bytes long */ 43 43 typedef struct { 44 void * dtv; /* unused in static linking*/44 void **dtv; 45 45 void *fibril_data; 46 46 } tcb_t; -
uspace/lib/c/arch/ia64/src/thread_entry.S
rfa603e99 ra949f4a 34 34 # 35 35 # 36 SYMBOL (__thread_entry)36 SYMBOL_BEGIN(__thread_entry) 37 37 alloc loc0 = ar.pfs, 0, 1, 1, 0 38 38 39 #ifndef CONFIG_RTLD 40 # XXX This does not work in a shared library 39 41 movl gp = __gp 42 #endif 40 43 41 44 # … … 44 47 45 48 mov out0 = r8 ;; 49 # XXX br.call.sptk.many b0 = FUNCTION_REF(__thread_main) 46 50 br.call.sptk.many b0 = __thread_main 47 51 … … 50 54 # 51 55 56 SYMBOL_END(__thread_entry) -
uspace/lib/c/arch/ia64/src/tls.c
rfa603e99 ra949f4a 1 1 /* 2 * Copyright (c) 2019 Jiri Svoboda 2 3 * Copyright (c) 2006 Ondrej Palkovsky 3 4 * All rights reserved. … … 37 38 #include <tls.h> 38 39 40 #ifdef CONFIG_RTLD 41 #include <rtld/rtld.h> 42 #endif 43 39 44 tcb_t *tls_alloc_arch(size_t size, size_t align) 40 45 { … … 47 52 } 48 53 54 /* 55 * Rtld TLS support 56 */ 57 58 typedef struct { 59 unsigned long int ti_module; 60 unsigned long int ti_offset; 61 } tls_index; 62 63 void *__tls_get_addr(tls_index *ti); 64 65 void *__tls_get_addr(tls_index *ti) 66 { 67 uint8_t *tls; 68 69 #ifdef CONFIG_RTLD 70 if (runtime_env != NULL) { 71 return rtld_tls_get_addr(runtime_env, __tcb_get(), 72 ti->ti_module, ti->ti_offset); 73 } 74 #endif 75 /* Get address of static TLS block */ 76 tls = tls_get(); 77 return tls + ti->ti_offset; 78 } 79 49 80 /** @} 50 81 */
Note:
See TracChangeset
for help on using the changeset viewer.