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

Functions to access the system calls of the Dreamcast ROM. More...

#include <kos/cdefs.h>
#include <stdint.h>
#include <sys/types.h>

Go to the source code of this file.

Data Structures

struct  cd_check_drive_status_t
 Status filled by Check Drive syscall. More...
 
struct  cd_read_params_t
 Params for READ commands. More...
 
struct  cd_toc_t
 TOC structure returned by the BIOS. More...
 
struct  cd_cmd_toc_params_t
 Params for GETTOC commands. More...
 
struct  cd_cmd_play_params_t
 Params for PLAY command. More...
 
struct  cd_cmd_getscd_params_t
 Params for GETSCD command. More...
 
struct  cd_cmd_chk_status_t
 GDROM Command Extra Status. More...
 
struct  cd_sec_mode_params_t
 Sector mode params. More...
 
struct  cd_transfer_params_t
 Parameters for transfer. More...
 

Typedefs

typedef int32_t gdc_cmd_hnd_t
 Handle for a requested command.
 

Enumerations

enum  cd_stat_t {
  CD_STATUS_READ_FAIL = -1 , CD_STATUS_BUSY = 0 , CD_STATUS_PAUSED = 1 , CD_STATUS_STANDBY = 2 ,
  CD_STATUS_PLAYING = 3 , CD_STATUS_SEEKING = 4 , CD_STATUS_SCANNING = 5 , CD_STATUS_OPEN = 6 ,
  CD_STATUS_NO_DISC = 7 , CD_STATUS_RETRY = 8 , CD_STATUS_ERROR = 9 , CD_STATUS_FATAL = 12
}
 Status of GDROM drive. More...
 
enum  cd_disc_types_t {
  CD_CDDA = 0x00 , CD_CDROM = 0x10 , CD_CDROM_XA = 0x20 , CD_CDI = 0x30 ,
  CD_GDROM = 0x80 , CD_FAIL = 0xf0
}
 Disc types the GDROM can identify. More...
 
enum  cd_cmd_code_t {
  CD_CMD_CHECK_LICENSE = 2 , CD_CMD_REQ_SPI_CMD = 4 , CD_CMD_PIOREAD = 16 , CD_CMD_DMAREAD = 17 ,
  CD_CMD_GETTOC = 18 , CD_CMD_GETTOC2 = 19 , CD_CMD_PLAY_TRACKS = 20 , CD_CMD_PLAY_SECTORS = 21 ,
  CD_CMD_PAUSE = 22 , CD_CMD_RELEASE = 23 , CD_CMD_INIT = 24 , CD_CMD_DMA_ABORT = 25 ,
  CD_CMD_OPEN_TRAY = 26 , CD_CMD_SEEK = 27 , CD_CMD_DMAREAD_STREAM = 28 , CD_CMD_NOP = 29 ,
  CD_CMD_REQ_MODE = 30 , CD_CMD_SET_MODE = 31 , CD_CMD_SCAN_CD = 32 , CD_CMD_STOP = 33 ,
  CD_CMD_GETSCD = 34 , CD_CMD_GETSES = 35 , CD_CMD_REQ_STAT = 36 , CD_CMD_PIOREAD_STREAM = 37 ,
  CD_CMD_DMAREAD_STREAM_EX = 38 , CD_CMD_PIOREAD_STREAM_EX = 39 , CD_CMD_GET_VERS = 40 , CD_CMD_MAX = 47
}
 Command codes for GDROM syscalls. More...
 
enum  cd_area_t { CD_AREA_LOW = 0 , CD_AREA_HIGH = 1 }
 Disc area to read TOC from. More...
 
enum  cd_sub_type_t {
  CD_SUB_Q_ALL = 0 , CD_SUB_Q_CHANNEL = 1 , CD_SUB_MEDIA_CATALOG = 2 , CD_SUB_TRACK_ISRC = 3 ,
  CD_SUB_RESERVED = 4
}
 Types of data to read from sector subcode. More...
 
enum  cd_sub_audio_t {
  CD_SUB_AUDIO_STATUS_INVALID = 0x00 , CD_SUB_AUDIO_STATUS_PLAYING = 0x11 , CD_SUB_AUDIO_STATUS_PAUSED = 0x12 , CD_SUB_AUDIO_STATUS_ENDED = 0x13 ,
  CD_SUB_AUDIO_STATUS_ERROR = 0x14 , CD_SUB_AUDIO_STATUS_NO_INFO = 0x15
}
 Subcode Audio Statuses. More...
 
