Return to Unit Reference
Description
Ultibo Global Configuration Defaults unit
The GlobalConfig unit contains variables used throughout Ultibo core to provide configuration and parameters to common modules and sub systems. Many of these variables may also be passed on the command line as environment variables to customize the behavior of Ultibo core without needing to recompile the application. This unit also includes a small number of widely used common functions.
Constants
None defined
Type definitions
None defined
Public variables
Compiler and RTL configuration
Kernel image sections
Note: To access these from Pascal code use the address of the variable (eg @_bss_start). Empty record definition prevents access to contents.
_text_start: record end; external name '_text_start';
|
|
_etext: record end; external name '_etext';
|
|
_data: record end; external name '_data';
|
|
_edata: record end; external name '_edata';
|
|
_bss_start: record end; external name '_bss_start';
|
|
_bss_end: record end; external name '_bss_end';
|
|
Library initialization and finalization sections
Note: To access these from Pascal code use the address of the variable (eg @__ctors_start). Empty record definition prevents access to contents.
__preinit_array_start: record end; external name '__preinit_array_start';
|
|
__preinit_array_end: record end; external name '__preinit_array_end';
|
|
__init_array_start: record end; external name '__init_array_start';
|
|
__init_array_end: record end; external name '__init_array_end';
|
|
__fini_array_start: record end; external name '__fini_array_start';
|
|
__fini_array_end: record end; external name '__fini_array_end';
|
|
__ctors_start: record end; external name '__ctors_start';
|
|
__ctors_end: record end; external name '__ctors_end';
|
|
__dtors_start: record end; external name '__dtors_start';
|
|
__dtors_end: record end; external name '__dtors_end';
|
|
RTL initial heap allocation
RtlHeapAddr:record end; external name '__fpc_initialheap';
|
|
RtlHeapSize:PtrInt; external name '__heapsize';
|
|
RTL error handling
RtlErrorBase:Pointer; external name 'FPC_ERRORBASE';
|
|
RTL initialization
RtlInitFinalTable:record end; external name 'INITFINAL';
|
|
Memory and peripheral mapping configuration
Physical to IO address mapping
IO_BASE:PtrUInt;
|
The base for conversion from a Physical Address to an IO Address and back (Where Applicable)
|
IO_ALIAS:PtrUInt;
|
The alias for conversion from a Physical Address to an IO Address and back (Where Applicable)
|
Physical to bus address mapping
BUS_ALIAS:PtrUInt;
|
The mask for conversion from a Physical Address to a Bus Address and back (Where Applicable)
|
Secure boot
SECURE_BOOT:LongBool;
|
True if the boot process occurs in secure mode (Where Applicable)
|
Startup handler address
STARTUP_ADDRESS:LongWord;
|
The physical address of the Startup Handler on Reset
|
Memory base mapping
MEMORY_BASE:PtrUInt;
|
The base (Physical) address for useable board memory
|
MEMORY_SIZE:LongWord;
|
The size of the useable board address space
|
MEMORY_PAGE_SIZE:LongWord;
|
The size of a memory page
|
MEMORY_LARGEPAGE_SIZE:LongWord;
|
The size of a large memory page
|
Memory sizes
MEMORY_IRQ_SIZE:LongWord;
|
The size of the registered IRQ memory (Per CPU) (Must be a multiple of HEAP_REQUEST_ALIGNMENT size)
|
MEMORY_FIQ_SIZE:LongWord;
|
The size of the registered FIQ memory (Per CPU) (Must be a multiple of HEAP_REQUEST_ALIGNMENT size)
|
MEMORY_LOCAL_SIZE:LongWord;
|
The size of the registered local memory (Per CPU) (Must be a multiple of HEAP_REQUEST_ALIGNMENT size)
|
MEMORY_SHARED_SIZE:LongWord;
|
The size of the registered shared memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size)
|
MEMORY_DEVICE_SIZE:LongWord;
|
The size of the registered device memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size)
|
MEMORY_NOCACHE_SIZE:LongWord;
|
The size of the registered non cacheable memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size)
|
MEMORY_NONSHARED_SIZE:LongWord;
|
The size of the registered non shareable memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size)
|
Peripheral base mapping
PERIPHERALS_BASE:PtrUInt;
|
The base (Physical) address for accessing Peripherals
|
PERIPHERALS_SIZE:LongWord;
|
The size of the Peripheral address space
|
Local peripheral base mapping
LOCAL_PERIPHERALS_BASE:PtrUInt;
|
The base (Physical) address for accessing Local Peripherals (Peripherals local to each CPU)
|
LOCAL_PERIPHERALS_SIZE:LongWord;
|
The size of the Local Peripheral address space
|
Page table base mapping
PAGE_TABLE_BASE:PtrUInt;
|
The base (Physical) address of the first level Page Table
|
PAGE_TABLE_SIZE:LongWord;
|
The size of the first level Page Table address space
|
Second level page tables
PAGE_TABLES_ADDRESS:PtrUInt;
|
The base (Physical) address of the second level Page Tables
|
PAGE_TABLES_LENGTH:LongWord;
|
The size of the second level Page Table address space (Rounded to Page Size)
|
PAGE_TABLES_COUNT:LongWord;
|
How many second level Page Tables allocated at this address
|
PAGE_TABLES_SHIFT:LongWord;
|
The multiplier (left shift) to convert count to size (PAGE_TABLES_COUNT shl PAGE_TABLES_SHIFT = Actual Size)
|
PAGE_TABLES_NEXT:PtrUInt;
|
The base (Physical) address of the next available second level Page Table
|
PAGE_TABLES_USED:LongWord;
|
How many second level Page Tables are in use (During boot this will be set to the number required to cover the code and data plus initial stack, heap and overhead)
|
PAGE_TABLES_FREE:LongWord = 1024;
|
How many second level Page Tables are available (The initial value here will be added to the number calculated during boot to provide extras for page allocation)
|
Page table sizes
PAGE_MIN_SIZE:LongWord = SIZE_4K;
|
The minimum size of a memory page in the page tables (Default 4K)
|
PAGE_SMALL_SIZE:LongWord = SIZE_4K;
|
The size of a small memory page in the page tables (Default 4K)
|
PAGE_LARGE_SIZE:LongWord = SIZE_64K;
|
The size of a large memory page in the page tables (Default 64K)
|
PAGE_SECTION_SIZE:LongWord = SIZE_1M;
|
The size of a memory section in the page tables (Default 1M)
|
PAGE_SUPERSECTION_SIZE:LongWord = SIZE_16M;
|
The size of a memory super section in the page tables (Default 16M)
|
Vector table base mapping
VECTOR_TABLE_BASE:PtrUInt;
|
The base (Physical) address of the Interrupt Vector Table
|
VECTOR_TABLE_SIZE:LongWord;
|
The size of the Interrupt Vector Table address space
|
VECTOR_TABLE_COUNT:LongWord;
|
The number of entries in the Interrupt Vector Table
|
Machine and board configuration
Machine configuration
Board configuration
CPU/FPU/GPU configuration
CPU configuration
CPU_ARCH:LongWord;
|
The current CPU architecture for this board
|
CPU_TYPE:LongWord;
|
The current CPU model for this board
|
CPU_COUNT:LongWord;
|
The current CPU count for this board
|
CPU_MAX_COUNT:LongWord;
|
The maximum CPU count for this board
|
CPU_BOOT:LongWord;
|
Which CPU is used for the boot process
|
CPU_MASK:LongWord;
|
The mask of current CPUs for scheduling affinity
|
CPU_MEMORY_BASE:PtrUInt;
|
The base (Physical) address for CPU memory
|
CPU_MEMORY_SIZE:LongWord;
|
The size of the CPU address space
|
CPU_MEMORY_RESTRICTED:LongBool;
|
Any areas of CPU address space with no physical memory are marked as no access
|
FPU configuration
FPU_TYPE:LongWord;
|
The current FPU type for this board
|
GPU configuration
GPU_TYPE:LongWord;
|
The current GPU type for this board
|
GPU_MEMORY_BASE:PtrUInt;
|
The base (Physical) address for GPU memory
|
GPU_MEMORY_SIZE:LongWord;
|
The size of the GPU address space
|
GPU_MEMORY_CACHED:LongBool;
|
The GPU memory is cached when accessed by the CPU
|
IRQ/FIQ/SWI configuration
IRQ_COUNT:LongWord;
|
The total number of IRQs supported for this board
|
FIQ_COUNT:LongWord;
|
The total number of FIQs supported for this board
|
IRQ_START:LongWord = 0;
|
The starting number for system wide IRQs/FIQs (Where Applicable)(Normally zero)
|
IRQ_ROUTING:LongWord = CPU_ID_ALL;
|
Which CPU to route system wide IRQs to (Where Applicable)(CPU_ID_ALL if system supports routing individual IRQs to any CPU)
|
FIQ_ROUTING:LongWord = CPU_ID_ALL;
|
Which CPU to route system wide FIQs to (Where Applicable)(CPU_ID_ALL if system supports routing individual FIQs to any CPU)
|
IRQ_LOCAL_COUNT:LongWord;
|
The number of local (Per CPU) IRQs supported for this board (Where Applicable)
|
FIQ_LOCAL_COUNT:LongWord;
|
The number of local (Per CPU) FIQs supported for this board (Where Applicable)
|
IRQ_LOCAL_START:LongWord;
|
The starting number for local (Per CPU) IRQs/FIQs (Where Applicable)
|
SWI_COUNT:LongWord;
|
The total number of SWIs supported for this board (Where Applicable)
|
Interrupt and exception configuration
IRQ_ENABLED:LongBool;
|
The current CPU supports Interrupt Requests (IRQ)
|
FIQ_ENABLED:LongBool;
|
The current CPU supports Fast Interrupt Requests (FIQ)
|
SWI_ENABLED:LongBool;
|
The current CPU supports Software Interrupt Handlers (SWI)
|
ABORT_ENABLED:LongBool;
|
The current CPU supports Data and/or Prefetch Abort Handlers
|
UNDEFINED_ENABLED:LongBool;
|
The current CPU supports Undefined Instruction Handlers
|
IRQ_STACK_ENABLED:LongBool;
|
The current CPU uses an Interrupt Request Stack (IRQ)
|
FIQ_STACK_ENABLED:LongBool;
|
The current CPU uses a Fast Interrupt Request Stack (FIQ)
|
SWI_STACK_ENABLED:LongBool;
|
The current CPU uses a Software Interrupt Stack (SWI)
|
ABORT_STACK_ENABLED:LongBool;
|
The current CPU uses a Data and/or Prefetch Abort Stack
|
UNDEFINED_STACK_ENABLED:LongBool;
|
The current CPU uses an Undefined Instruction Stack
|
Clock and timer configuration
Clock configuration
CLOCK_FREQUENCY:LongWord;
|
The frequency in Hz of the system timer used to provide the system clock (Clock cycles per second)
|
CLOCK_TICKS_PER_SECOND:LongWord = 1000;
|
How many clock interrupts to schedule per second (1000 equals 1 per millisecond)
|
CLOCK_TICKS_PER_MILLISECOND:LongWord = 1;
|
How many clock interrupts occur every millisecond (Normally 1 if CLOCK_TICKS_PER_SECOND is 1000)
|
CLOCK_CYCLES_PER_TICK:LongWord;
|
How many clock cycles between clock interrupts (Normally CLOCK_FREQUENCY div CLOCK_TICKS_PER_SECOND)
|
CLOCK_CYCLES_PER_MILLISECOND:LongWord;
|
How many clock cycles to a millisecond (Normally CLOCK_FREQUENCY div MILLISECONDS_PER_SECOND)
|
CLOCK_CYCLES_PER_MICROSECOND:LongWord;
|
How many clock cycles to a microsecond (Normally CLOCK_FREQUENCY div MICROSECONDS_PER_SECOND)
|
CLOCK_CYCLES_PER_NANOSECOND:LongWord;
|
How many clock cycles to a nanosecond (Normally CLOCK_FREQUENCY div NANOSECONDS_PER_SECOND)
|
CLOCK_CYCLES_TOLERANCE:LongWord;
|
How many clock cycles tolerance when scheduling the next clock interrupt (Normally CLOCK_CYCLES_PER_TICK div 10)
|
CLOCK_FIQ_ENABLED:LongBool;
|
The Clock uses Fast Interrupt Requests (FIQ) instead of IRQ
|
TIME_TICKS_PER_CLOCK_INTERRUPT:LongWord;
|
How many 100 nanosecond time ticks per clock interrupt
|
Timer configuration
TIMER_THREAD_COUNT:LongWord = 4;
|
How many timer threads to create
|
TIMER_PRIORITY_THREAD_COUNT:LongWord = 1;
|
How many priority timer threads to create
|
TIMER_MESSAGESLOT_MAXIMUM:LongWord = SIZE_2K;
|
Maximum number of messages for the timer messageslot
|
Worker configuration
WORKER_THREAD_COUNT:LongWord = 8;
|
How many worker threads to create
|
WORKER_PRIORITY_THREAD_COUNT:LongWord = 2;
|
How many priority worker threads to create
|
WORKER_MESSAGESLOT_MAXIMUM:LongWord = SIZE_2K;
|
Maximum number of messages for the worker messageslot
|
Spin, mutex, semaphore, critical section, event and buffer configuration
Spin defaults
SPIN_SHARED_MEMORY:LongBool;
|
Spin locks are allocated from Shared memory regions if True
|
Mutex defaults
MUTEX_SHARED_MEMORY:LongBool;
|
Mutexs are allocated from Shared memory regions if True
|
MUTEX_DEFAULT_SPINCOUNT:LongWord = 0;
|
Default number of times a mutex will spin before yielding (Overidden to 0 if CPU count equals 1)
|
Semaphore defaults
SEMAPHORE_SHARED_MEMORY:LongBool;
|
Semaphores are allocated from Shared memory regions if True
|
SEMAPHORE_DEFAULT_MAXIMUM:LongWord = $FFFFFFFF;
|
Default maximum count for a seamphore
|
Synchronizer defaults
SYNCHRONIZER_SHARED_MEMORY:LongBool;
|
Synchronizers are allocated from Shared memory regions if True
|
Condition defaults
CONDITION_SHARED_MEMORY:LongBool;
|
Condition variables are allocated from Shared memory regions if True
|
Completion defaults
COMPLETION_SHARED_MEMORY:LongBool;
|
Completion variables are allocated from Shared memory regions if True
|
Critical section defaults
CRITICAL_SECTION_SHARED_MEMORY:LongBool;
|
Critical Sections are allocated from Shared memory regions if True
|
CRITICAL_SECTION_DEFAULT_SPINCOUNT:LongWord = 0;
|
Default number of times a critical section will spin before waiting (Overidden to 0 if CPU count equals 1)
|
Messageslot defaults
MESSAGESLOT_SHARED_MEMORY:LongBool;
|
Messageslots are allocated from Shared memory regions if True
|
MESSAGESLOT_DEFAULT_MAXIMUM:LongWord = SIZE_1K;
|
Default maximum number of messages that can be stored in a messageslot
|
Mailslot defaults
MAILSLOT_SHARED_MEMORY:LongBool;
|
Mailslots are allocated from Shared memory regions if True
|
Buffer defaults
BUFFER_SHARED_MEMORY:LongBool;
|
Buffers are allocated from Shared memory regions if True
|
BUFFER_MIN_SIZE:LongWord = SizeOf(Pointer);
|
Minimum size of an item in a buffer
|
BUFFER_MAX_SIZE:LongWord = SIZE_4K;
|
Maximum size of an item in a buffer
|
BUFFER_MAX_COUNT:LongWord = SIZE_8K;
|
Maximum number of items in a buffer
|
Event defaults
EVENT_SHARED_MEMORY:LongBool;
|
Events are allocated from Shared memory regions if True
|
Handle defaults
HANDLE_SHARED_MEMORY:LongBool;
|
Handles are allocated from Shared memory regions if True
|
Heap, stack, and thread configuration
Heap alignment
HEAP_MIN_ALIGNMENT:LongWord = SizeOf(Pointer);
|
The default alignment for the Heap Manager (Set by board specific initialization if not default)(Must be a power of 2)
|
HEAP_REQUEST_ALIGNMENT:LongWord = SIZE_4K;
|
The required alignment for Heap Manager requests (eg RequestSharedHeapBlock etc) (Set by board specific initialization if not default)(Must be a power of 2)
|
Heap behaviour
HEAP_NORMAL_SHARED:LongBool;
|
If True then Normal memory is considered Shared memory by the Heap Manager (Default False)
|
HEAP_NORMAL_LOCAL:LongBool;
|
If True then Normal memory is considered Local memory by the Heap Manager (Default False)
|
HEAP_NORMAL_CODE:LongBool;
|
If True then Normal memory is considered Code memory by the Heap Manager (Default False)
|
HEAP_NORMAL_DEVICE:LongBool;
|
If True then Normal memory is considered Device memory by the Heap Manager (Default False)
|
HEAP_NORMAL_NOCACHE:LongBool;
|
If True then Normal memory is considered Non Cached memory by the Heap Manager (Default False)
|
HEAP_NORMAL_NONSHARED:LongBool;
|
If True then Normal memory is considered Non Shared memory by the Heap Manager (Default False)
|
HEAP_LOCAL_CACHE_COHERENT:LongBool;
|
If True then Local memory is considered cache coherent (Default False)
|
HEAP_IRQ_CACHE_COHERENT:LongBool;
|
If True then IRQ memory is considered cache coherent (Default False)
|
HEAP_FIQ_CACHE_COHERENT:LongBool;
|
If True then FIQ memory is considered cache coherent (Default False)
|
Heap locking
HEAP_LOCK_SPIN:LongBool;
|
If True then Heap lock uses Spin instead of Mutex (Default False)
|
Stack alignment
STACK_MIN_ALIGNMENT:LongWord = SizeOf(Pointer);
|
The default alignment for Thread stacks (Set by board specific initialization if not default)(Must be a power of 2)
|
Threadvar alignment
THREADVAR_MIN_ALIGNMENT:LongWord = SizeOf(Pointer);
|
The default alignment for Thread Vars (Set by board specific initialization if not default)
|
Initial heap allocation (Used prior to Memory Manager initialization)
INITIAL_HEAP_SIZE:LongWord = SIZE_64K;
|
The size of the initial heap allocation (Set by board specific initialization if not default)
|
INITIAL_HEAP_BASE:PtrUInt;
|
The base address of the initial heap allocation (Set by StartupHandler)
|
Initial thread defaults
(The first created thread for the primary CPU which becomes either IRQ_THREAD_HANDLE[CPU_ID_0] or FIQ_THREAD_HANDLE[CPU_ID_0])
INITIAL_TLS_SIZE:LongWord = SIZE_16K;
|
Default TLS (Thread Var) block size for the Initial Thread (Calculated TLS size is used for all other threads)
|
INITIAL_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for the Initial Thread
|
INITIAL_STACK_BASE:PtrUInt;
|
The base address (Top) of the stack for the Initial Thread (Set by StartupHandler)
|
Boot thread defaults
(The first created thread for each secondary CPU which becomes either IRQ_THREAD_HANDLE[CPUID] or FIQ_THREAD_HANDLE[CPUID])
BOOT_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for the Boot Threads
|
BOOT_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the Boot Threads (One per CPU, allocated by threads initialization)
|
BOOT_THREAD_HANDLE:array of TThreadHandle;
|
Handles of the Boot Threads (One per CPU, allocated by threads initialization)
|
Idle thread defaults
IDLE_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for Idle Threads
|
IDLE_THREAD_HANDLE:array of TThreadHandle;
|
Handles of the Idle Threads (One per CPU, allocated by threads initialization)
|
IRQ thread defaults
IRQ_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for IRQ Threads
|
IRQ_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the IRQ Threads (One per CPU, allocated by threads initialization)
|
IRQ_THREAD_HANDLE:array of TThreadHandle;
|
Handles of the IRQ Threads (One per CPU, allocated by threads initialization)
|
FIQ thread defaults
FIQ_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for FIQ Threads
|
FIQ_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the FIQ Threads (One per CPU, allocated by threads initialization)
|
FIQ_THREAD_HANDLE:array of TThreadHandle;
|
Handles of the FIQ Threads (One per CPU, allocated by threads initialization)
|
SWI thread defaults
SWI_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for Software Interrupt Handlers (SWI)
|
SWI_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the Software Interrupt Handlers (One per CPU, allocated by threads initialization)
|
SWI_THREAD_HANDLE:array of TThreadHandle;
|
Handles of the Software Interrupt Handler (SWI) Threads (One per CPU, allocated by threads initialization)
|
Thread defaults
THREAD_SHARED_MEMORY:LongBool;
|
Threads are allocated from Shared memory regions if True
|
THREAD_STACK_DEFAULT_SIZE:LongWord = SIZE_256K;
|
Default stack size for all threads (Unless specified during creation)
|
THREAD_STACK_MINIMUM_SIZE:LongWord = SIZE_4K;
|
Minimum thread stack size
|
THREAD_STACK_MAXIMUM_SIZE:LongWord = SIZE_4M;
|
Maximum thread stack size
|
THREAD_STACK_GUARD_ENABLED:LongBool = True;
|
If True then each thread stack includes a guard page to detect stack overflows
|
THREAD_NAME_DEFAULT:String;
|
The default name for new threads
|
THREAD_MESSAGES_MAXIMUM:LongWord = SIZE_256;
|
Maximum number of messages that can be stored in a thread message list
|
ABORT stack defaults
ABORT_STACK_SIZE:LongWord = SIZE_4K;
|
Default stack size for Data and/or Prefetch Abort Handlers
|
ABORT_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the Data and/or Prefetch Abort Handlers (One per CPU, allocated by threads initialization)
|
UNDEFINED stack defaults
UNDEFINED_STACK_SIZE:LongWord = SIZE_4K;
|
Default stack size for Undefined Instruction Handlers
|
UNDEFINED_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the Undefined Instruction Handlers (One per CPU, allocated by threads initialization)
|
Scheduler configuration
Scheduler defaults
SCHEDULER_INTERRUPTS_PER_SECOND:LongWord = 1000;
|
How many scheduler interrupts to schedule per second (1000 equals 1 per millisecond)
|
SCHEDULER_INTERRUPTS_PER_MILLISECOND:LongWord = 1;
|
How many scheduler interrupts occur every millisecond (Normally 1 if SCHEDULER_INTERRUPTS_PER_SECOND is 1000)
|
SCHEDULER_CLOCKS_PER_INTERRUPT:LongWord;
|
How many clock cycles between scheduler interrupts (Normally CLOCK_FREQUENCY div SCHEDULER_INTERRUPTS_PER_SECOND)
|
SCHEDULER_CLOCKS_TOLERANCE:LongWord;
|
How many clock cycles tolerance when scheduling the next scheduler interrupt (Normally SCHEDULER_CLOCKS_PER_INTERRUPT div 10)
|
SCHEDULER_CPU_COUNT:LongWord;
|
The current CPU count used by the scheduler (Requested from CPUGetCount) (Set by threads initialization)
|
SCHEDULER_CPU_MASK:LongWord;
|
The current CPU mask used by the scheduler (Requested from CPUGetMask) (Set by threads initialization)
|
SCHEDULER_CPU_BOOT:LongWord;
|
The current boot CPU Id used by the scheduler (Requested from CPUGetBoot) (Set by threads initialization)
|
SCHEDULER_THREAD_QUANTUM:LongWord = 6;
|
How many scheduler interrupts for the base thread quantum (Actual quantum is adjusted by priority)
|
SCHEDULER_PRIORITY_QUANTUM:array of LongWord;
|
How many scheduler interrupts to adjust the base thread quantum for each priority level (One per priority level, allocated by threads initialization)
|
SCHEDULER_MIGRATION_QUANTUM:LongWord = 100;
|
How many scheduler thread switches between thread migration checks
|
SCHEDULER_STARVATION_QUANTUM:LongWord = 5;
|
How many scheduler thread switches between thread starvation checks
|
SCHEDULER_TERMINATION_INITIAL:LongWord = 100;
|
How many scheduler interrupts to wait between thread termination and stack release
|
SCHEDULER_TERMINATION_QUANTUM:LongWord = 30000;
|
How many scheduler interrupts to wait between thread termination and thread destruction
|
SCHEDULER_MIGRATION_OFFSET:LongWord = 5;
|
The minimum offset between CPU thread counts for a migration to occur
|
SCHEDULER_PRIORITY_MASK:array of LongWord;
|
Mask value of each thread priority level used for determining highest priority thread (One per priority level, allocated by threads initialization)
|
SCHEDULER_FIQ_ENABLED:LongBool;
|
The Scheduler uses Fast Interrupt Requests (FIQ) instead of IRQ
|
SCHEDULER_SWI_ENABLED:LongBool;
|
The Scheduler uses Software Interrupts for rescheduling instead of direct context switch
|
SCHEDULER_SECONDARY_WAIT:LongBool = False;
|
If True all secondary CPUs wait until initialization is completed
|
SCHEDULER_SECONDARY_DISABLED:LongBool;
|
If True all secondary CPUs will be put to sleep during boot
|
SCHEDULER_IDLE_WAIT:LongBool;
|
If True then the idle loop will wait in low power state on each iteration (May affect utilization calculation)
|
SCHEDULER_IDLE_OFFSET:LongWord;
|
Idle loop delay per iteration (Milliseconds)
|
SCHEDULER_IDLE_PER_SECOND:LongWord;
|
How many idle loops complete in one second when no other tasks are running (Set by threads initialization)
|
TIME_TICKS_PER_SCHEDULER_INTERRUPT:LongWord;
|
How many 100 nanosecond time ticks per scheduler interrupt
|
Peripheral configuration (Set by PeripheralInit)
Peripheral addresses
INTERRUPT_REGS_BASE:LongWord;
|
The base address of the Interrupt Controller registers (If Applicable)
|
SYSTEMTIMER_REGS_BASE:LongWord;
|
The base address of the System Timer registers (If Applicable)
|
TIMER_REGS_BASE:LongWord;
|
The base address of the Timer registers (If Applicable)
|
GPIO_REGS_BASE:LongWord;
|
The base address of the GPIO registers (If Applicable)
|
UART_REGS_BASE:LongWord;
|
The base address of the primary UART registers (If Applicable)
|
SPI_REGS_BASE:LongWord;
|
The base address of the primary SPI registers (If Applicable)
|
I2C_REGS_BASE:LongWord;
|
The base address of the primary I2C registers (If Applicable)
|
I2S_REGS_BASE:LongWord;
|
The base address of the primary I2S registers (If Applicable)
|
PWM_REGS_BASE:LongWord;
|
The base address of the primary PWM registers (If Applicable)
|
LED configuration (Set by specific PlatformInit)
Power LED
POWER_LED_PIN:LongWord = GPIO_PIN_UNKNOWN;
|
The GPIO Pin for the Power LED (Where Applicable)
|
POWER_LED_PULL:LongWord = GPIO_PULL_UNKNOWN;
|
The GPIO Pull Select for the Power LED (Where Applicable)
|
POWER_LED_FUNCTION:LongWord = GPIO_FUNCTION_UNKNOWN;
|
The GPIO Function Select for the Power LED (Where Applicable)
|
POWER_LED_ACTIVE_LOW:LongBool;
|
If True the Power LED is Active Low (Clear Pin to Turn On) (Where Applicable)
|
Activity LED
ACTIVITY_LED_PIN:LongWord = GPIO_PIN_UNKNOWN;
|
The GPIO Pin for the Activity LED (Where Applicable)
|
ACTIVITY_LED_PULL:LongWord = GPIO_PULL_UNKNOWN;
|
The GPIO Pull Select for the Activity LED (Where Applicable)
|
ACTIVITY_LED_FUNCTION:LongWord = GPIO_FUNCTION_UNKNOWN;
|
The GPIO Function Select for the Activity LED (Where Applicable)
|
ACTIVITY_LED_ACTIVE_LOW:LongBool;
|
If True the Activity LED is Active Low (Clear Pin to Turn On) (Where Applicable)
|
Console and frameBuffer configuration
Console
CONSOLE_DEFAULT_FORECOLOR:LongWord;
|
The default foreground color for the console
|
CONSOLE_DEFAULT_BACKCOLOR:LongWord;
|
The default background color for the console
|
CONSOLE_DEFAULT_BORDERWIDTH:LongWord;
|
The default border width for the console
|
CONSOLE_DEFAULT_BORDERCOLOR:LongWord;
|
The default border color for the console
|
CONSOLE_DEFAULT_FONT:THandle = INVALID_HANDLE_VALUE;
|
The default Font for the console
|
CONSOLE_DEFAULT_FONT_NAME:String;
|
The default Font name for the console
|
CONSOLE_LINE_WRAP:LongBool = True;
|
If True then wrap long lines to the next line when writing to the console (Sets CONSOLE_FLAG_LINE_WRAP on device/WINDOW_FLAG_LINE_WRAP on windows)
|
CONSOLE_AUTO_SCROLL:LongBool = True;
|
If True then automatically scroll up on reaching the last line of the console (Sets CONSOLE_FLAG_AUTO_SCROLL on device/WINDOW_FLAG_AUTO_SCROLL on windows)
|
CONSOLE_FOCUS_CURSOR:LongBool = True;
|
If True then cursor (caret) is only visible on the focused (active) window (Sets CONSOLE_FLAG_FOCUS_CARET on device / WINDOW_FLAG_FOCUS_CURSOR on windows)
|
CONSOLE_CURSOR_BLINK_RATE:LongWord = 500;
|
Blink rate (in milliseconds) of the console cursor (caret)
|
CONSOLE_DMA_BOX:LongBool = True;
|
If True then use DMA (If available) to draw console window boxes (Sets CONSOLE_FLAG_DMA_BOX on device)
|
CONSOLE_DMA_TEXT:LongBool = False;
|
If True then use DMA (If available) to draw console window text (Sets CONSOLE_FLAG_DMA_TEXT on device)
|
CONSOLE_DMA_LINE:LongBool = True;
|
If True then use DMA (If available) to draw console window lines (Sets CONSOLE_FLAG_DMA_LINE on device)
|
CONSOLE_DMA_FILL:LongBool = True;
|
If True then use DMA (If available) to fill console windows (Sets CONSOLE_FLAG_DMA_FILL on device)
|
CONSOLE_DMA_CLEAR:LongBool = True;
|
If True then use DMA (If available) to clear console windows (Sets CONSOLE_FLAG_DMA_CLEAR on device)
|
CONSOLE_DMA_SCROLL:LongBool = True;
|
If True then use DMA (If available) to scroll console windows (Sets CONSOLE_FLAG_DMA_SCROLL on device)
|
CONSOLE_REGISTER_LOGGING:LongBool = False;
|
If True then register any Console device as a Logging device (Only if Console unit included)
|
CONSOLE_LOGGING_DEFAULT:LongBool = False;
|
If True then a Console device can be the default Logging device
|
CONSOLE_LOGGING_POSITION:LongWord = CONSOLE_POSITION_RIGHT;
|
The default Console Window position for the console Logging device
|
CONSOLE_LOGGING_DEVICE:String;
|
The console device Name (or Desription) to create the Logging window on, if blank create on default device
|
CONSOLE_CRT_POSITION:LongWord = CONSOLE_POSITION_FULL;
|
The default Console Window position for the CRT unit (Only if CRT unit included)
|
CONSOLE_VIDEO_POSITION:LongWord = CONSOLE_POSITION_FULL;
|
The default Console Window position for the ConsoleVideo unit (Only if ConsoleVideo unit included)
|
CONSOLE_VIDEO_DEVICE:String;
|
The console device Name (or Description) to create the ConsoleVideo window on, if blank create on default device
|
CONSOLE_VIDEO_WINDOW:THandle = INVALID_HANDLE_VALUE;
|
The console window used or created by the ConsoleVideo unit
|
CONSOLE_VIDEO_FONT:String;
|
The font name to use for the ConsoleVideo window, if blank use the default font (Default8x16)
|
Window
WINDOW_DEFAULT_FORECOLOR:LongWord;
|
The default foreground color for console windows
|
WINDOW_DEFAULT_BACKCOLOR:LongWord;
|
The default background color for console windows
|
WINDOW_DEFAULT_BORDERWIDTH:LongWord;
|
The default border width for console windows
|
WINDOW_DEFAULT_BORDERCOLOR:LongWord;
|
The default border color for console windows
|
WINDOW_DEFAULT_ACTIVEBORDER:LongWord;
|
The default active border color for console windows
|
WINDOW_DEFAULT_FONT:THandle = INVALID_HANDLE_VALUE;
|
The default Font for console windows
|
WINDOW_DEFAULT_FONT_NAME:String;
|
The default Font name for console windows
|
Framebuffer console
FRAMEBUFFER_CONSOLE_AUTOCREATE:LongBool = True;
|
If True then auto create a console on any framebuffer device (Only if Console unit included)
|
FRAMEBUFFER_CONSOLE_DEFAULT_DESKTOPOFFSET:LongWord;
|
The default desktop offset for the framebuffer console
|
FRAMEBUFFER_CONSOLE_DEFAULT_DESKTOPCOLOR:LongWord;
|
The default desktop color for the framebuffer console
|
Framebuffer
FRAMEBUFFER_DEFAULT_DEPTH:LongWord = FRAMEBUFFER_DEPTH_32;
|
The default (Detected/Configured) Framebuffer depth in bits per pixel
|
FRAMEBUFFER_DEFAULT_ORDER:LongWord = FRAMEBUFFER_ORDER_RGB;
|
The default (Detected/Configured) Framebuffer pixel order
|
FRAMEBUFFER_DEFAULT_MODE:LongWord = FRAMEBUFFER_MODE_ENABLED;
|
The default (Detected/Configured) Framebuffer alpha mode
|
FRAMEBUFFER_DEFAULT_WIDTH:LongWord;
|
The default (Detected/Configured) Framebuffer width in pixels
|
FRAMEBUFFER_DEFAULT_HEIGHT:LongWord;
|
The default (Detected/Configured) Framebuffer height in pixels
|
FRAMEBUFFER_DEFAULT_OFFSET_X:LongWord;
|
The default (Configured) Framebuffer X offset in pixels
|
FRAMEBUFFER_DEFAULT_OFFSET_Y:LongWord;
|
The default (Configured) Framebuffer Y offset in pixels
|
FRAMEBUFFER_DEFAULT_OVERSCAN_TOP:LongWord;
|
The default (Detected/Configured) Framebuffer Top overscan in pixels
|
FRAMEBUFFER_DEFAULT_OVERSCAN_BOTTOM:LongWord;
|
The default (Detected/Configured) Framebuffer Bottom overscan in pixels
|
FRAMEBUFFER_DEFAULT_OVERSCAN_LEFT:LongWord;
|
The default (Detected/Configured) Framebuffer Left overscan in pixels
|
FRAMEBUFFER_DEFAULT_OVERSCAN_RIGHT:LongWord;
|
The default (Detected/Configured) Framebuffer Right overscan in pixels
|
FRAMEBUFFER_DEFAULT_ROTATION:LongWord = FRAMEBUFFER_ROTATION_0;
|
The default (Detected/Configured) Framebuffer rotation on degress (Where Applicable)
|
Command line and environment configuration
Command line
KERNEL_NAME:PChar;
|
The name of the Kernel image (Returned by ParamStr(0) or argv[0])
|
KERNEL_CONFIG:PChar;
|
The name of the Kernel configuration file (Where Applicable)
|
KERNEL_COMMAND:PChar;
|
The name of the Kernel command line file (Where Applicable)
|
FIRMWARE_FILES:PChar;
|
The name of the Firmare files (Where Applicable)
|
Environment
ENVIRONMENT_STRING_COUNT:LongWord = SIZE_64;
|
How many strings are allocated in the environment block (for Get/SetEnvironmentVariable)
|
Timezone configuration
TIMEZONE_TIME_OFFSET:LongInt;
|
The current time offset between UTC and Local time (Minutes)
|
TIMEZONE_TIME_ADJUST:LongInt;
|
The current time offset between Local and Adjusted time (Minutes)
|
TIMEZONE_UPDATE_LAST:Int64;
|
The clock time of the last timezone update check
|
TIMEZONE_UPDATE_CURRENT:LongBool;
|
If true then a timezone update check is in progress
|
TIMEZONE_DEFAULT_NAME:String;
|
The name of the default timezone
|
DMA configuration
DMA defaults
DMA_ALIGNMENT:LongWord;
|
The default alignment for DMA memory allocations
|
DMA_MULTIPLIER:LongWord;
|
The default multiplier for DMA memory allocations
|
DMA_SHARED_MEMORY:LongBool;
|
DMA control blocks and DMA buffers are allocated from Shared memory regions if True
|
DMA_NOCACHE_MEMORY:LongBool;
|
DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True
|
DMA_BUS_ADDRESSES:LongBool;
|
DMA control blocks and DMA buffers are referenced by Bus addresses if True
|
DMA_CACHE_COHERENT:LongBool;
|
DMA control blocks and DMA buffers are considered cache coherent if True
|
Device configuration
Device defaults
DEVICE_SHARED_MEMORY:LongBool;
|
Devices are allocated from Shared memory regions if True
|
DEVICE_REGISTER_CLOCK:LongBool = False;
|
If True then register the default clock device handlers (Default False)
|
DEVICE_REGISTER_TIMER:LongBool = True;
|
If True then register the default timer device handlers
|
DEVICE_REGISTER_RANDOM:LongBool = True;
|
If True then register the default random device handlers
|
DEVICE_REGISTER_MAILBOX:LongBool = True;
|
If True then register the default mailbox device handlers
|
DEVICE_REGISTER_WATCHDOG:LongBool = True;
|
If True then register the default watchdog device handlers
|
Driver configuration
Driver defaults
DRIVER_SHARED_MEMORY:LongBool;
|
Drivers are allocated from Shared memory regions if True
|
Host configuration
Host defaults
HOST_SHARED_MEMORY:LongBool;
|
Hosts are allocated from Shared memory regions if True
|
Serial configuration
SERIAL_REGISTER_LOGGING:LongBool = False;
|
If True then register any Serial device as a Logging device (Only if Serial unit included)
|
SERIAL_LOGGING_DEFAULT:LongBool = False;
|
If True then a Serial device can be the default Logging device
|
SERIAL_LOGGING_PARAMETERS:String = '0,N,8,1';
|
The default serial settings for the serial logging device (BaudRate,Parity,DataBits,StopBits)(BaudRate 0 equals use default rate)
|
Logging configuration
Logging defaults
LOGGING_DIRECT_ENABLE:LongBool;
|
If True then logging output is written directly and not scheduled via the logging thread
|
LOGGING_INCLUDE_COUNTER:LongBool = True;
|
If True then logging output includes an incrementing counter to detect missed entries
|
LOGGING_INCLUDE_DATETIME:LongBool;
|
If True then logging output includes the current date and time for each entry
|
LOGGING_INCLUDE_TICKCOUNT:LongBool;
|
If True then logging output includes the 64-bit tick count value for each entry
|
LOGGING_MESSAGESLOT_MAXIMUM:LongWord = SIZE_8K;
|
Maximum number of messages for the logging messageslot
|
Syscalls configuration
SYSCALLS_HEAP_BASE:PtrUInt = $C0000000;
|
The starting address for the dynamic C library heap space (Only if Syscalls unit included)(0 equals use static heap space only)
|
SYSCALLS_HEAP_MIN:LongWord = SIZE_2M;
|
The minimum size of the dynamic C library heap space (Only if Syscalls unit included)(Or the total size if using static heap space)
|
SYSCALLS_HEAP_MAX:LongWord = SIZE_1G;
|
The maximum size of the dynamic C library heap space (Only if Syscalls unit included)(Ignored if using static heap space only)
|
SYSCALLS_HEAP_BLOCKSIZE:LongWord = SIZE_1M;
|
The block size to request from the heap manager on each expansion of the dynamic C library heap space (Only if Syscalls unit included)
|
Generic Peripheral configuration (Set by PeripheralInit)
GPIO
GPIO_PIN_COUNT:LongWord;
|
The number of GPIO pins available on this board
|
Virtual GPIO
VIRTUAL_GPIO_PIN_COUNT:LongWord;
|
The number of Virtual GPIO pins available on this board
|
Keyboard
KEYBOARD_NUM_LOCK_DEFAULT:LongBool = True;
|
If True then set Num Lock to On by default for all keyboards (Default: True)
|
KEYBOARD_CAPS_LOCK_DEFAULT:LongBool = False;
|
If True then set Caps Lock to On by default for all keyboards
|
KEYBOARD_SCROLL_LOCK_DEFAULT:LongBool = False;
|
If True then set Scroll Lock to On by default for all keyboards
|
KEYBOARD_CTRL_ALT_IS_ALTGR:LongBool = False;
|
If True then pressing Ctrl+Alt acts as the AltGr key
|
KEYBOARD_SHIFT_IS_CAPS_LOCK_OFF:LongBool = False;
|
If True then pressing Shift turns Off Caps Lock
|
Mouse
MOUSE_SWAP_BUTTONS_DEFAULT:LongBool = False;
|
If True then set Swap Buttons (Left <-> Right) to On by default for all mice
|
Touch
TOUCH_MOUSE_DATA_DEFAULT:LongBool = True;
|
If True then set all touch devices to add mouse data events for compatibility (Default: True)
|
USB
USB_AUTOSTART:LongBool = True;
|
If True then auto start the USB subsystem on boot (Only if USB unit included)
|
USB_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread
|
USB_DMA_ALIGNMENT:LongWord;
|
The default alignment for USB DMA memory allocations
|
USB_DMA_MULTIPLIER:LongWord;
|
The default multiplier for USB DMA memory allocations
|
USB_DMA_SHARED_MEMORY:LongBool;
|
USB DMA buffers are allocated from Shared memory regions if True
|
USB_DMA_NOCACHE_MEMORY:LongBool;
|
USB DMA buffers are allocated from Non Cached memory regions if True
|
USB_DMA_BUS_ADDRESSES:LongBool;
|
USB DMA buffers are referenced by Bus addresses if True
|
USB_DMA_CACHE_COHERENT:LongBool;
|
USB DMA buffers are considered cache coherent if True
|
MMC
MMC_AUTOSTART:LongBool = True;
|
If True then auto start the MMC/SD subsystem on boot (Only if MMC unit included)
|
MMC_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread
|
MMC_DMA_ALIGNMENT:LongWord;
|
The default alignment for MMC DMA memory allocations
|
MMC_DMA_MULTIPLIER:LongWord;
|
The default multiplier for MMC DMA memory allocations
|
MMC_DMA_SHARED_MEMORY:LongBool;
|
MMC DMA buffers are allocated from Shared memory regions if True
|
MMC_DMA_NOCACHE_MEMORY:LongBool;
|
MMC DMA buffers are allocated from Non Cached memory regions if True
|
MMC_DMA_BUS_ADDRESSES:LongBool;
|
MMC DMA buffers are referenced by Bus addresses if True
|
MMC_DMA_CACHE_COHERENT:LongBool;
|
MMC DMA buffers are considered cache coherent if True
|
USB hub
USB_HUB_MESSAGESLOT_MAXIMUM:LongWord = SIZE_512;
|
Maximum number of messages for the USB hub messageslot
|
USB_HUB_REGISTER_DRIVER:LongBool = True;
|
If True then register the USB HUB driver during boot (Only if USB unit included) Note: USB cannot function correctly without a hub driver
|
USB keyboard
USB_KEYBOARD_POLLING_INTERVAL:LongWord = 10;
|
Override the default polling interval for a USB keyboard (Milliseconds)
|
USB_KEYBOARD_REGISTER_DRIVER:LongBool = True;
|
If True then register the USB Keyboard driver during boot (Only if Keyboard unit included)
|
USB mouse
USB_MOUSE_POLLING_INTERVAL:LongWord = 10;
|
Override the default polling interval for a USB mouse (Milliseconds)
|
USB_MOUSE_REGISTER_DRIVER:LongBool = True;
|
If True then register the USB Mouse driver during boot (Only if Mouse unit included)
|
USB storage
USB_STORAGE_FORCE_REMOVABLE:LongBool;
|
If True then all USB storage devices will be assumed to be removable
|
USB_STORAGE_REGISTER_DRIVER:LongBool = True;
|
If True then register the USB Storage driver during boot (Only if Storage unit included)
|
Specific Peripheral configuration (Set by PeripheralInit)
DWCOTG (Synopsys DesignWare Hi-Speed USB 2.0 On-The-Go Controller)
DWCOTG_IRQ:LongWord;
|
The IRQ number of the DWCOTG device
|
DWCOTG_POWER_ID:LongWord;
|
The power Id of the DWCOTG device
|
DWCOTG_REGS_BASE:LongWord;
|
The base address of the DWCOTG registers
|
DWCOTG_FIQ_ENABLED:LongBool;
|
The DWCOTG device uses Fast Interrupt Requests (FIQ) instead of IRQ
|
DWCOTG_DMA_ALIGNMENT:LongWord;
|
The default alignment for DWCOTG DMA memory allocations
|
DWCOTG_DMA_MULTIPLIER:LongWord;
|
The default multiplier for DWCOTG DMA memory allocations
|
DWCOTG_DMA_SHARED_MEMORY:LongBool;
|
DWCOTG DMA buffers are allocated from Shared memory regions if True
|
DWCOTG_DMA_NOCACHE_MEMORY:LongBool;
|
DWCOTG DMA buffers are allocated from Non Cached memory regions if True
|
DWCOTG_DMA_BUS_ADDRESSES:LongBool;
|
DWCOTG DMA buffers are referenced by Bus addresses if True
|
DWCOTG_DMA_CACHE_COHERENT:LongBool;
|
DWCOTG DMA buffers are considered cache coherent if True
|
DWCOTG_HOST_FRAME_INTERVAL:LongBool;
|
Update the host frame interval register on root port enable if True
|
SMSC95XX (SMSC LAN95xx USB Ethernet Driver)
SMSC95XX_MAC_ADDRESS:String;
|
The preconfigured MAC address for a SMSC95XX device
|
BCM2708
BCM2708DMA_ALIGNMENT:LongWord;
|
The default alignment for BCM2708 DMA memory allocations
|
BCM2708DMA_MULTIPLIER:LongWord;
|
The default multiplier for BCM2708 DMA memory allocations
|
BCM2708DMA_SHARED_MEMORY:LongBool;
|
BCM2708 DMA control blocks and DMA buffers are allocated from Shared memory regions if True
|
BCM2708DMA_NOCACHE_MEMORY:LongBool;
|
BCM2708 DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True
|
BCM2708DMA_BUS_ADDRESSES:LongBool;
|
BCM2708 DMA control blocks and DMA buffers are referenced by Bus addresses if True
|
BCM2708DMA_CACHE_COHERENT:LongBool;
|
BCM2708 DMA control blocks and DMA buffers are considered cache coherent if True
|
BCM2708I2C_COMBINED_WRITEREAD:LongBool;
|
If True then the BCM2708 I2C driver can do combined Write/Read transactions
|
BCM2708GPIO_FIQ_ENABLED:LongBool;
|
The BCM2708 GPIO device uses Fast Interrupt Requests (FIQ) instead of IRQ. Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple.
|
BCM2708GPIO_FIQ_BANK_NO:LongWord;
|
The BCM2708 GPIO bank number for Fast Interrupt Requests (FIQ) (0 or 1) (Only if Enabled). Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple.
|
BCM2708SDHCI_FIQ_ENABLED:LongBool;
|
The BCM2708 SDHCI device uses Fast Interrupt Requests (FIQ) instead of IRQ
|
BCM2708ARM_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2708 ARM Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ
|
BCM2708FRAMEBUFFER_ALIGNMENT:LongWord;
|
The memory alignment for the BCM2708 Framebuffer device
|
BCM2708FRAMEBUFFER_CACHED:LongBool;
|
If True then the BCM2708 Framebuffer device is in cached memory (Requires CleanCacheRange on write)
|
BCM2708_REGISTER_SPI0:LongBool = True;
|
If True then register the BCM2708 SPI0 device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_SPI1:LongBool = True;
|
If True then register the BCM2708 SPI1 device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_SPI2:LongBool = True;
|
If True then register the BCM2708 SPI2 device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_I2C0:LongBool = True;
|
If True then register the BCM2708 I2C0 device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_I2C1:LongBool = True;
|
If True then register the BCM2708 I2C1 device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_DMA:LongBool = True;
|
If True then register the BCM2708 DMA host during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_PWM:LongBool = True;
|
If True then register the BCM2708 PWM device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_PCM:LongBool = True;
|
If True then register the BCM2708 PCM device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_GPIO:LongBool = True;
|
If True then register the BCM2708 GPIO device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_UART0:LongBool = True;
|
If True then register the BCM2708 UART0 device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_UART1:LongBool = True;
|
If True then register the BCM2708 UART1 device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_SDHCI:LongBool = True;
|
If True then register the BCM2708 SDHCI host during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_SPISLAVE:LongBool = True;
|
If True then register the BCM2708 SPI slave device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_I2CSLAVE:LongBool = True;
|
If True then register the BCM2708 I2C slave device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_PWMAUDIO:LongBool = True;
|
If True then register the BCM2708 PWM Audio device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_SYS_CLOCK:LongBool = True;
|
If True then register the BCM2708 System Timer Clock device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_ARM_CLOCK:LongBool = True;
|
If True then register the BCM2708 ARM Timer Clock device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_ARM_TIMER:LongBool = True;
|
If True then register the BCM2708 ARM Timer device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_RANDOM:LongBool = True;
|
If True then register the BCM2708 Random device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_MAILBOX:LongBool = True;
|
If True then register the BCM2708 Mailbox device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_WATCHDOG:LongBool = True;
|
If True then register the BCM2708 Watchdog device during boot (Only if BCM2708 unit included)
|
BCM2708_REGISTER_FRAMEBUFFER:LongBool = True;
|
If True then register the BCM2708 Framebuffer device during boot (Only if BCM2708 unit included)
|
BCM2709
BCM2709DMA_ALIGNMENT:LongWord;
|
The default alignment for BCM2709 DMA memory allocations
|
BCM2709DMA_MULTIPLIER:LongWord;
|
The default multiplier for BCM2709 DMA memory allocations
|
BCM2709DMA_SHARED_MEMORY:LongBool;
|
BCM2709 DMA control blocks and DMA buffers are allocated from Shared memory regions if True
|
BCM2709DMA_NOCACHE_MEMORY:LongBool;
|
BCM2709 DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True
|
BCM2709DMA_BUS_ADDRESSES:LongBool;
|
BCM2709 DMA control blocks and DMA buffers are referenced by Bus addresses if True
|
BCM2709DMA_CACHE_COHERENT:LongBool;
|
BCM2709 DMA control blocks and DMA buffers are considered cache coherent if True
|
BCM2709I2C_COMBINED_WRITEREAD:LongBool;
|
If True then the BCM2709 I2C driver can do combined Write/Read transactions
|
BCM2709GPIO_FIQ_ENABLED:LongBool;
|
The BCM2709 GPIO device uses Fast Interrupt Requests (FIQ) instead of IRQ. Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple.
|
BCM2709GPIO_FIQ_BANK_NO:LongWord;
|
The BCM2709 GPIO bank number for Fast Interrupt Requests (FIQ) (0 or 1) (Only if Enabled). Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple.
|
BCM2709SDHCI_FIQ_ENABLED:LongBool;
|
The BCM2709 SDHCI device uses Fast Interrupt Requests (FIQ) instead of IRQ
|
BCM2709ARM_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2709 ARM Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ
|
BCM2709LOCAL_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2709 Local Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ
|
BCM2709FRAMEBUFFER_ALIGNMENT:LongWord;
|
The memory alignment for the BCM2709 Framebuffer device
|
BCM2709FRAMEBUFFER_CACHED:LongBool;
|
If True then the BCM2709 Framebuffer device is in cached memory (Requires CleanCacheRange on write)
|
BCM2709_REGISTER_SPI0:LongBool = True;
|
If True then register the BCM2709 SPI0 device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_SPI1:LongBool = True;
|
If True then register the BCM2709 SPI1 device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_SPI2:LongBool = True;
|
If True then register the BCM2709 SPI2 device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_I2C0:LongBool = True;
|
If True then register the BCM2709 I2C0 device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_I2C1:LongBool = True;
|
If True then register the BCM2709 I2C1 device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_DMA:LongBool = True;
|
If True then register the BCM2709 DMA host during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_PWM:LongBool = True;
|
If True then register the BCM2709 PWM device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_PCM:LongBool = True;
|
If True then register the BCM2709 PCM device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_GPIO:LongBool = True;
|
If True then register the BCM2709 GPIO device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_UART0:LongBool = True;
|
If True then register the BCM2709 UART0 device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_UART1:LongBool = True;
|
If True then register the BCM2709 UART1 device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_SDHCI:LongBool = True;
|
If True then register the BCM2709 SDHCI host during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_SPISLAVE:LongBool = True;
|
If True then register the BCM2709 SPI slave device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_I2CSLAVE:LongBool = True;
|
If True then register the BCM2709 I2C slave device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_PWMAUDIO:LongBool = True;
|
If True then register the BCM2709 PWM Audio device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_SYS_CLOCK:LongBool = True;
|
If True then register the BCM2709 System Timer Clock device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_ARM_CLOCK:LongBool = True;
|
If True then register the BCM2709 ARM Timer Clock device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_LOCAL_CLOCK:LongBool = True;
|
If True then register the BCM2709 Local Timer Clock device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_ARM_TIMER:LongBool = True;
|
If True then register the BCM2709 ARM Timer device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_LOCAL_TIMER:LongBool = True;
|
If True then register the BCM2709 Local Timer device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_RANDOM:LongBool = True;
|
If True then register the BCM2709 Random device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_MAILBOX:LongBool = True;
|
If True then register the BCM2709 Mailbox device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_WATCHDOG:LongBool = True;
|
If True then register the BCM2709 Watchdog device during boot (Only if BCM2709 unit included)
|
BCM2709_REGISTER_FRAMEBUFFER:LongBool = True;
|
If True then register the BCM2709 Framebuffer device during boot (Only if BCM2709 unit included)
|
BCM2710
BCM2710DMA_ALIGNMENT:LongWord;
|
The default alignment for BCM2710 DMA memory allocations
|
BCM2710DMA_MULTIPLIER:LongWord;
|
The default multiplier for BCM2710 DMA memory allocations
|
BCM2710DMA_SHARED_MEMORY:LongBool;
|
BCM2710 DMA control blocks and DMA buffers are allocated from Shared memory regions if True
|
BCM2710DMA_NOCACHE_MEMORY:LongBool;
|
BCM2710 DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True
|
BCM2710DMA_BUS_ADDRESSES:LongBool;
|
BCM2710 DMA control blocks and DMA buffers are referenced by Bus addresses if True
|
BCM2710DMA_CACHE_COHERENT:LongBool;
|
BCM2710 DMA control blocks and DMA buffers are considered cache coherent if True
|
BCM2710I2C_COMBINED_WRITEREAD:LongBool;
|
If True then the BCM2710 I2C driver can do combined Write/Read transactions
|
BCM2710GPIO_FIQ_ENABLED:LongBool;
|
The BCM2710 GPIO device uses Fast Interrupt Requests (FIQ) instead of IRQ. Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple.
|
BCM2710GPIO_FIQ_BANK_NO:LongWord;
|
The BCM2710 GPIO bank number for Fast Interrupt Requests (FIQ) (0 or 1) (Only if Enabled). Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple}.
|
BCM2710SDHCI_FIQ_ENABLED:LongBool;
|
The BCM2710 SDHCI device uses Fast Interrupt Requests (FIQ) instead of IRQ
|
BCM2710ARM_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2710 ARM Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ
|
BCM2710LOCAL_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2710 Local Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ
|
BCM2710FRAMEBUFFER_ALIGNMENT:LongWord;
|
The memory alignment for the BCM2710 Framebuffer device
|
BCM2710FRAMEBUFFER_CACHED:LongBool;
|
If True then the BCM2710 Framebuffer device is in cached memory (Requires CleanCacheRange on write)
|
BCM2710_REGISTER_SPI0:LongBool = True;
|
If True then register the BCM2710 SPI0 device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_SPI1:LongBool = True;
|
If True then register the BCM2710 SPI1 device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_SPI2:LongBool = True;
|
If True then register the BCM2710 SPI2 device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_I2C0:LongBool = True;
|
If True then register the BCM2710 I2C0 device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_I2C1:LongBool = True;
|
If True then register the BCM2710 I2C1 device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_DMA:LongBool = True;
|
If True then register the BCM2710 DMA host during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_PWM:LongBool = True;
|
If True then register the BCM2710 PWM device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_PCM:LongBool = True;
|
If True then register the BCM2710 PCM device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_GPIO:LongBool = True;
|
If True then register the BCM2710 GPIO device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_UART0:LongBool = True;
|
If True then register the BCM2710 UART0 device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_UART1:LongBool = True;
|
If True then register the BCM2710 UART1 device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_SDHCI:LongBool = True;
|
If True then register the BCM2710 SDHCI host during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_SPISLAVE:LongBool = True;
|
If True then register the BCM2710 SPI slave device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_I2CSLAVE:LongBool = True;
|
If True then register the BCM2710 I2C slave device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_PWMAUDIO:LongBool = True;
|
If True then register the BCM2710 PWM Audio device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_SYS_CLOCK:LongBool = True;
|
If True then register the BCM2710 System Timer Clock device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_ARM_CLOCK:LongBool = True;
|
If True then register the BCM2710 ARM Timer Clock device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_LOCAL_CLOCK:LongBool = True;
|
If True then register the BCM2710 Local Timer Clock device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_ARM_TIMER:LongBool = True;
|
If True then register the BCM2710 ARM Timer device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_LOCAL_TIMER:LongBool = True;
|
If True then register the BCM2710 Local Timer device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_RANDOM:LongBool = True;
|
If True then register the BCM2710 Random device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_MAILBOX:LongBool = True;
|
If True then register the BCM2710 Mailbox device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_WATCHDOG:LongBool = True;
|
If True then register the BCM2710 Watchdog device during boot (Only if BCM2710 unit included)
|
BCM2710_REGISTER_FRAMEBUFFER:LongBool = True;
|
If True then register the BCM2710 Framebuffer device during boot (Only if BCM2710 unit included)
|
QEMUVPB
QEMUVPB_REGISTER_DMA:LongBool = True;
|
If True then register the QEMU VersatilePB DMA device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_UART0:LongBool = True;
|
If True then register the QEMU VersatilePB UART0 device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_UART1:LongBool = True;
|
If True then register the QEMU VersatilePB UART1 device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_UART2:LongBool = True;
|
If True then register the QEMU VersatilePB UART2 device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_UART3:LongBool = True;
|
If True then register the QEMU VersatilePB UART3 device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_RTC:LongBool = True;
|
If True then register the QEMU VersatilePB RTC device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_CLOCK:LongBool = True;
|
If True then register the QEMU VersatilePB 24MHz Clock device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_MMC0:LongBool = True;
|
If True then register the QEMU VersatilePB MMC0 device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_MMC1:LongBool = True;
|
If True then register the QEMU VersatilePB MMC1 device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_NETWORK:LongBool = True;
|
If True then register the QEMU VersatilePB Network device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_FRAMEBUFFER:LongBool = True;
|
If True then register the QEMU VersatilePB Framebuffer device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_MOUSE:LongBool = True;
|
If True then register the QEMU VersatilePB Mouse device during boot (Only if QEMUVersatilePB unit included)
|
QEMUVPB_REGISTER_KEYBOARD:LongBool = True;
|
If True then register the QEMU VersatilePB Keyboard device during boot (Only if QEMUVersatilePB unit included)
|
Country, codepage, locale and language configuration
COUNTRY_DEFAULT:LongWord = 0;
|
The current default country code
|
CODEPAGE_OEM_DEFAULT:LongWord = 437;
|
The current OEM default code page
|
CODEPAGE_ANSI_DEFAULT:LongWord = 1252;
|
The current ANSI default code page
|
CODEPAGE_CONSOLE_INPUT:LongWord = 1252;
|
The current console input code page
|
CODEPAGE_CONSOLE_OUTPUT:LongWord = 1252;
|
The current console output code page
|
LOCALE_DEFAULT:LongWord;
|
(LCID) The current default locale
|
LANGUAGE_DEFAULT:Word;
|
(LANGID) The current default language identifier
|
KEYMAP_DEFAULT:String = 'US';
|
The name of the default keymap
|
Disk, controller, filesystem and cache configuration
Filesystem configuration
FILESYS_AUTOSTART:LongBool = True;
|
If True then auto start the filesystem on boot (Only if FileSystem unit included)
|
FILESYS_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread
|
FILESYS_REGISTER_LOGGING:LongBool = True;
|
If True then register filesystem as a Logging device on boot (Only if FileSystem unit included)
|
FILESYS_LOGGING_DEFAULT:LongBool = False;
|
If True then filesystem can be the default Logging device (Only if FileSystem unit included)
|
FILESYS_LOGGING_FILE:String;
|
The name of the file to log messages to
|
FILESYS_LOGGING_MAXSIZE:LongWord;
|
The maximum size of the logging file before rollover (0 for no maximum)
|
FILESYS_LOGGING_MAXCOPIES:LongWord;
|
The number of old logging files to keep on rollover (0 for no copies)
|
Cache configuration
FILESYS_CACHE_SIZE:LongWord = SIZE_16M;
|
The default filesystem cache size
|
FILESYS_CACHE_PAGE:LongWord = SIZE_32K;
|
The size of a filesystem cache page
|
FILESYS_CACHE_KEYS:LongWord = 12;
|
The number of hash keys for the filesystem cache
|
FILESYS_CACHE_MODE:LongWord = FILESYS_CACHE_MODE_READWRITE;
|
The default filesystem cache mode
|
Filesystem support configuration
FILESYS_FLOPPY_ENABLED:LongBool = True;
|
Enable filesystem floppy drive support
|
FILESYS_DRIVES_ENABLED:LongBool = True;
|
Enable filesystem drive letter support
|
FILESYS_ATA_ENABLED:LongBool = True;
|
Enable filesystem ATA controller support
|
FILESYS_ATAPI_ENABLED:LongBool = True;
|
Enable filesystem ATAPI controller support
|
FILESYS_SCSI_ENABLED:LongBool = True;
|
Enable filesystem SCSI controller support
|
FILESYS_USB_ENABLED:LongBool = True;
|
Enable filesystem USB controller support
|
FILESYS_MMC_ENABLED:LongBool = True;
|
Enable filesystem MMC/SD controller support
|
FILESYS_VIRTUAL_ENABLED:LongBool = True;
|
Enable filesystem virtual disk controller support
|
FILESYS_FAT_ENABLED:LongBool = True;
|
Enable FAT filesystem support
|
FILESYS_NTFS_ENABLED:LongBool = True;
|
Enable NTFS filesystem support
|
FILESYS_EXTFS_ENABLED:LongBool = True;
|
Enable EXTFS filesystem support
|
FILESYS_CDFS_ENABLED:LongBool = True;
|
Enable CDFS filesystem support
|
FILESYS_CASE_FLAGS:LongBool = True;
|
Enable support for case flags in filesystem entries (Where Applicable)
|
FILESYS_LONG_NAMES:LongBool = True;
|
Enable support for long file names (greater than 8.3) (Where Applicable)
|
FILESYS_OEM_CONVERT:LongBool = True;
|
Enable support for ANSI to OEM/OEM to ANSI character set conversion (Where Applicable)
|
FILESYS_NUMERIC_TAIL:LongBool = True;
|
Enable support for numeric tail on generated short file names (Where Applicable)
|
FILESYS_DIRTY_CHECK:LongBool = True;
|
Enable support for dirty check on volume mount (Where Applicable)
|
FILESYS_QUICK_CHECK:LongBool = True;
|
Enable support for quick volume checking (Where Applicable)
|
FILESYS_UPDATE_ACCESSTIME:LongBool = True;
|
Enable support for updating last access time field (Where Applicable)
|
FILESYS_GLOBAL_CURRENTDIR:LongBool = False;
|
If True then make the current directory global instead of per thread (Default False)
|
FAT configuration
FAT_DEFAULT:LongBool = True;
|
Enable default recognition of non partitioned media as FAT
|
FAT_CASE_FLAGS:LongBool = True;
|
Enable support for case flags in FAT filesystem entries
|
FAT_LONG_NAMES:LongBool = True;
|
Enable support for FAT long file names (greater than 8.3)
|
FAT_OEM_CONVERT:LongBool = True;
|
Enable support for FAT ANSI to OEM/OEM to ANSI character set conversion
|
FAT_NUMERIC_TAIL:LongBool = True;
|
Enable support for numeric tail on generated FAT short file names
|
FAT_DIRTY_CHECK:LongBool = True;
|
Enable support for dirty check on FAT volume mount
|
FAT_QUICK_CHECK:LongBool = True;
|
Enable support for quick FAT volume checking
|
NTFS configuration
NTFS_DEFAULT:LongBool = False;
|
Enable default recognition of non partitioned media as NTFS
|
NTFS_RESET_LOG:LongBool = True;
|
Reset the NTFS Log File if it was dirty on mount
|
NTFS_FIXED_ZONE:LongBool = True;
|
Use the Windows Vista/2008/7 Fixed MFT Zone values (not the Windows NT/2000/XP percentages)
|
NTFS_ALT_LAYOUT:LongBool = False;
|
Use the Windows Vista/2008/7 Volume Layout values (not the Windows NT/2000/XP layout)
|
NTFS_LENIENT:LongBool = False;
|
Allow certain non fatal errors to be ignored
|
NTFS_DEFENSIVE:LongBool = False;
|
Perform more defensive checking of structures and values
|
NTFS_AGGRESSIVE:LongBool = False;
|
Attempt to correct certain errors during operation
|
NTFS_NO_SHORT_NAMES:LongBool = False;
|
Do not create alternate short file names
|
NTFS_NULL_SECURITY:LongBool = False;
|
Do not apply security when creating files and folders (only apply security when SetSecurity called)
|
NTFS_DEFAULT_SECURITY:LongBool = False;
|
Apply default permissions (Everyone, Full Control) when creating files and folders
|
EXTFS configuration
EXTFS_DEFAULT:LongBool = False;
|
Enable default recognition of non partitioned media as EXTFS
|
CDFS configuration
CDFS_DEFAULT:LongBool = False;
|
Enable default recognition of non partitioned media as CDFS
|
CDFS_LONG_NAMES:LongBool = True;
|
Enable support for CDFS long file names (greater than 8.3)
|
CDFS_SWAP_SERIAL:LongBool = False;
|
Swap the byte order of the CDFS serial number (Set to True for Windows 9x compatibility)
|
Network, transport, protocol and sockets configuration
Host configuration
HOST_NAME:String = 'localhost';
|
The network host name of the local machine
|
HOST_DOMAIN:String = 'localdomain';
|
The network domain name of the local machine
|
Winsock configuration
WINSOCK_NAME:String = 'Ultibo Winsock Version 1.1';
|
|
WINSOCK_LOW_VERSION:Word = $101;
|
|
WINSOCK_HIGH_VERSION:Word = $101;
|
|
WINSOCK_BUILD_VERSION:String = '1.10.43';
|
|
WINSOCK_MAX_SOCKETS:Word = SIZE_1K;
|
|
WINSOCK_MAX_UDP:Word = SIZE_8K;
|
|
WINSOCK_AUTOSTART:LongBool = True;
|
If True then auto start the Winsock layer on boot (Only if Winsock unit included)
|
WINSOCK_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread
|
Winsock2 configuration
WINSOCK2_NAME:String = 'Ultibo Winsock Version 2.2';
|
|
WINSOCK2_LOW_VERSION:Word = $101;
|
|
WINSOCK2_HIGH_VERSION:Word = $202;
|
|
WINSOCK2_BUILD_VERSION:String = '2.20.03';
|
|
WINSOCK2_MAX_SOCKETS:Word = SIZE_1K;
|
Note: As per Winsock2 specification, this value is for compatibility only and is ignored by the network stack
|
WINSOCK2_MAX_UDP:Word = SIZE_8K;
|
Note: As per Winsock2 specification, this value is for compatibility only and is ignored by the network stack
|
WINSOCK2_AUTOSTART:LongBool = True;
|
If True then auto start the Winsock2 layer on boot (Only if Winsock2 unit included)
|
WINSOCK2_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread
|
Sockets configuration
SOCKETS_AUTOSTART:LongBool = True;
|
If True then auto start the sockets layer on boot (Only if Sockets unit included)
|
SOCKETS_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread
|
Client configuration
DNS_CLIENT_ENABLED:LongBool = True;
|
DNS client is enabled if True
|
Protocol configuration
RAW_PROTOCOL_ENABLED:LongBool = True;
|
Raw socket protocol is enabled if True
|
UDP_PROTOCOL_ENABLED:LongBool = True;
|
UDP protocol is enabled if True
|
TCP_PROTOCOL_ENABLED:LongBool = True;
|
TCP protocol is enabled if True
|
ICMP_PROTOCOL_ENABLED:LongBool = True;
|
ICMP protocol is enabled if True
|
ICMP6_PROTOCOL_ENABLED:LongBool = False;
|
ICMPv6 protocol is enabled if True
|
IGMP_PROTOCOL_ENABLED:LongBool = True;
|
IGMP protocol is enabled if True
|
TCP_MIN_BACKLOG:LongWord = 5;
|
Minimum accept queue length for listening sockets (per socket)
|
TCP_MAX_BACKLOG:LongWord = 200;
|
Maximum accept queue length for listening sockets (per socket)
|
TCP_RECEIVE_BACKLOG:LongWord = SIZE_1K;
|
Queue length for SYN received connections (per listening socket)
|
ARP_CONFIG_ENABLED:LongBool = True;
|
ARP configuration is enabled if True
|
RARP_CONFIG_ENABLED:LongBool = False;
|
RARP configuration is enabled if True
|
BOOTP_CONFIG_ENABLED:LongBool = False;
|
BOOTP configuration is enabled if True
|
DHCP_CONFIG_ENABLED:LongBool = True;
|
DHCP configuration is enabled if True
|
STATIC_CONFIG_ENABLED:LongBool = True;
|
Static configuration is enabled if True
|
LOOPBACK_CONFIG_ENABLED:LongBool = True;
|
Loopback configuration is enabled if True
|
Transport configuration
IP_TRANSPORT_ENABLED:LongBool = True;
|
IP transport is enabled if True
|
IP6_TRANSPORT_ENABLED:LongBool = False;
|
IPv6 transport is enabled if True
|
ARP_TRANSPORT_ENABLED:LongBool = True;
|
ARP transport is enabled if True
|
RARP_TRANSPORT_ENABLED:LongBool = True;
|
RARP transport is enabled if True
|
RSN_TRANSPORT_ENABLED:LongBool = True;
|
RSN transport is enabled if True
|
EAPOL_TRANSPORT_ENABLED:LongBool = True;
|
EAPOL transport is enabled if True
|
Network configuration
WIRED_NETWORK_ENABLED:LongBool = True;
|
Wired network adapters are enabled if True
|
LOOPBACK_NETWORK_ENABLED:LongBool = True;
|
Loopback network adapter is enabled if True
|
WIRELESS_NETWORK_ENABLED:LongBool = True;
|
Wireless network adapters are enabled if True
|
Shell configuration
CONSOLE_SHELL_ENABLED:LongBool = True;
|
If True then automatically create a console shell window when a new console is registered (Only if ConsoleShell unit included)
|
CONSOLE_SHELL_POSITION:LongWord = CONSOLE_POSITION_RIGHT;
|
The default Console Window position for the console shell
|
CONSOLE_SHELL_DEVICE:String;
|
The console device Name (or Description) to create the shell window on, if blank create on default device unless forced (Only if ConsoleShell unit included)
|
Specific service configuration
NTP
NTP_SERVER_DEFAULT:String = 'pool.ntp.org';
|
The default NTP server(s) to poll
|
NTP_PORT_DEFAULT:Word = 123;
|
The default NTP port to poll
|
NTP_POLLING_INTERVAL:LongWord = 300;
|
The default NTP polling interval (300 seconds/5 minutes)
|
NTP_POLLING_TIMEOUT:LongWord = 2000;
|
The default NTP polling timeout (2000 milliseconds/2 seconds)
|
NTP_POLLING_RETRIES:LongWord = 3;
|
The default NTP polling retry count
|
NTP_RETRY_TIMEOUT:LongWord = 1000;
|
The default NTP retry interval (1000 milliseconds/1 second)
|
NTP_AUTOSTART:LongBool = True;
|
If True then auto start the NTP client on boot (Only if Services unit included)
|
Telnet
TELNET_PORT_DEFAULT:Word = 23;
|
The default Telnet port
|
TELNET_AUTOSTART:LongBool = True;
|
If True then auto start the Telnet server on boot (Only if RemoteShell unit included)
|
SSH
SSH_PORT_DEFAULT:Word = 22;
|
The default SSH port
|
SSH_AUTOSTART:LongBool = True;
|
If True then auto start the SSH server on boot (Only if RemoteShell unit included)
|
SysLog
SYSLOG_BOUND_PORT:Word;
|
The local port for SysLog to bind to (0 for dynamic port)
|
SYSLOG_SERVER_DEFAULT:String = '127.0.0.1';
|
The default SysLog server to send messages to
|
SYSLOG_PORT_DEFAULT:Word = 514;
|
The default SysLog port
|
SYSLOG_PROTOCOL_DEFAULT:LongWord = LOGGING_PROTOCOL_UDP;
|
The default SysLog protocol
|
SYSLOG_OCTET_COUNTING:LongBool;
|
If True use the Octet Counting method of framing the SysLog message (LOGGING_PROTOCOL_TCP only)(See: RFC6587)
|
SYSLOG_AUTOSTART:LongBool = True;
|
If True then auto start the SysLog client on boot (Only if Services unit included)
|
SYSLOG_REGISTER_LOGGING:LongBool = True;
|
If True then register SysLog as a Logging device on boot (Only if Services unit included)
|
SYSLOG_LOGGING_DEFAULT:LongBool = True;
|
If True then SysLog can be the default Logging device (Only if Services unit included)
|
POP3
POP3_PORT_DEFAULT:Word = 110;
|
The default POP3 port
|
IMAP4
IMAP4_PORT_DEFAULT:Word = 143;
|
The default IMAP4 port
|
SMTP
SMTP_PORT_DEFAULT:Word = 25;
|
The default SMTP port
|
HTTP
HTTP_PORT_DEFAULT:Word = 80;
|
The default HTTP port
|
HTTPS_PORT_DEFAULT:Word = 443;
|
The default HTTPS port
|
CIFS
CIFS_PORT_DEFAULT:Word = 445;
|
The default CIFS port
|
CIFS_CLIENT_AUTOSTART:LongBool = True;
|
If True then auto start the CIFS client on boot (Only if CIFS unit included)
|
CIFS_SERVER_AUTOSTART:LongBool = True;
|
If True then auto start the CIFS server on boot (Only if CIFS unit included)
|
NFS
NFS_PORT_DEFAULT:Word = 111;
|
The default NFS port
|
NFSv4_PORT_DEFAULT:Word = 2049;
|
The default NFSv4 port
|
NFS_CLIENT_AUTOSTART:LongBool = True;
|
If True then auto start the NFS client on boot (Only if NFS unit included)
|
NFS_SERVER_AUTOSTART:LongBool = True;
|
If True then auto start the NFS server on boot (Only if NFS unit included)
|
Specific driver configuration
PL2303
PL2303_MAX_TRANSMIT:LongWord;
|
The maximum transmit size of the PL2303 USB to Serial converter (Defaults to maximum supported by the device if not specified)
|
FTDI serial
FTDISERIAL_MAX_TRANSMIT:LongWord;
|
The maximum transmit size of the FTDI USB to Serial converter (Defaults to maximum supported by the device if not specified)
|
USB CDC ACM
CDCACM_MAX_TRANSMIT:LongWord;
|
The maximum transmit size for USB CDC ACM Serial devices (Defaults to maximum supported by the device if not specified)
|
DS1307
DS1307_CHIP_TYPE:LongWord;
|
The specific chip to support in the DS1307 driver (See the DS1307_CHIP_* constants in the driver)
|
DS1307_I2C_ADDRESS:Word = $68;
|
The I2C address to use for the DS1307 RTC device
|
DS1307_I2C_DEVICE:String = 'I2C0';
|
The I2C device (Name or Description) to use for the DS1307 RTC device
|
RT2800USB
RT2800USB_HARDWARE_ENCRYPTION_DISABLED:LongBool;
|
If True then use software only encryption for RT2800USB
|
AF16x2LCD
AF16X2LCD_AUTOSTART:LongBool = True;
|
If True then auto start the AF16x2LCD device on boot (Only if AF16x2LCD unit included)
|
PiTFT28
PiTFT28_AUTOSTART:LongBool = True;
|
If True then auto start the PiTFT28 device on boot (Only if PiTFT28 unit included)
|
PiTFT35
PiTFT35_AUTOSTART:LongBool = True;
|
If True then auto start the PiTFT35 device on boot (Only if PiTFT35 unit included)
|
RPiSenseHat
RPISENSE_AUTOSTART:LongBool = True;
|
If True then auto start the RPiSenseHat device on boot (Only if RPiSenseHat unit included)
|
Global handlers
GetLastErrorHandler:TGetLastError;
|
Registered handler for the global GetLastError function
|
SetLastErrorHandler:TSetLastError;
|
Registered handler for the global SetLastError function
|
Function declarations
Global functions
function Min(A,B:LongInt):LongInt; inline;
Description: Return the minimum value of A and B
function Max(A,B:LongInt):LongInt; inline;
Description: Return the maximum value of A and B
function Clamp(Value,Low,High:LongInt):LongInt;
Description: To be documented
function RoundUp(Value,Multiple:LongWord):LongWord;
Description: Round Value to the next highest multiple of Multiple
function RoundDown(Value,Multiple:LongWord):LongWord;
Description: Round Value to the next lowest multiple of Multiple
function DivRoundUp(Value,Divisor:LongInt):LongWord;
Description: To be documented
function DivRoundClosest(Value,Divisor:LongInt):LongWord;
Description: To be documented
function IsPowerOf2(Value:LongWord):Boolean;
Description: To be documented
function HIWORD(L:LongInt):Word; inline;
Description: Return the high word of L
function LOWORD(L:LongInt):Word; inline;
Description: Return the low word of L
function HIBYTE(W:LongInt):Byte; inline;
Description: Return the high byte of W
function LOBYTE(W:LongInt):Byte; inline;
Description: Return the low byte of W
function MAKELONG(A,B:LongInt):LongInt; inline;
Description: Make a longword value from A and B
function MAKEWORD(A,B:LongInt):Word; inline;
Description: Make a word value from A and B
function MAKELANGID(PrimaryLang,SubLang:USHORT):WORD; inline;
Description: Construct a language identifier from a primary language and a sub language
function WordNtoBE(Value:Word):Word; inline;
Description: Convert word Value from native to big endian
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function WordBEtoN(Value:Word):Word; inline;
Description: Convert word Value from big endian to native
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function WordNtoLE(Value:Word):Word; inline;
Description: To be documented
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function WordLEtoN(Value:Word):Word; inline;
Description: To be documented
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function LongWordNtoBE(Value:LongWord):LongWord; inline;
Description: Convert longword Value from native to big endian
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function LongWordBEtoN(Value:LongWord):LongWord; inline;
Description: Convert longword Value from big endian to native
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function LongWordNtoLE(Value:LongWord):LongWord; inline;
Description: To be documented
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function LongWordLEtoN(Value:LongWord):LongWord; inline;
Description: To be documented
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function Int64NtoBE(const Value:Int64):Int64; inline;
Description: Convert int64 Value from native to big endian
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function Int64BEtoN(const Value:Int64):Int64; inline;
Description: Convert int64 Value from big endian to native
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function Int64NtoLE(const Value:Int64):Int64; inline;
Description: To be documented
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function Int64LEtoN(const Value:Int64):Int64; inline;
Description: To be documented
Note
|
These functions are simply wrappers to force the compiler to select the correct function without typecasting
|
function BCDtoBin(Value:Byte):Byte; inline;
Description: To be documented
function BintoBCD(Value:Byte):Byte; inline;
Description: To be documented
function GetLastError:LongWord; inline;
Description: Return the last error code for the current thread
procedure SetLastError(LastError:LongWord); inline;
Description: Set the last error code for the current thread
function StringHash(const Text:String):LongWord;
Description: Calculate the sum of (byte value + 1) * (position + 257) for all bytes in an uppercase string
Note
|
Case Insensitive Hash
|
Conversion functions
function ErrorToString(Error:LongWord):String;
Description: Convert an error code value to a string
function SysErrorToString(ErrorCode:Integer):String;
Description: Convert an error code value to a string (RTL)
function BooleanToString(Value:Boolean):String;
Description: Convert a boolean value to a string
function CPUArchToString(CPUArch:LongWord):String;
Description: To be documented
function CPUTypeToString(CPUType:LongWord):String;
Description: Convert a CPU type constant to a string
function CPUModelToString(CPUModel:LongWord):String;
Description: Convert a CPU model constant to a string
function CPUIDToString(CPUID:LongWord):String;
Description: Convert a CPU Id constant to a string
function CPUGroupToString(CPUGroup:LongWord):String;
Description: To be documented
function FPUTypeToString(FPUType:LongWord):String;
Description: Convert a FPU type constant to a string
function GPUTypeToString(GPUType:LongWord):String;
Description: Convert a GPU type constant to a string
function CacheTypeToString(CacheType:LongWord):String;
Description: Convert a filesystem Cache type constant to a string
function BoardTypeToString(BoardType:LongWord):String;
Description: Convert a Board type constant to a string
function MachineTypeToString(MachineType:LongWord):String;
Description: Convert a Machine type constant to a string
function PowerIDToString(PowerID:LongWord):String;
Description: Convert a Power Id constant to a string
function PowerStateToString(PowerState:LongWord):String;
Description: Convert a Power state constant to a string
function ClockIDToString(ClockID:LongWord):String;
Description: Convert a Clock Id constant to a string
function ClockStateToString(ClockState:LongWord):String;
Description: Convert a Clock state constant to a string
function TurboIDToString(TurboID:LongWord):String;
Description: Convert a Turbo Id constant to a string
function VoltageIDToString(VoltageID:LongWord):String;
Description: Convert a Voltage Id constant to a string
function TemperatureIDToString(TemperatureID:LongWord):String;
Description: Convert a Temperature Id constant to a string
function ColorFormatToBytes(Format:LongWord):LongWord;
Description: Convert a color format constant into the number of bytes per pixel
Format
|
The color format constant to get bytes for (eg COLOR_FORMAT_ARGB32)
|
Return
|
The number of bytes required for each pixel
|
function ColorFormatToString(Format:LongWord):String;
Description: To be documented
function ColorFormatToMask(Format:LongWord; Reverse:Boolean):LongWord;
Description: Convert a color format constant into the mask needed for color inversion
Format
|
The color format constant to get the mask for (eg COLOR_FORMAT_ARGB32)
|
Reverse
|
If true then reverse the byte order of the mask
|
Return
|
The mask required for color inversion
|
Note
|
XOR the color with the returned mask to produce the inverted color
eg Result := Color xor Mask
|
procedure ColorDefaultToFormat(Format,Color:LongWord; Dest:Pointer; Reverse:Boolean); inline;
Description: Convert a color value in the default format to the specified format
Format
|
The color format to convert to (eg COLOR_FORMAT_RGB24)
|
Color
|
The color to be converted (Must be in the default format - See: COLOR_FORMAT_DEFAULT)
|
Dest
|
Pointer to the destination buffer for the converted color
|
Reverse
|
If true then reverse the byte order of the destination after conversion
|
procedure ColorFormatToDefault(Format:LongWord; Source:Pointer; var Color:LongWord; Reverse:Boolean); inline;
Description: Convert a color value in the specified format to the default format
Format
|
The color format to convert from (eg COLOR_FORMAT_RGB24)
|
Source
|
Pointer to the source buffer for the color to convert
|
Color
|
The converted color (Will be returned in the default format - See: COLOR_FORMAT_DEFAULT)
|
Reverse
|
If true then reverse the byte order of the color after conversion
|
procedure ColorDefaultAltToFormat(Format,Color:LongWord; Dest:Pointer; Reverse:Boolean);
Description: Convert a color value in the default format to the specified format (Alternate)
Format
|
The color format to convert to (eg COLOR_FORMAT_RGB24)
|
Color
|
The color to be converted (Must be in the default format - See: COLOR_FORMAT_DEFAULT)
|
Dest
|
Pointer to the destination buffer for the converted color
|
Reverse
|
If true then reverse the byte order of the destination before conversion (Differs from ColorDefaultToFormat)
|
Note
|
Not inline
|
procedure ColorFormatAltToDefault(Format:LongWord; Source:Pointer; var Color:LongWord; Reverse:Boolean); inline;
Description: Convert a color value in the specified format to the default format (Alternate)
Format
|
The color format to convert from (eg COLOR_FORMAT_RGB24)
|
Source
|
Pointer to the source buffer for the color to convert
|
Color
|
The converted color (Will be returned in the default format - See: COLOR_FORMAT_DEFAULT)
|
Reverse
|
If true then reverse the byte order of the source before conversion (Differs from ColorFormatToDefault)
|
procedure PixelsDefaultToFormat(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);
Description: Convert one or more pixels in the default color format to the specified format
Format
|
The color format to convert to (eg COLOR_FORMAT_RGB24)
|
Source
|
Pointer to the source buffer for the pixels to convert
|
Dest
|
Pointer to the destination buffer for the converted pixels
|
Count
|
The number of pixels to be converted
|
Reverse
|
If true then reverse the byte order of the destination after conversion
|
procedure PixelsFormatToDefault(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);
Description: Convert one or more pixels in the specified color format to the default format
Format
|
The color format to convert from (eg COLOR_FORMAT_RGB24)
|
Source
|
Pointer to the source buffer for the pixels to convert
|
Dest
|
Pointer to the destination buffer for the converted pixels
|
Count
|
The number of pixels to be converted
|
Reverse
|
If true then reverse the byte order of the destination after conversion
|
procedure PixelsDefaultAltToFormat(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);
Description: Convert one or more pixels in the default color format to the specified format (Alternate)
Format
|
The color format to convert to (eg COLOR_FORMAT_RGB24)
|
Source
|
Pointer to the source buffer for the pixels to convert
|
Dest
|
Pointer to the destination buffer for the converted pixels
|
Count
|
The number of pixels to be converted
|
Reverse
|
If true then reverse the byte order of the source before conversion (Differs from PixelsDefaultToFormat)
|
procedure PixelsFormatAltToDefault(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);
Description: Convert one or more pixels in the specified color format to the default format (Alternate)
Format
|
The color format to convert from (eg COLOR_FORMAT_RGB24)
|
Source
|
Pointer to the source buffer for the pixels to convert
|
Dest
|
Pointer to the destination buffer for the converted pixels
|
Count
|
The number of pixels to be converted
|
Reverse
|
If true then reverse the byte order of the source before conversion (Differs from PixelsFormatToDefault)
|
function LogLevelToLoggingSeverity(LogLevel:LongWord):LongWord;
Description: Convert a log level constant to a severity level
Return to Unit Reference