Changeset 0b05082 in mainline for uspace/lib/c/arch/ppc32/include/libarch/tls.h
- Timestamp:
- 2018-07-18T18:56:16Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 40abf56a
- Parents:
- 9b1baac
- git-author:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-18 14:25:11)
- git-committer:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-18 18:56:16)
- File:
-
- 1 edited
-
uspace/lib/c/arch/ppc32/include/libarch/tls.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/ppc32/include/libarch/tls.h
r9b1baac r0b05082 40 40 #include <libc.h> 41 41 42 #define PPC_TP_OFFSET 0x700042 #define ARCH_TP_OFFSET (0x7000 + sizeof(tcb_t)) 43 43 44 44 typedef struct { … … 46 46 } tcb_t; 47 47 48 static inline void __tcb_ set(tcb_t *tcb)48 static inline void __tcb_raw_set(void *tls) 49 49 { 50 uint8_t *tp = (uint8_t *) tcb; 51 tp += PPC_TP_OFFSET + sizeof(tcb_t); 52 53 asm volatile ( 54 "mr %%r2, %0\n" 55 : 56 : "r" (tp) 57 ); 50 asm volatile ("mr %%r2, %0\n" :: "r" (tls)); 58 51 } 59 52 60 static inline tcb_t *__tcb_get(void)53 static inline void *__tcb_raw_get(void) 61 54 { 62 uint8_t *retval; 63 64 asm volatile ( 65 "mr %0, %%r2\n" 66 : "=r" (retval) 67 ); 68 69 return (tcb_t *) (retval - PPC_TP_OFFSET - sizeof(tcb_t)); 55 void *retval; 56 asm volatile ("mr %0, %%r2\n" : "=r" (retval)); 57 return retval; 70 58 } 71 59
Note:
See TracChangeset
for help on using the changeset viewer.
