[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 03/28] semihosting: implement a semihosting c
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v2 03/28] semihosting: implement a semihosting console |
Date: |
Fri, 24 May 2019 11:46:43 +0100 |
User-agent: |
mu4e 1.3.2; emacs 26.1 |
Peter Maydell <address@hidden> writes:
> On Thu, 23 May 2019 at 11:39, Alex Bennée <address@hidden> wrote:
>>
>> This provides two functions for handling console output that handle
>> the common backend behaviour for semihosting.
>>
>> Signed-off-by: Alex Bennée <address@hidden>
>
>> diff --git a/include/exec/gdbstub.h b/include/exec/gdbstub.h
>> index 08363969c14..b2963547c48 100644
>> --- a/include/exec/gdbstub.h
>> +++ b/include/exec/gdbstub.h
>> @@ -44,6 +44,17 @@ void gdb_do_syscall(gdb_syscall_complete_cb cb, const
>> char *fmt, ...);
>> * argument list.
>> */
>> void gdb_do_syscallv(gdb_syscall_complete_cb cb, const char *fmt, va_list
>> va);
>> +/**
>> + * gdb_do_console_out:
>> + * @gs: guest address of string to send
>> + * @len: length of string
>> + *
>> + * Sends a string to gdb console. Unlike the system call interface
>> + * there is no callback and we assume the system call always
>> + * succeeds.
>> + */
>> +void gdb_do_console_out(target_ulong s, int len);
>
> I'm not sure about the "no callback" part of this API. The operation
> here is genuinely asynchronous and providing no mechanism for the
> caller to be able to say "ok, now wait til it completes" doesn't
> seem like a good plan.
Well the caller doesn't really get a choice. At least in system mode
gdbstub does a vm_stop(RUN_STATE_DEBUG) and brings everything to a halt
anyway. All we've removed is the ability to tack on a callback (which
can get run in all sorts of contexts) when we restart.
I could just drop the API here and allow the semihosting API to call
gdb_do_syscallv directly?
--
Alex Bennée
- Re: [Qemu-devel] [PATCH v2 01/28] semihosting: move semihosting configuration into its own directory, (continued)
- [Qemu-devel] [PATCH v2 08/28] target/arm: correct return values for WRITE/READ in arm-semi, Alex Bennée, 2019/05/23
- [Qemu-devel] [PATCH v2 09/28] target/mips: only build mips-semi for softmmu, Alex Bennée, 2019/05/23
- [Qemu-devel] [PATCH v2 17/28] tests/tcg/aarch64: add system boot.S, Alex Bennée, 2019/05/23
- [Qemu-devel] [PATCH v2 11/28] MAINTAINERS: update for semihostings new home, Alex Bennée, 2019/05/23
- [Qemu-devel] [PATCH v2 03/28] semihosting: implement a semihosting console, Alex Bennée, 2019/05/23
[Qemu-devel] [PATCH v2 04/28] semihosting: enable chardev backed output for console, Alex Bennée, 2019/05/23
[Qemu-devel] [PATCH v2 15/28] tests/tcg/multiarch: add hello world system test, Alex Bennée, 2019/05/23
[Qemu-devel] [PATCH v2 05/28] target/arm: fixup some of the commentary for arm-semi, Alex Bennée, 2019/05/23
[Qemu-devel] [PATCH v2 07/28] target/arm: add LOG_UNIMP messages to arm-semi, Alex Bennée, 2019/05/23
[Qemu-devel] [PATCH v2 10/28] target/mips: convert UHI_plog to use common semihosting code, Alex Bennée, 2019/05/23