reorganize headers and add CpuFill macros

This commit is contained in:
YamaArashi
2016-01-08 12:49:23 -08:00
parent b06f500539
commit bc10815b94
6 changed files with 49 additions and 33 deletions

View File

@@ -1,5 +1,5 @@
#ifndef GUARD_IO_REGS_H
#define GUARD_IO_REGS_H
#ifndef GUARD_GBA_IO_REG_H
#define GUARD_GBA_IO_REG_H
#define REG_BASE 0x4000000 // I/O register base address
@@ -385,4 +385,4 @@
#define INTR_FLAG_KEYPAD (1 << 12)
#define INTR_FLAG_GAMEPAK (1 << 13)
#endif // GUARD_IO_REGS_H
#endif // GUARD_GBA_IO_REG_H

15
include/gba/macro.h Normal file
View File

@@ -0,0 +1,15 @@
#ifndef GUARD_GBA_MACRO_H
#define GUARD_GBA_MACRO_H
#define CPU_FILL(dest, value, size, bit) \
do { \
vu##bit tmp = (vu##bit)(value); \
CpuSet((void *)&tmp, \
dest, \
CPU_SET_##bit##BIT | CPU_SET_SRC_FIXED | ((size)/(bit/8) & 0x1FFFFF)); \
} while (0)
#define CpuFill16(dest, value, size) CPU_FILL(dest, value, size, 16)
#define CpuFill32(dest, value, size) CPU_FILL(dest, value, size, 32)
#endif // GUARD_GBA_MACRO_H

10
include/gba/syscall.h Normal file
View File

@@ -0,0 +1,10 @@
#ifndef GUARD_GBA_SYSCALL_H
#define GUARD_GBA_SYSCALL_H
#define CPU_SET_SRC_FIXED 0x01000000
#define CPU_SET_16BIT 0x00000000
#define CPU_SET_32BIT 0x04000000
extern void CpuSet(void *src, void *dest, u32 controlData);
#endif // GUARD_GBA_SYSCALL_H

View File

@@ -27,11 +27,8 @@ typedef u32 bool32;
#define TRUE 1
#define FALSE 0
#include "io_regs.h"
#define CPU_SET_SRC_FIX (1 << 24)
#define CPU_SET_32BIT (1 << 26)
extern void CpuSet(void *src, void *dest, u32 controlData);
#include "gba/io_reg.h"
#include "gba/syscall.h"
#include "gba/macro.h"
#endif // GUARD_GLOBAL_H