ia64
[Libc]

ia64 architecture dependent parts of libc More...

Files

file  arch/ia64/include/atomic.h
file  arch/ia64/include/endian.h
file  arch/ia64/include/limits.h
file  arch/ia64/include/psthread.h
file  stack.h
file  stackarg.h
file  arch/ia64/include/thread.h
file  arch/ia64/include/types.h
file  arch/ia64/src/thread.c

Data Structures

struct  context
struct  tcb_t

Defines

#define __BYTE_ORDER   __LITTLE_ENDIAN
#define LONG_MIN   MIN_INT64
#define LONG_MAX   MAX_INT64
#define ULONG_MIN   MIN_UINT64
#define ULONG_MAX   MAX_UINT64
#define SP_DELTA   (0+ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT))
#define PFM_MASK   (~0x3fffffffff)
#define PSTHREAD_INITIAL_STACK_PAGES_NO   2
#define PSTHREAD_INITIAL_STACK_DIVISION   2
#define context_set(c, _pc, stack, size, tls)
#define STACK_ITEM_SIZE   8
#define STACK_ALIGNMENT   16
#define STACK_SCRATCH_AREA_SIZE   16
#define REGISTER_STACK_ALIGNMENT   8
#define THREAD_INITIAL_STACK_PAGES_NO   2

Typedefs

typedef context context_t
typedef unsigned long long sysarg_t
typedef unsigned long size_t
typedef signed long ssize_t
typedef ssize_t off_t
typedef char int8_t
typedef short int int16_t
typedef int int32_t
typedef long int int64_t
typedef unsigned char uint8_t
typedef unsigned short int uint16_t
typedef unsigned int uint32_t
typedef unsigned long int uint64_t

Functions

static long atomic_add (atomic_t *val, int imm)
static void atomic_inc (atomic_t *val)
static void atomic_dec (atomic_t *val)
static long atomic_preinc (atomic_t *val)
static long atomic_predec (atomic_t *val)
static long atomic_postinc (atomic_t *val)
static long atomic_postdec (atomic_t *val)
static void __tcb_set (tcb_t *tcb)
static tcb_t__tcb_get (void)
tcb_t__alloc_tls (void **data, size_t size)
void __free_tls_arch (tcb_t *tcb, size_t size)

Variables

char _tdata_start
char _tbss_end

Detailed Description


Define Documentation

#define __BYTE_ORDER   __LITTLE_ENDIAN
 

Definition at line 42 of file arch/ia64/include/endian.h.

#define LONG_MIN   MIN_INT64
 

Definition at line 38 of file arch/ia64/include/limits.h.

Referenced by strtol().

#define LONG_MAX   MAX_INT64
 

Definition at line 39 of file arch/ia64/include/limits.h.

Referenced by strtol().

#define ULONG_MIN   MIN_UINT64
 

Definition at line 40 of file arch/ia64/include/limits.h.

#define ULONG_MAX   MAX_UINT64
 

Definition at line 41 of file arch/ia64/include/limits.h.

Referenced by _strtoul().

#define SP_DELTA   (0+ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT))
 

Definition at line 47 of file arch/ia64/include/psthread.h.

#define PFM_MASK   (~0x3fffffffff)
 

Definition at line 49 of file arch/ia64/include/psthread.h.

#define PSTHREAD_INITIAL_STACK_PAGES_NO   2
 

Definition at line 51 of file arch/ia64/include/psthread.h.

Referenced by psthread_create().

#define PSTHREAD_INITIAL_STACK_DIVISION   2
 

Definition at line 53 of file arch/ia64/include/psthread.h.

#define context_set c,
_pc,
stack,
size,
tls   ) 
 

Value:

do {                                                                                            \
                (c)->pc = (uint64_t) _pc;                                                               \
                (c)->bsp = ((uint64_t) stack) + size / PSTHREAD_INITIAL_STACK_DIVISION;                                                         \
                (c)->ar_pfs &= PFM_MASK;                                                                \
                (c)->sp = ((uint64_t) stack) + ALIGN_UP((size / PSTHREAD_INITIAL_STACK_DIVISION), STACK_ALIGNMENT) - SP_DELTA;          \
                (c)->tp = (uint64_t) tls;                                                               \
        } while (0);

Definition at line 59 of file arch/ia64/include/psthread.h.

Referenced by psthread_create().

#define STACK_ITEM_SIZE   8
 

