arch/archdoc.h File Reference


Detailed Description

Documentation Definitions for the Acess 2 Architecture Interface.

Author:
John Hodge (thePowersGang)

Acess 2 allows different architecture builds to be made off almost the same source tree. The difference between the trees is the inclusion of a different directory from the "Kernel/arch/" directory that contains the architecture specific intialisation and management code. Each achitecture tree must provide all the definitions from this document in some form or another (usually in the most efficient way avaliable) The values and types used in this documentation are a guide only and will most probably be incorrect for most architectures.

Go to the source code of this file.

Data Structures

struct  tSyscallRegs
 Register state passed to the syscall handler. More...

Defines

#define MAX_CPUS   1
 Maximum number of CPUs supported by this architecture driver (in the current build).
#define BITS   32
 Number of bits in a machine word (Uint).
#define PHYS_BITS   32
 Number of valid bits in a tPAddr.

Typedefs

typedef Uint size_t
 Counter/Byte count type.
typedef Uint32 tVAddr
 Virtual address type.
typedef Uint32 tPAddr
 Physical Address type.
typedef struct sMemoryState tMemoryState
 Opaque structure definining the MMU state for a task.
typedef struct sTaskState tTaskState
 Opque structure defining the CPU state for a task.
Atomic Types

typedef unsigned int Uint
 Unsigned machine native integer.
typedef unsigned char Uint8
 Unsigned 8-bit integer.
typedef unsigned short Uint16
 Unsigned 16-bit integer.
typedef unsigned long Uint32
 Unsigned 32-bit integer.
typedef unsigned long long Uint64
 Unsigned 64-bit integer.
typedef signed int Sint
 Signed Machine Native integer.
typedef signed char Sint8
 Signed 8-bit integer.
typedef signed short Sint16
 Signed 16-bit integer.
typedef signed long Sint32
 Signed 32-bit integer.
typedef signed long long Sint64
 Signed 16-bit integer.

Syncronisation Primitives



#define LOCK(lockptr)   do{while(*(tSpinlock*)lockptr)Threads_Yield();*(tSpinlock*)lockptr=1;}while(0)
 Acquire a spinlock.
#define RELEASE(lockptr)   do{*(tSpinlock*)lockptr=0;}while(0)
 Release a held spinlock.
typedef volatile int tSpinlock
 Spinlock type.
Generated on Mon Feb 14 15:21:30 2011 for Acess2 by  doxygen 1.6.3