From: Daniel Jacobowitz Date: Thu, 2 Feb 2006 01:48:16 +0000 (+0000) Subject: * armos.c (ARMul_OSHandleSWI): Handle the RedBoot system X-Git-Tag: gdb-csl-20060226-branchpoint~180 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eeea466063f288e4ee96c7a0b94772a22b73ad79;p=platform%2Fupstream%2Fbinutils.git * armos.c (ARMul_OSHandleSWI): Handle the RedBoot system call meminfo. Return ENOSYS for unhandled RedBoot syscalls. --- diff --git a/sim/arm/ChangeLog b/sim/arm/ChangeLog index 84bdf6e..df88ef1 100644 --- a/sim/arm/ChangeLog +++ b/sim/arm/ChangeLog @@ -1,3 +1,8 @@ +2006-02-01 Shaun Jackman + + * armos.c (ARMul_OSHandleSWI): Handle the RedBoot system + call meminfo. Return ENOSYS for unhandled RedBoot syscalls. + 2005-11-23 Mark Mitchell * wrapper.c (gdb/signals.h): Include it. @@ -7,7 +12,7 @@ 2005-11-16 Shaun Jackman - * sim/arm/armos.c: Include limits.h + * armos.c: Include limits.h (unlink): Remove this macro. It is unused in this file and conflicts with sim_callback->unlink. (PATH_MAX): Define as 1024 if not already defined. diff --git a/sim/arm/armos.c b/sim/arm/armos.c index 5f5ead7..8e346c7 100644 --- a/sim/arm/armos.c +++ b/sim/arm/armos.c @@ -859,9 +859,26 @@ ARMul_OSHandleSWI (ARMul_State * state, ARMword number) case 18: /* Time. */ sim_callback->printf_filtered (sim_callback, - "sim: unhandled RedBoot syscall '%d' encountered - ignoring\n", + "sim: unhandled RedBoot syscall `%d' encountered - " + "returning ENOSYS\n", state->Reg[0]); - return FALSE; + state->Reg[0] = -1; + OSptr->ErrorNo = cb_host_to_target_errno + (sim_callback, ENOSYS); + break; + case 1001: /* Meminfo. */ + { + ARMword totmem = state->Reg[1], + topmem = state->Reg[2]; + ARMword stack = state->MemSize > 0 + ? state->MemSize : ADDRUSERSTACK; + if (totmem != 0) + ARMul_WriteWord (state, totmem, stack); + if (topmem != 0) + ARMul_WriteWord (state, topmem, stack); + state->Reg[0] = 0; + break; + } default: sim_callback->printf_filtered