Definition at line 38 of file stack.h.

#define STACK_ALIGNMENT   16
 

Definition at line 39 of file stack.h.

#define STACK_SCRATCH_AREA_SIZE   16
 

Definition at line 40 of file stack.h.

#define REGISTER_STACK_ALIGNMENT   8
 

Definition at line 41 of file stack.h.

#define THREAD_INITIAL_STACK_PAGES_NO   2
 

Definition at line 38 of file arch/ia64/include/thread.h.

Referenced by thread_create().


Typedef Documentation

typedef struct context context_t
 

typedef unsigned long long sysarg_t
 

Definition at line 38 of file arch/ia64/include/types.h.

typedef unsigned long size_t
 

Definition at line 39 of file arch/ia64/include/types.h.

typedef signed long ssize_t
 

Definition at line 40 of file arch/ia64/include/types.h.

typedef ssize_t off_t
 

Definition at line 41 of file arch/ia64/include/types.h.

typedef char int8_t
 

Definition at line 43 of file arch/ia64/include/types.h.

typedef short int int16_t
 

Definition at line 44 of file arch/ia64/include/types.h.

typedef int int32_t
 

Definition at line 45 of file arch/ia64/include/types.h.

typedef long int int64_t
 

Definition at line 46 of file arch/ia64/include/types.h.

typedef unsigned char uint8_t
 

Definition at line 48 of file arch/ia64/include/types.h.

typedef unsigned short int uint16_t
 

Definition at line 49 of file arch/ia64/include/types.h.

typedef unsigned int uint32_t
 

Definition at line 50 of file arch/ia64/include/types.h.

typedef unsigned long int uint64_t
 

Definition at line 51 of file arch/ia64/include/types.h.


Function Documentation

static long atomic_add atomic_t val,
int  imm
[static]
 

Atomic addition.

Parameters:
val Atomic value.
imm Value to add.
Returns:
Value before addition.

Definition at line 45 of file arch/ia64/include/atomic.h.

References atomic::count.

Referenced by atomic_dec(), atomic_inc(), atomic_postdec(), atomic_postinc(), atomic_predec(), and atomic_preinc().

static void atomic_inc atomic_t val  )  [static]
 

Definition at line 54 of file arch/ia64/include/atomic.h.

References atomic_add().

Referenced by futex_down_timeout().

Here is the call graph for this function:

static void atomic_dec atomic_t val  )  [static]
 

Definition at line 55 of file arch/ia64/include/atomic.h.

References atomic_add().

Here is the call graph for this function:

static long atomic_preinc atomic_t val  )  [static]
 

Definition at line 57 of file arch/ia64/include/atomic.h.

References atomic_add().

Here is the call graph for this function:

static long atomic_predec atomic_t val  )  [static]
 

Definition at line 58 of file arch/ia64/include/atomic.h.

References atomic_add().

Referenced by futex_down_timeout().

Here is the call graph for this function:

static long atomic_postinc atomic_t val  )  [static]
 

Definition at line 60 of file arch/ia64/include/atomic.h.

References atomic_add().

Referenced by futex_up().

Here is the call graph for this function:

static long atomic_postdec atomic_t val  )  [static]
 

Definition at line 61 of file arch/ia64/include/atomic.h.

References atomic_add().

Here is the call graph for this function:

static void __tcb_set tcb_t tcb  )  [static]
 

Definition at line 46 of file arch/ia64/include/thread.h.

Referenced by __main(), and __thread_main().

static tcb_t* __tcb_get void   )  [static]
 

Definition at line 51 of file arch/ia64/include/thread.h.

Referenced by __exit(), psthread_get_id(), psthread_main(), and psthread_schedule_next_adv().

tcb_t* __alloc_tls void **  data,
size_t  size
 

Definition at line 47 of file arch/ia64/src/thread.c.

Referenced by __make_tls().

void __free_tls_arch tcb_t tcb,
size_t  size
 

Definition at line 59 of file arch/ia64/src/thread.c.

Referenced by __free_tls().


Variable Documentation

char _tdata_start
 

Allocate TLS & TCB for initial module threads

Parameters:
data Start of data section
Returns:
pointer to tcb_t structure

Referenced by __free_tls(), and __make_tls().

char _tbss_end
 

Referenced by __free_tls(), and __make_tls().


Generated on Sun Jun 18 18:03:12 2006 for HelenOS Userspace (ia64) by  doxygen 1.4.6