This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ along with this program; if not, see <http://www.gnu.org/licenses/>. */
-/***************************************************************************\
-* Define the initial layout of memory *
-\***************************************************************************/
+/* Define the initial layout of memory. */
-#define ADDRSUPERSTACK 0x800L /* supervisor stack space */
-#define ADDRUSERSTACK 0x80000L /* default user stack start */
-#define ADDRSOFTVECTORS 0x840L /* soft vectors are here */
-#define ADDRCMDLINE 0xf00L /* command line is here after a SWI GetEnv */
-#define ADDRSOFHANDLERS 0xad0L /* address and workspace for installed handlers */
-#define SOFTVECTORCODE 0xb80L /* default handlers */
+#define ADDRSUPERSTACK 0x800L /* Supervisor stack space. */
+#define ADDRUSERSTACK 0x80000L/* Default user stack start. */
+#define ADDRSOFTVECTORS 0x840L /* Soft vectors are here. */
+#define ADDRCMDLINE 0xf00L /* Command line is here after a SWI GetEnv. */
+#define ADDRSOFHANDLERS 0xad0L /* Address and workspace for installed handlers. */
+#define SOFTVECTORCODE 0xb80L /* Default handlers. */
-/***************************************************************************\
-* SWI numbers *
-\***************************************************************************/
+/* SWI numbers. */
#define SWI_WriteC 0x0
#define SWI_Write0 0x2
#define SWI_InstallHandler 0x70
#define SWI_GenerateError 0x71
-#define SWI_Breakpoint 0x180000 /* see gdb's tm-arm.h */
+#define SWI_Breakpoint 0x180000 /* See gdb's tm-arm.h */
#define AngelSWI_ARM 0x123456
#define AngelSWI_Thumb 0xAB
-/* 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)
+/* 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) + 34)
+#define ADP_Stopped_RunTimeError ((2 << 16) + 35)
-#define FPESTART 0x2000L
-#define FPEEND 0x8000L
-#define FPEOLDVECT FPESTART + 0x100L + 8L * 16L + 4L /* stack + 8 regs + fpsr */
-#define FPENEWVECT(addr) 0xea000000L + ((addr) >> 2) - 3L /* branch from 4 to 0x2400 */
+/* Floating Point Emulator address space. */
+#define FPESTART 0x2000L
+#define FPEEND 0x8000L
+#define FPEOLDVECT FPESTART + 0x100L + 8L * 16L + 4L /* Stack + 8 regs + fpsr. */
+#define FPENEWVECT(addr) 0xea000000L + ((addr) >> 2) - 3L /* Branch from 4 to 0x2400. */
-extern unsigned long fpecode[] ;
-extern unsigned long fpesize ;
+extern unsigned long fpecode[];
+extern unsigned long fpesize;
+
+extern int SWI_vector_installed;