Philippe Mathieu-Daudé <[email protected]> writes:

> Per the "Semihosting for AArch32 and AArch64" spec. v2 (2023Q3) [*]:
>
>   6.5   SYS_EXIT (0x18)
>   6.5.2   Entry (64-bit)
>
>     On entry, the PARAMETER REGISTER contains a pointer to
>     a two-field argument block:
>
>     . field 1
>       The exception type, which is one of the set of reason
>       codes in the above tables.
>
>     . field 2
>       A subcode, whose meaning depends on the reason code in
>       field 1.
>
>     In particular, if field 1 is ADP_Stopped_ApplicationExit
>     then field 2 is an exit status code, as passed to the C
>     standard library exit() function. [...]
>
> Having libc exit() is declared as:
>
>   LIBRARY
>        Standard C Library (libc, -lc)
>
>   SYNOPSIS
>
>        void
>        exit(int status);
>
> the status is expected to be signed.
>
> [*] 
> https://github.com/ARM-software/abi-aa/blob/2023q3-release/semihosting/semihosting.rst#652entry-64-bit
>
> Fixes: 7446d35e1d ("target-arm/arm-semi.c: SYS_EXIT on A64 takes a parameter 
> block")
> Signed-off-by: Philippe Mathieu-Daudé <[email protected]>

Acked-by: Alex Bennée <[email protected]>

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro

Reply via email to