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) |
static atomic_count_t atomic_add | ( | atomic_t * | val, | |
atomic_count_t | i | |||
) | [inline, static] |