/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __SEMIHOSTING_H #define __SEMIHOSTING_H #include /* * semihosting file io, backed by the host when qemu runs with * -semihosting. all calls return negative errno style errors so the * boot flow can fall back to whatever the board has without semihosting. */ enum smh_open_mode { MODE_READ = 0x0, MODE_BINARY = 0x1, MODE_PLUS = 0x2, MODE_WRITE = 0x4, MODE_APPEND = 0x8, }; long smh_open(const char *fname, enum smh_open_mode mode); long smh_read(long fd, void *memp, size_t len); long smh_write(long fd, const void *memp, size_t len, size_t *written); long smh_close(long fd); long smh_flen(long fd); long smh_seek(long fd, long pos); /* probe once, a boot without a debugger attached must not trap */ bool smh_probe(void); #endif