|
Files |
| file | atomic.h |
| file | config.h |
| file | faddr.h |
| file | fibril.h |
| file | istate.h |
| file | istate.h |
| file | stack.h |
| file | stackarg.h |
| file | syscall.h |
| file | tls.c |
| file | tls.h |
| | sparc64 TLS functions.
|
| file | types.h |
Data Structures |
| struct | context_t |
| | Fibril context. More...
|
| struct | tcb_t |
| | TCB (Thread Control Block) struct. More...
|
Defines |
|
#define | __64_BITS__ |
|
#define | __syscall0 __syscall |
|
#define | __syscall1 __syscall |
|
#define | __syscall2 __syscall |
|
#define | __syscall3 __syscall |
|
#define | __syscall4 __syscall |
|
#define | __syscall5 __syscall |
|
#define | __syscall6 __syscall |
|
#define | CONFIG_TLS_VARIANT_2 |
|
#define | context_set(c, _pc, stack, size, ptls) |
|
#define | FADDR(fptr) ((uintptr_t) (fptr)) |
|
#define | LIBC_ARCH_ATOMIC_H_ |
|
#define | PAGE_SIZE (1 << PAGE_WIDTH) |
|
#define | PRIdn PRId64 |
| | Format for native_t.
|
|
#define | PRIua PRIu64 |
| | Format for atomic_count_t.
|
|
#define | PRIun PRIu64 |
| | Format for sysarg_t.
|
|
#define | PRIxn PRIx64 |
| | Format for hexadecimal sysarg_t.
|
|
#define | SIZE_MAX UINT64_MAX |
|
#define | SIZE_MIN UINT64_MIN |
|
#define | SP_DELTA (STACK_WINDOW_SAVE_AREA_SIZE + STACK_ARG_SAVE_AREA_SIZE) |
|
#define | SSIZE_MAX INT64_MAX |
|
#define | SSIZE_MIN INT64_MIN |
|
#define | STACK_ALIGNMENT 16 |
| | According to SPARC Compliance Definition, every stack frame is 16-byte aligned.
|
|
#define | STACK_ARG_SAVE_AREA_SIZE (6 * STACK_ITEM_SIZE) |
|
#define | STACK_BIAS 2047 |
| | By convention, the actual top of the stack is sp + STACK_BIAS.
|
|
#define | STACK_ITEM_SIZE 8 |
|
#define | STACK_WINDOW_SAVE_AREA_SIZE (16 * STACK_ITEM_SIZE) |
| | 16-extended-word save area for i[0-7] and l[0-7] registers.
|
Typedefs |
|
typedef uint64_t | atomic_count_t |
|
typedef int64_t | atomic_signed_t |
|
typedef uint64_t | size_t |
|
typedef int64_t | ssize_t |
|
typedef uint64_t | sysarg_t |
|
typedef uint64_t | uintptr_t |
Functions |
|
tcb_t * | __alloc_tls (void **data, size_t size) |
|
void | __free_tls_arch (tcb_t *tcb, size_t size) |
|
static 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) |
|
static tcb_t * | __tcb_get (void) |
|
static void | __tcb_set (tcb_t *tcb) |
| static atomic_count_t | atomic_add (atomic_t *val, atomic_count_t i) |
| | Atomic add operation.
|
|
static void | atomic_dec (atomic_t *val) |
|
static void | atomic_inc (atomic_t *val) |
|
static atomic_count_t | atomic_postdec (atomic_t *val) |
|
static atomic_count_t | atomic_postinc (atomic_t *val) |
|
static atomic_count_t | atomic_predec (atomic_t *val) |
|
static atomic_count_t | atomic_preinc (atomic_t *val) |
|
static uintptr_t | context_get_fp (context_t *ctx) |