KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
arch.h File Reference

Dreamcast architecture specific options. More...

#include <kos/cdefs.h>
#include <arch/types.h>
#include <kos/init.h>

Go to the source code of this file.

Macros

#define _arch_mem_top   ((uint32) 0x8d000000)
 Top of memory available, depending on memory size.
 
#define PAGESIZE   4096
 Page size (for MMU)
 
#define PAGESIZE_BITS   12
 Bits for page size.
 
#define PAGEMASK   (PAGESIZE - 1)
 Mask for page offset.
 
#define page_count   ((_arch_mem_top - page_phys_base) / PAGESIZE)
 Page count "variable".
 
#define page_phys_base   0x8c010000
 Base address of available physical pages.
 
#define THD_SCHED_HZ   100
 Scheduler interrupt frequency.
 
#define THD_STACK_SIZE   32768
 Default thread stack size.
 
#define THD_KERNEL_STACK_SIZE   (64 * 1024)
 Main/kernel thread's stack size.
 
#define DEFAULT_VID_MODE   DM_640x480
 Default video mode.
 
#define DEFAULT_PIXEL_MODE   PM_RGB565
 Default pixel mode for video.
 
#define DEFAULT_SERIAL_BAUD   115200
 Default serial bitrate.
 
#define DEFAULT_SERIAL_FIFO   1
 Default serial FIFO behavior.
 
#define ELF_SYM_PREFIX   "_"
 Global symbol prefix in ELF files.
 
#define ELF_SYM_PREFIX_LEN   1
 Length of global symbol prefix in ELF files.
 
#define ARCH_EXIT_RETURN   1
 Return to loader.
 
#define ARCH_EXIT_MENU   2
 Return to system menu.
 
#define ARCH_EXIT_REBOOT   3
 Reboot the machine.
 
#define HW_MEM_16   16777216
 16M retail Dreamcast
 
#define HW_MEM_32   33554432
 32M NAOMI/modded Dreamcast
 
#define HW_MEMSIZE   (_arch_mem_top - 0x8c000000)
 Determine how much memory is installed in current machine.
 
#define DBL_MEM   (_arch_mem_top - 0x8d000000)
 Use this macro to easily determine if system has 32MB of RAM.
 
#define HW_TYPE_RETAIL   0x0
 A retail Dreamcast.
 
#define HW_TYPE_SET5   0x9
 A Set5.xx devkit.
 
#define HW_REGION_UNKNOWN   0x0
 Unknown region.
 
#define HW_REGION_ASIA   0x1
 Japan/Asia (NTSC)
 
#define HW_REGION_US   0x4
 North America.
 
#define HW_REGION_EUROPE   0xC
 Europe (PAL)
 
#define arch_sleep()
 Dreamcast specific sleep mode "function".
 
#define arch_get_ret_addr()
 DC specific "function" to get the return address from the current function.
 
#define arch_get_fptr()
 DC specific "function" to get the frame pointer from the current function.
 
#define arch_fptr_ret_addr(fptr)   (*((uint32*)(fptr)))
 Pass in a frame pointer value to get the return address for the given frame.
 
#define arch_fptr_next(fptr)   (*((uint32*)((fptr)+4)))
 Pass in a frame pointer value to get the previous frame pointer for the given frame.
 
#define arch_valid_address(ptr)   ((ptr_t)(ptr) >= 0x8c010000 && (ptr_t)(ptr) < _arch_mem_top)
 Returns true if the passed address is likely to be valid.
 
#define arch_valid_text_address(ptr)    ((uintptr_t)(ptr) >= (uintptr_t)&_executable_start && (uintptr_t)(ptr) < (uintptr_t)&_etext)
 Returns true if the passed address is in the text section of your program.
 

Functions

static const unsigned HZ __depr ("Please use the new THD_SCHED_HZ macro.")
 Legacy symbol for scheduler frequency.
 
void arch_panic (const char *str) __noreturn
 Panic function.
 
void arch_main (void) __noreturn
 Kernel C-level entry point.
 
void arch_set_exit_path (int path)
 Set the exit path.
 
void arch_exit (void) __noreturn
 Generic kernel "exit" point.
 
void arch_return (int ret_code) __noreturn
 Kernel "return" point.
 
void arch_abort (void) __noreturn
 Kernel "abort" point.
 
void arch_reboot (void) __noreturn
 Kernel "reboot" call.
 
void arch_menu (void) __noreturn
 Kernel "exit to menu" call.
 
int mm_init (void)
 Initialize the memory management system.
 
void * mm_sbrk (unsigned long increment)
 Request more core memory from the system.
 
void arch_real_exit (int ret_code) __noreturn
 Jump back to the bootloader.
 
int hardware_sys_init (void)
 Initialize bare-bones hardware systems.
 
int hardware_periph_init (void)
 Initialize some peripheral systems.
 
void hardware_shutdown (void)
 Shut down hardware that was initted.
 
int hardware_sys_mode (int *region)
 Retrieve the system mode of the console in use.
 
const char * kos_get_banner (void)
 Retrieve the banner printed at program initialization.
 
const char * kos_get_license (void)
 Retrieve the license information for the compiled copy of KOS.
 
const char * kos_get_authors (void)
 Retrieve a list of authors and the dates of their contributions.
 

Variables

char _executable_start
 Start and End address for .text portion of program.
 
char _etext
 

Detailed Description

Dreamcast architecture specific options.

This file has various architecture specific options defined in it. Also, any functions that start with arch_ are in here.

Author
Megan Potter