|
Files |
file | atomic.h |
| Atomic operations.
|
file | config.h |
| Configuration constants.
|
file | ddi.h |
file | faddr.h |
| Function address conversion.
|
file | fibril.h |
| Fibrils related declarations.
|
file | istate.h |
file | stackarg.h |
| Empty.
|
file | stacktrace.c |
file | syscall.c |
| Syscall routine.
|
file | syscall.h |
file | thread.h |
file | tls.c |
file | tls.h |
file | types.h |
| Definitions of basic types like uintptr_t.
|
Data Structures |
struct | context_t |
| Fibril context. More...
|
struct | tcb_t |
| TCB (Thread Control Block) struct. More...
|
Defines |
#define | __32_BITS__ |
#define | ARM_TP_OFFSET (-8) |
| Offsets for accessing thread-local variables are shifted 8 bytes higher.
|
#define | CAS |
#define | CONFIG_TLS_VARIANT_1 |
#define | context_set(c, _pc, stack, size, ptls) |
| Sets data to the context.
|
#define | FADDR(f) (f) |
| Calculate absolute address of function referenced by fptr pointer.
|
#define | FRAME_OFFSET_FP_PREV -12 |
#define | FRAME_OFFSET_RA -4 |
#define | LIBARCH_SYSCALL_GENERIC |
#define | LIBC_ARCH_ATOMIC_H_ |
#define | PAGE_SIZE (1 << PAGE_WIDTH) |
#define | PAGE_WIDTH 12 |
#define | PRIdn PRId32 |
| Format for native_t.
|
#define | PRIua PRIu32 |
| Format for atomic_count_t.
|
#define | PRIun PRIu32 |
| Format for sysarg_t.
|
#define | PRIxn PRIx32 |
| Format for hexadecimal sysarg_t.
|
#define | SIZE_MAX UINT32_MAX |
#define | SIZE_MIN UINT32_MIN |
#define | SP_DELTA (0 + ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT)) |
#define | SSIZE_MAX INT32_MAX |
#define | SSIZE_MIN INT32_MIN |
#define | STACK_ALIGNMENT 8 |
| Stack alignment - see ABI for details.
|
#define | STACK_ITEM_SIZE 4 |
| Size of a stack item.
|
Typedefs |
typedef uint32_t | atomic_count_t |
typedef int32_t | atomic_signed_t |
typedef uint32_t | size_t |
typedef int32_t | ssize_t |
typedef uint32_t | sysarg_t |
typedef uint32_t | uintptr_t |
Functions |
uintptr_t | __aeabi_read_tp (void) |
| Returns TLS address stored.
|
tcb_t * | __alloc_tls (void **data, size_t size) |
void | __free_tls_arch (tcb_t *tcb, size_t size) |
sysarg_t | __syscall (const sysarg_t p1, const sysarg_t p2, const sysarg_t p3, const sysarg_t p4, const sysarg_t p5, const sysarg_t p6, const syscall_t id) |
| Syscall routine.
|
static tcb_t * | __tcb_get (void) |
| Returns TCB address.
|
static void | __tcb_set (tcb_t *tcb) |
| Sets TLS address to the r9 register.
|
static atomic_count_t | atomic_add (atomic_t *val, atomic_count_t i) |
| Atomic addition.
|
static void | atomic_dec (atomic_t *val) |
| Atomic decrement.
|
static void | atomic_inc (atomic_t *val) |
| Atomic increment.
|
static atomic_count_t | atomic_postdec (atomic_t *val) |
| Atomic post-decrement.
|
static atomic_count_t | atomic_postinc (atomic_t *val) |
| Atomic post-increment.
|
static atomic_count_t | atomic_predec (atomic_t *val) |
| Atomic pre-decrement.
|
static atomic_count_t | atomic_preinc (atomic_t *val) |
| Atomic pre-increment.
|
static bool | cas (atomic_t *val, atomic_count_t ov, atomic_count_t nv) |
static uintptr_t | context_get_fp (context_t *ctx) |
int | stacktrace_fp_prev (stacktrace_t *st, uintptr_t fp, uintptr_t *prev) |
bool | stacktrace_fp_valid (stacktrace_t *st, uintptr_t fp) |
int | stacktrace_ra_get (stacktrace_t *st, uintptr_t fp, uintptr_t *ra) |