From: Nick Clifton <nickc@cambridge.redhat.com>
To: gdb-patches@sources.redhat.com
Subject: Add support for RedBoot SWIs to ARM Simulator
Date: Thu, 09 May 2002 03:09:00 -0000 [thread overview]
Message-ID: <m3helhiqfp.fsf@north-pole.nickc.cambridge.redhat.com> (raw)
Hi Guys,
I am applying the patch below to add support for the SWI used by
RedBoot to implement some of its system calls. The patch only
supports those system calls already supported by the simulator's
Angel and Demon SWI protocol support.
Note - it is not possible to support the RedBoot SWI in Thumb mode,
since this SWI value - 0x18 - is also the thumb breakpoint value
used by GDB.
Cheers
Nick
2002-05-09 Nick Clifton <nickc@cambridge.redhat.com>
* armos.c (ARMul_OSHandleSWI): Support the RedBoot SWI in ARM
mode and some of its system calls.
Index: sim/arm/armos.c
===================================================================
RCS file: /cvs/src/src/sim/arm/armos.c,v
retrieving revision 1.11
diff -c -3 -p -w -r1.11 armos.c
*** sim/arm/armos.c 21 Feb 2002 20:22:49 -0000 1.11
--- sim/arm/armos.c 9 May 2002 10:01:16 -0000
*************** ARMul_OSHandleSWI (ARMul_State * state,
*** 635,640 ****
--- 635,703 ----
/* These are used by the FPE code. */
break;
+ case 0x180001: /* RedBoot's Syscall SWI in ARM mode. */
+ switch (state->Reg[0])
+ {
+ /* These numbers are defined in libgloss/syscall.h
+ but the simulator should not be dependend upon
+ libgloss being installed. */
+ case 1: /* Exit. */
+ state->Emulate = FALSE;
+ return TRUE;
+
+ case 2: /* Open. */
+ SWIopen (state, state->Reg[1], state->Reg[2]);
+ return TRUE;
+
+ case 3: /* Close. */
+ state->Reg[0] = close (state->Reg[1]);
+ OSptr->ErrorNo = errno;
+ return TRUE;
+
+ case 4: /* Read. */
+ SWIread (state, state->Reg[1], state->Reg[2], state->Reg[3]);
+ return TRUE;
+
+ case 5: /* Write. */
+ SWIwrite (state, state->Reg[1], state->Reg[2], state->Reg[3]);
+ return TRUE;
+
+ case 6: /* Lseek. */
+ state->Reg[0] = lseek (state->Reg[1], state->Reg[2], state->Reg[3]);
+ OSptr->ErrorNo = errno;
+ return TRUE;
+
+ case 17: /* Utime. */
+ state->Reg[0] = (ARMword) time (state->Reg[1]);
+ OSptr->ErrorNo = errno;
+ return (TRUE);
+
+ case 7: /* Unlink. */
+ case 8: /* Getpid. */
+ case 9: /* Kill. */
+ case 10: /* Fstat. */
+ case 11: /* Sbrk. */
+ case 12: /* Argvlen. */
+ case 13: /* Argv. */
+ case 14: /* ChDir. */
+ case 15: /* Stat. */
+ case 16: /* Chmod. */
+ case 18: /* Time. */
+ sim_callback->printf_filtered
+ (sim_callback,
+ "sim: unhandled RedBoot syscall '%d' encountered - ignoring\n",
+ state->Reg[0]);
+ return FALSE;
+
+ default:
+ sim_callback->printf_filtered
+ (sim_callback,
+ "sim: unknown RedBoot syscall '%d' encountered - ignoring\n",
+ state->Reg[0]);
+ return FALSE;
+ }
+ return TRUE;
+
default:
/* If there is a SWI vector installed use it. */
if (state->is_XScale && saved_number != -1)
next reply other threads:[~2002-05-09 10:09 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-09 3:09 Nick Clifton [this message]
2002-05-09 3:22 ` Richard Earnshaw
2002-05-09 4:00 ` Nick Clifton
2002-05-09 4:11 ` Richard Earnshaw
2002-05-16 9:16 ` Add support for target switches in simulator Nick Clifton
2002-05-16 9:25 ` Richard Earnshaw
2002-05-17 1:58 ` Nick Clifton
2002-05-17 5:37 ` Richard Earnshaw
2002-05-17 6:46 ` Nick Clifton
2002-05-17 10:17 ` Andrew Cagney
2002-05-17 7:33 ` Frank Ch. Eigler
2002-05-17 10:29 ` Andrew Cagney
2002-05-16 9:36 ` Frank Ch. Eigler
2002-05-16 11:08 ` Michael Snyder
2002-05-17 11:32 ` Andrew Cagney
2002-05-20 6:11 ` Nick Clifton
2002-05-20 7:12 ` Andrew Cagney
2002-05-20 7:19 ` Richard Earnshaw
2002-05-20 7:26 ` Nick Clifton
2002-05-09 7:35 ` Add support for RedBoot SWIs to ARM Simulator Frank Ch. Eigler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3helhiqfp.fsf@north-pole.nickc.cambridge.redhat.com \
--to=nickc@cambridge.redhat.com \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox