|
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) |