Documentation Definitions for the Acess 2 Architecture Interface.
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. |