xref: /qemu/include/semihosting/syscalls.h (revision 5eadbbfca6232710036ccb9f5cf1481be537c0e7)
15b3f39cbSRichard Henderson /*
25b3f39cbSRichard Henderson  * Syscall implementations for semihosting.
35b3f39cbSRichard Henderson  *
45b3f39cbSRichard Henderson  * Copyright (c) 2022 Linaro
55b3f39cbSRichard Henderson  *
65b3f39cbSRichard Henderson  * SPDX-License-Identifier: GPL-2.0-or-later
75b3f39cbSRichard Henderson  */
85b3f39cbSRichard Henderson 
95b3f39cbSRichard Henderson #ifndef SEMIHOSTING_SYSCALLS_H
105b3f39cbSRichard Henderson #define SEMIHOSTING_SYSCALLS_H
115b3f39cbSRichard Henderson 
125b3f39cbSRichard Henderson /*
135b3f39cbSRichard Henderson  * Argument loading from the guest is performed by the caller;
145b3f39cbSRichard Henderson  * results are returned via the 'complete' callback.
155b3f39cbSRichard Henderson  *
165b3f39cbSRichard Henderson  * String operands are in address/len pairs.  The len argument may be 0
175b3f39cbSRichard Henderson  * (when the semihosting abi does not already provide the length),
185b3f39cbSRichard Henderson  * or non-zero (where it should include the terminating zero).
195b3f39cbSRichard Henderson  */
205b3f39cbSRichard Henderson 
215b3f39cbSRichard Henderson void semihost_sys_open(CPUState *cs, gdb_syscall_complete_cb complete,
225b3f39cbSRichard Henderson                        target_ulong fname, target_ulong fname_len,
235b3f39cbSRichard Henderson                        int gdb_flags, int mode);
245b3f39cbSRichard Henderson 
25*5eadbbfcSRichard Henderson void semihost_sys_close(CPUState *cs, gdb_syscall_complete_cb complete,
26*5eadbbfcSRichard Henderson                         int fd);
27*5eadbbfcSRichard Henderson 
285b3f39cbSRichard Henderson #endif /* SEMIHOSTING_SYSCALLS_H */
29