2004-06-09 Toralf Lund <toralf@procaptura.com>
* arm/crt0.S: Copied from newlib and it now also sets up stacks for
FIQ and IRQ mode, plus calls hardware_init_hook() and
software_init_hook() if present.
* arm/libcfunc.c, arm/swi.h, arm/syscalls.c: Copied
from newlib.
* arm/Makefile.in: Build crt0.o, rdpmon-crt0.o, rdimon-crt0.o,
librdpmon.a, librdimon.a - support file for "bare" setup, as well
as "RDP" and "RDI" monitors.
* arm/coff-rdpmon.specs, arm/elf-rdpmon.specs,
arm/coff-rdimon.specs, arm/elf-rdimon.specs: gcc specs files to go
with above mentioned support libs and startfiles.
2004-06-10 03:06:50 +08:00
|
|
|
/* SWI numbers for RDP (Demon) monitor. */
|
|
|
|
#define SWI_WriteC 0x0
|
|
|
|
#define SWI_Write0 0x2
|
|
|
|
#define SWI_ReadC 0x4
|
|
|
|
#define SWI_CLI 0x5
|
|
|
|
#define SWI_GetEnv 0x10
|
|
|
|
#define SWI_Exit 0x11
|
|
|
|
#define SWI_EnterOS 0x16
|
|
|
|
|
|
|
|
#define SWI_GetErrno 0x60
|
|
|
|
#define SWI_Clock 0x61
|
|
|
|
#define SWI_Time 0x63
|
|
|
|
#define SWI_Remove 0x64
|
|
|
|
#define SWI_Rename 0x65
|
|
|
|
#define SWI_Open 0x66
|
|
|
|
|
|
|
|
#define SWI_Close 0x68
|
|
|
|
#define SWI_Write 0x69
|
|
|
|
#define SWI_Read 0x6a
|
|
|
|
#define SWI_Seek 0x6b
|
|
|
|
#define SWI_Flen 0x6c
|
|
|
|
|
|
|
|
#define SWI_IsTTY 0x6e
|
|
|
|
#define SWI_TmpNam 0x6f
|
|
|
|
#define SWI_InstallHandler 0x70
|
|
|
|
#define SWI_GenerateError 0x71
|
|
|
|
|
|
|
|
|
|
|
|
/* Now the SWI numbers and reason codes for RDI (Angel) monitors. */
|
|
|
|
#define AngelSWI_ARM 0x123456
|
|
|
|
#ifdef __thumb__
|
|
|
|
#define AngelSWI 0xAB
|
|
|
|
#else
|
|
|
|
#define AngelSWI AngelSWI_ARM
|
|
|
|
#endif
|
2006-02-08 02:46:23 +08:00
|
|
|
/* For Thumb-2 code use the BKPT instruction instead of SWI. */
|
|
|
|
#ifdef __thumb2__
|
|
|
|
#define AngelSWIInsn "bkpt"
|
|
|
|
#define AngelSWIAsm bkpt
|
|
|
|
#else
|
|
|
|
#define AngelSWIInsn "swi"
|
|
|
|
#define AngelSWIAsm swi
|
|
|
|
#endif
|
2004-06-09 Toralf Lund <toralf@procaptura.com>
* arm/crt0.S: Copied from newlib and it now also sets up stacks for
FIQ and IRQ mode, plus calls hardware_init_hook() and
software_init_hook() if present.
* arm/libcfunc.c, arm/swi.h, arm/syscalls.c: Copied
from newlib.
* arm/Makefile.in: Build crt0.o, rdpmon-crt0.o, rdimon-crt0.o,
librdpmon.a, librdimon.a - support file for "bare" setup, as well
as "RDP" and "RDI" monitors.
* arm/coff-rdpmon.specs, arm/elf-rdpmon.specs,
arm/coff-rdimon.specs, arm/elf-rdimon.specs: gcc specs files to go
with above mentioned support libs and startfiles.
2004-06-10 03:06:50 +08:00
|
|
|
|
|
|
|
/* The reason codes: */
|
|
|
|
#define AngelSWI_Reason_Open 0x01
|
|
|
|
#define AngelSWI_Reason_Close 0x02
|
|
|
|
#define AngelSWI_Reason_WriteC 0x03
|
|
|
|
#define AngelSWI_Reason_Write0 0x04
|
|
|
|
#define AngelSWI_Reason_Write 0x05
|
|
|
|
#define AngelSWI_Reason_Read 0x06
|
|
|
|
#define AngelSWI_Reason_ReadC 0x07
|
|
|
|
#define AngelSWI_Reason_IsTTY 0x09
|
|
|
|
#define AngelSWI_Reason_Seek 0x0A
|
|
|
|
#define AngelSWI_Reason_FLen 0x0C
|
|
|
|
#define AngelSWI_Reason_TmpNam 0x0D
|
|
|
|
#define AngelSWI_Reason_Remove 0x0E
|
|
|
|
#define AngelSWI_Reason_Rename 0x0F
|
|
|
|
#define AngelSWI_Reason_Clock 0x10
|
|
|
|
#define AngelSWI_Reason_Time 0x11
|
|
|
|
#define AngelSWI_Reason_System 0x12
|
|
|
|
#define AngelSWI_Reason_Errno 0x13
|
|
|
|
#define AngelSWI_Reason_GetCmdLine 0x15
|
|
|
|
#define AngelSWI_Reason_HeapInfo 0x16
|
|
|
|
#define AngelSWI_Reason_EnterSVC 0x17
|
|
|
|
#define AngelSWI_Reason_ReportException 0x18
|
|
|
|
#define ADP_Stopped_ApplicationExit ((2 << 16) + 38)
|
|
|
|
#define ADP_Stopped_RunTimeError ((2 << 16) + 35)
|