diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-07-31 18:29:37 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-07-31 18:29:37 +0000 |
commit | caf8869939b50ffc4e3e090b3572935e21327ae8 (patch) | |
tree | bd59aef32f9aeba0762726ca85aa95d54f6ce3ae /c/src/lib/libbsp/arm/armulator/startup/libcfunc.c | |
parent | Patch rtems-rc-20000713-1-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff) | |
download | rtems-caf8869939b50ffc4e3e090b3572935e21327ae8.tar.bz2 |
New bsp for simulator in gdb. Does not work yet.
Diffstat (limited to 'c/src/lib/libbsp/arm/armulator/startup/libcfunc.c')
-rw-r--r-- | c/src/lib/libbsp/arm/armulator/startup/libcfunc.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/armulator/startup/libcfunc.c b/c/src/lib/libbsp/arm/armulator/startup/libcfunc.c new file mode 100644 index 0000000000..aec84d0f4c --- /dev/null +++ b/c/src/lib/libbsp/arm/armulator/startup/libcfunc.c @@ -0,0 +1,40 @@ +/* Support files for GNU libc. Files in the C namespace go here. + Files in the system namespace (ie those that start with an underscore) + go in syscalls.c. + + Note: These functions are in a seperate file so that OS providers can + overrride the system call stubs (defined in syscalls.c) without having + to provide libc funcitons as well. */ +#include "swi.h" + +#ifdef ARM_RDI_MONITOR + +static inline int +do_AngelSWI (int reason, void * arg) +{ + int value; + asm volatile ("mov r0, %1; mov r1, %2; swi %a3; mov %0, r0" + : "=r" (value) /* Outputs */ + : "r" (reason), "r" (arg), "i" (AngelSWI) /* Inputs */ + : "r0", "r1", "lr" + /* Clobbers r0 and r1, and lr if in supervisor mode */); + return value; +} +#endif /* ARM_RDI_MONITOR */ + + +void +abort_program (void) +{ +#ifdef ARM_RDI_MONITOR + do_AngelSWI (AngelSWI_Reason_ReportException, + (void *) ADP_Stopped_RunTimeError); +#else + asm ("mov r0,#17\nswi %a0" :: "i" (SWI_Exit)); +#endif +} + +void +alarm (void) +{ +} |