mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
semihosting: Split out semihost_sys_read
Split out the non-ARM specific portions of SYS_READ to a reusable function. This handles all GuestFD. Isolate the curious ARM-specific return value processing to a new callback, common_semi_rw_cb. Note that gdb_do_syscall %x reads target_ulong, not int. Reviewed-by: Luc Michel <lmichel@kalray.eu> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
5eadbbfca6
commit
af0484b502
3 changed files with 113 additions and 65 deletions
|
@ -18,6 +18,8 @@
|
|||
* or non-zero (where it should include the terminating zero).
|
||||
*/
|
||||
|
||||
typedef struct GuestFD GuestFD;
|
||||
|
||||
void semihost_sys_open(CPUState *cs, gdb_syscall_complete_cb complete,
|
||||
target_ulong fname, target_ulong fname_len,
|
||||
int gdb_flags, int mode);
|
||||
|
@ -25,4 +27,10 @@ void semihost_sys_open(CPUState *cs, gdb_syscall_complete_cb complete,
|
|||
void semihost_sys_close(CPUState *cs, gdb_syscall_complete_cb complete,
|
||||
int fd);
|
||||
|
||||
void semihost_sys_read(CPUState *cs, gdb_syscall_complete_cb complete,
|
||||
int fd, target_ulong buf, target_ulong len);
|
||||
|
||||
void semihost_sys_read_gf(CPUState *cs, gdb_syscall_complete_cb complete,
|
||||
GuestFD *gf, target_ulong buf, target_ulong len);
|
||||
|
||||
#endif /* SEMIHOSTING_SYSCALLS_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue