ppc32
[Libc]

ppc32 architecture dependent parts of libc More...

Files

file  atomic.h
file  ddi.h
file  faddr.h
file  fibril.h
file  istate.h
file  regname.h
file  stackarg.h
file  stacktrace.c
file  syscall.c
file  thread.h
file  tls.c
file  tls.h
file  types.h

Data Structures

struct  context_t
 Fibril context. More...
struct  istate
 Interrupt context. More...
struct  tcb_t
 TCB (Thread Control Block) struct. More...

Defines

#define __32_BITS__
#define CONFIG_TLS_VARIANT_1
#define context_set(c, _pc, stack, size, ptls)
#define cr0   0
#define cr1   1
#define cr2   2
#define cr3   3
#define cr4   4
#define cr5   5
#define cr6   6
#define cr7   7
#define evr0   0
#define evr1   1
#define evr10   10
#define evr11   11
#define evr12   12
#define evr13   13
#define evr14   14
#define evr15   15
#define evr16   16
#define evr17   17
#define evr18   18
#define evr19   19
#define evr2   2
#define evr20   20
#define evr21   21
#define evr22   22
#define evr23   23
#define evr24   24
#define evr25   25
#define evr26   26
#define evr27   27
#define evr28   28
#define evr29   29
#define evr3   3
#define evr30   30
#define evr31   31
#define evr4   4
#define evr5   5
#define evr6   6
#define evr7   7
#define evr8   8
#define evr9   9
#define FADDR(fptr)   ((uintptr_t) (fptr))
#define fr0   0
#define fr1   1
#define fr10   10
#define fr11   11
#define fr12   12
#define fr13   13
#define fr14   14
#define fr15   15
#define fr16   16
#define fr17   17
#define fr18   18
#define fr19   19
#define fr2   2
#define fr20   20
#define fr21   21
#define fr22   22
#define fr23   23
#define fr24   24
#define fr25   25
#define fr26   26
#define fr27   27
#define fr28   28
#define fr29   29
#define fr3   3
#define fr30   30
#define fr31   31
#define fr4   4
#define fr5   5
#define fr6   6
#define fr7   7
#define fr8   8
#define fr9   9
#define FRAME_OFFSET_FP_PREV   0
#define FRAME_OFFSET_RA   4
#define LIBC_ARCH_ATOMIC_H_
#define PPC_TP_OFFSET   0x7000
#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 r0   0
#define r1   1
#define r10   10
#define r11   11
#define r12   12
#define r13   13
#define r14   14
#define r15   15
#define r16   16
#define r17   17
#define r18   18
#define r19   19
#define r2   2
#define r20   20
#define r21   21
#define r22   22
#define r23   23
#define r24   24
#define r25   25
#define r26   26
#define r27   27
#define r28   28
#define r29   29
#define r3   3
#define r30   30
#define r31   31
#define r4   4
#define r5   5
#define r6   6
#define r7   7
#define r8   8
#define r9   9
#define SIZE_MAX   UINT32_MAX
#define SIZE_MIN   UINT32_MIN
#define sp   1
#define SP_DELTA   16
#define SSIZE_MAX   INT32_MAX
#define SSIZE_MIN   INT32_MIN
#define vr0   0
#define vr1   1
#define vr10   10
#define vr11   11
#define vr12   12
#define vr13   13
#define vr14   14
#define vr15   15
#define vr16   16
#define vr17   17
#define vr18   18
#define vr19   19
#define vr2   2
#define vr20   20
#define vr21   21
#define vr22   22
#define vr23   23
#define vr24   24
#define vr25   25
#define vr26   26
#define vr27   27
#define vr28   28
#define vr29   29
#define vr3   3
#define vr30   30
#define vr31   31
#define vr4   4
#define vr5   5
#define vr6   6
#define vr7   7
#define vr8   8
#define vr9   9

Typedefs

typedef uint32_t atomic_count_t
typedef int32_t atomic_signed_t
typedef istate istate_t
 Interrupt context.
typedef uint32_t size_t
typedef int32_t ssize_t
typedef uint32_t sysarg_t
typedef uint32_t uintptr_t

Functions

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)
static void __tcb_set (tcb_t *tcb)
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 uintptr_t istate_get_fp (istate_t *istate)
static uintptr_t istate_get_pc (istate_t *istate)
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)

Detailed Description

ppc32 architecture dependent parts of libc


Typedef Documentation

typedef struct istate istate_t

Interrupt context.

This is a copy of the kernel definition with which it must be kept in sync.


Function Documentation

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.

Stores p1-p4, id to r0-r4 registers and calls swi instruction. Returned value is read from r0 register.

Parameters:
p1 Parameter 1.
p2 Parameter 2.
p3 Parameter 3.
p4 Parameter 4.
id Number of syscall.
Returns:
Syscall return value.

Definition at line 39 of file syscall.c.


Generated on Thu Jun 2 07:45:57 2011 for HelenOS/USB by  doxygen 1.4.7