enum  cd_cmd_chk_t {
  CD_CMD_FAILED = -1 , CD_CMD_NOT_FOUND = 0 , CD_CMD_PROCESSING = 1 , CD_CMD_COMPLETED = 2 ,
  CD_CMD_STREAMING = 3 , CD_CMD_BUSY = 4
}
 Responses from GDROM check command syscall. More...
 
enum  cd_cmd_chk_ata_status_t {
  ATA_STAT_INTERNAL = 0x00 , ATA_STAT_IRQ = 0x01 , ATA_STAT_DRQ_0 = 0x02 , ATA_STAT_DRQ_1 = 0x03 ,
  ATA_STAT_BUSY = 0x04
}
 ATA Statuses. More...
 
enum  cd_read_sec_part_t { CDROM_READ_WHOLE_SECTOR = 0x1000 , CDROM_READ_DATA_AREA = 0x2000 , CDROM_READ_DEFAULT = -1 }
 Read Sector Part. More...
 

Functions

void syscall_sysinfo_init (void)
 Inits data needed by sysinfo id/icon.
 
int syscall_sysinfo_icon (uint32_t icon, uint8_t *dest)
 Reads an icon from the flashrom.
 
uint64_t syscall_sysinfo_id (void)
 Reads the ID of the Dreamcast.
 
uint8_t * syscall_font_address (void)
 Gets the romfont address.
 
int syscall_font_lock (void)
 Locks access to ROM font.
 
void syscall_font_unlock (void)
 Unlocks access to ROM font.
 
int syscall_flashrom_info (uint32_t part, void *info)
 Gets info on partition in the flashrom.
 
int syscall_flashrom_read (uint32_t pos, void *dest, size_t n)
 Read data from the flashrom.
 
int syscall_flashrom_write (uint32_t pos, const void *src, size_t n)
 Write data to the flashrom.
 
int syscall_flashrom_delete (uint32_t pos)
 Delete a partition of the flashrom.
 
void syscall_gdrom_init (void)
 Initialize the GDROM drive.
 
void syscall_gdrom_reset (void)
 Reset the GDROM drive.
 
int syscall_gdrom_check_drive (cd_check_drive_status_t *status)
 Checks the GDROM drive status.
 
gdc_cmd_hnd_t syscall_gdrom_send_command (cd_cmd_code_t cmd, void *params)
 Send a command to the GDROM command queue.
 
cd_cmd_chk_t syscall_gdrom_check_command (gdc_cmd_hnd_t hnd, cd_cmd_chk_status_t *status)
 Check status of queued command for the GDROM.
 
void syscall_gdrom_exec_server (void)
 Process queued GDROM commands.
 
int syscall_gdrom_abort_command (gdc_cmd_hnd_t hnd)
 Abort a queued GDROM command.
 
int syscall_gdrom_sector_mode (cd_sec_mode_params_t *mode)
 Sets/gets the sector mode for read commands.
 
void syscall_gdrom_dma_callback (uintptr_t callback, void *param)
 Setup GDROM DMA callback.
 
int syscall_gdrom_dma_transfer (gdc_cmd_hnd_t hnd, const cd_transfer_params_t *params)
 Initiates a GDROM DMA transfer.
 
int syscall_gdrom_dma_check (gdc_cmd_hnd_t hnd, size_t *size)
 Checks a GDROM DMA transfer.
 
void syscall_gdrom_pio_callback (uintptr_t callback, void *param)
 Setup GDROM PIO callback.
 
int syscall_gdrom_pio_transfer (gdc_cmd_hnd_t hnd, const cd_transfer_params_t *params)
 Initiates a GDROM PIO transfer.
 
int syscall_gdrom_pio_check (gdc_cmd_hnd_t hnd, size_t *size)
 Checks a GDROM PIO transfer.
 
int syscall_misc_init (void)
 Initializes all the syscall vectors.
 
int syscall_misc_setvector (uint32_t super, uintptr_t handler)
 Set/Clear a user defined super function.
 
void syscall_system_reset (void) __noreturn
 Resets the Dreamcast.
 
void syscall_system_bios_menu (void) __noreturn
 Go to the BIOS menu.
 
void syscall_system_cd_menu (void) __noreturn
 Exit to CD menu.
 

Detailed Description

Functions to access the system calls of the Dreamcast ROM.

Todo
  • syscall_sysinfo_icon(): Discover + document icon format.
  • Look into additional syscall vector for GD-ROM - 0x0C0000C0
Author
Marcus Comstedt
Andy Barajas