Changeset 6b781c0 in mainline for uspace/libc/arch/arm32/include/psthread.h
- Timestamp:
- 2007-06-08T15:02:49Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c03ee1c
- Parents:
- 3ee8a075
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/libc/arch/arm32/include/psthread.h
r3ee8a075 r6b781c0 1 1 /* 2 * Copyright (c) 200 6 Ondrej Palkovsky2 * Copyright (c) 2007 Michal Kebrt 3 3 * All rights reserved. 4 4 * … … 30 30 * @{ 31 31 */ 32 /** @file 33 * @ingroup libcarm3232 /** @file 33 * @brief psthread related declarations. 34 34 */ 35 35 … … 38 38 39 39 #include <types.h> 40 #include <align.h> 41 #include "thread.h" 40 42 41 #define SP_DELTA 0 /* TODO */ 43 /** Size of a stack item */ 44 #define STACK_ITEM_SIZE 4 42 45 46 /** Stack alignment - see <a href="http://www.arm.com/support/faqdev/14269.html">ABI</a> for details */ 47 #define STACK_ALIGNMENT 8 48 49 #define SP_DELTA (0 + ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT)) 50 51 52 /** Sets data to the context. 53 * 54 * @param c Context (#context_t). 55 * @param _pc Program counter. 56 * @param stack Stack address. 57 * @param size Stack size. 58 * @param ptls Pointer to the TCB. 59 */ 60 #define context_set(c, _pc, stack, size, ptls) \ 61 (c)->pc = (sysarg_t) (_pc); \ 62 (c)->sp = ((sysarg_t) (stack)) + (size) - SP_DELTA; \ 63 (c)->tls = ((sysarg_t)(ptls)) + sizeof(tcb_t) + ARM_TP_OFFSET; 64 65 66 /** Thread context. 67 * 68 * Only registers preserved accross function calls are included. r9 is used 69 * to store a TLS address. -ffixed-r9 gcc forces gcc not to use this 70 * register. -mtp=soft forces gcc to use #__aeabi_read_tp to obtain 71 * TLS address. 72 */ 43 73 typedef struct { 44 74 uint32_t sp; 45 75 uint32_t pc; 76 uint32_t r4; 77 uint32_t r5; 78 uint32_t r6; 79 uint32_t r7; 80 uint32_t r8; 46 81 uint32_t tls; 82 uint32_t r10; 83 uint32_t r11; 47 84 } context_t; 85 48 86 49 87 #endif
Note:
See TracChangeset
for help on using the changeset viewer.