f9fa511d46
* arm/crt0.S: Add Thumb-2 startup code. * arm/redboot-crt0.S: Ditto. * arm/libcfunc.c (do_AngelSWI): Use AngelSWIInsn. * arm/swi.h (AngelSWIInsn, AngelSWIAsm): Define. * arm/trap.S: Disable for Thumb-2.
69 lines
2.2 KiB
C
69 lines
2.2 KiB
C
/* 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
|
|
/* 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
|
|
|
|
/* 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)
|