-
Notifications
You must be signed in to change notification settings - Fork 62
Machine dependent headers
Headers with machine-dependent stuff
For example, include/e2k/arch/ for Elbrus 2000
See kernel/boot.h
Parameters for ARCH_HAS_FLAG()
and ARCH_SET_FLAG()
macros, global info about CPU/HW abilities kernel needds to take in account.
These are forced to be included in every file during compilation, can be used to configure kernel for specific architecture. Supposed to modify global kernel/config.h defines ('casue included after).
Default board config file name is board-$(ARCH)_default-config.h
Defines struct cpu_state_save
and corresponding macros to access it's fields from assembler.
Used in CPU state save during context (thread) switch.
Architecture dependent definitions for ELF file loader.
Just limits.h for this arch.
Memory (MMU) page size, shift value and mask.
Basic C types definitions.
Selects endianness.
TODO: need to move them to ARCH specific subtree too
Definitions used all around the assembly code, such as ENTRY(x)
(function entry point definition), etc.
For example, e2k/trap.h.
-
struct trap_state
- structure where trap/interrupt state is saved, either by CPU hardware and/or low level trap handler code. - TS_PROGRAM_COUNTER - name of field that contains saved instruction pointer
Must include $(ARCH)/trap.h
#define MAX_IRQ_COUNT
Jump buffer size
#define _JBLEN 10
Defines system call assembly source for Unix subsystem.
Example for ARM
#define SYSCALL(x) ENTRY(x); ldr r12, = SYS_##x; swi 0x0;
May need attention too.
Defines and access methods for CPU registers. Mostly talk about special ones, such as Intel CR3, debug registers, etc. Inline assembly wrappers used to execute special CPU instructions are usually come here too.
:: Home :: RoadMap :: History :: ChangeLog :: ScreenShots :: Phantom Developer's Guide