56 lines
1.7 KiB
C
56 lines
1.7 KiB
C
#ifndef GUARD_GBA_MULTIBOOT_H
|
|
#define GUARD_GBA_MULTIBOOT_H
|
|
|
|
#define MULTIBOOT_NCHILD 3 // Maximum number of slaves
|
|
#define MULTIBOOT_HEADER_SIZE 0xc0 // Header size
|
|
#define MULTIBOOT_SEND_SIZE_MIN 0x100 // Minimum transmission size
|
|
#define MULTIBOOT_SEND_SIZE_MAX 0x40000 // Maximum transmission size
|
|
|
|
struct MultiBootParam
|
|
{
|
|
u32 system_work[5]; // 00
|
|
u8 handshake_data; // 14
|
|
u8 padding; // 15
|
|
u16 handshake_timeout; // 16
|
|
u8 probe_count; // 18
|
|
u8 client_data[MULTIBOOT_NCHILD]; // 19
|
|
u8 palette_data; // 1c
|
|
u8 response_bit; // 1d
|
|
u8 client_bit; // 1e
|
|
u8 reserved1; // 1f
|
|
const u8 *boot_srcp; // 20
|
|
const u8 *boot_endp; // 24
|
|
const u8 *masterp;
|
|
u8 *reserved2[MULTIBOOT_NCHILD];
|
|
u32 system_work2[4];
|
|
u8 sendflag;
|
|
u8 probe_target_bit;
|
|
u8 check_wait;
|
|
u8 server_type;
|
|
};
|
|
|
|
#define MULTIBOOT_ERROR_04 0x04
|
|
#define MULTIBOOT_ERROR_08 0x08
|
|
#define MULTIBOOT_ERROR_0c 0x0c
|
|
#define MULTIBOOT_ERROR_40 0x40
|
|
#define MULTIBOOT_ERROR_44 0x44
|
|
#define MULTIBOOT_ERROR_48 0x48
|
|
#define MULTIBOOT_ERROR_4c 0x4c
|
|
#define MULTIBOOT_ERROR_80 0x80
|
|
#define MULTIBOOT_ERROR_84 0x84
|
|
#define MULTIBOOT_ERROR_88 0x88
|
|
#define MULTIBOOT_ERROR_8c 0x8c
|
|
#define MULTIBOOT_ERROR_NO_PROBE_TARGET 0x50
|
|
#define MULTIBOOT_ERROR_NO_DLREADY 0x60
|
|
#define MULTIBOOT_ERROR_BOOT_FAILURE 0x70
|
|
#define MULTIBOOT_ERROR_HANDSHAKE_FAILURE 0x71
|
|
|
|
#define MULTIBOOT_CONNECTION_CHECK_WAIT 15
|
|
|
|
#define MULTIBOOT_SERVER_TYPE_NORMAL 0
|
|
#define MULTIBOOT_SERVER_TYPE_QUICK 1
|
|
|
|
#define MULTIBOOT_HANDSHAKE_TIMEOUT 400
|
|
|
|
#endif // GUARD_GBA_MULTIBOOT_H
|