1/* 2 * Semihosting Stubs for SoftMMU 3 * 4 * Copyright (c) 2019 Linaro Ltd 5 * 6 * Stubs for SoftMMU targets that don't actually do semihosting. 7 * 8 * SPDX-License-Identifier: GPL-2.0-or-later 9 */ 10 11#include "qemu/osdep.h" 12#include "qemu/option.h" 13#include "qemu/error-report.h" 14#include "semihosting/semihost.h" 15#include "sysemu/sysemu.h" 16 17/* Empty config */ 18QemuOptsList qemu_semihosting_config_opts = { 19 .name = "", 20 .head = QTAILQ_HEAD_INITIALIZER(qemu_semihosting_config_opts.head), 21 .desc = { 22 { /* end of list */ } 23 }, 24}; 25 26/* Queries to config status default to off */ 27bool semihosting_enabled(void) 28{ 29 return false; 30} 31 32SemihostingTarget semihosting_get_target(void) 33{ 34 return SEMIHOSTING_TARGET_AUTO; 35} 36 37/* 38 * All the rest are empty subs. We could g_assert_not_reached() but 39 * that adds extra weight to the final binary. Waste not want not. 40 */ 41void qemu_semihosting_enable(void) 42{ 43} 44 45int qemu_semihosting_config_options(const char *optarg) 46{ 47 return 1; 48} 49 50const char *semihosting_get_arg(int i) 51{ 52 return NULL; 53} 54 55int semihosting_get_argc(void) 56{ 57 return 0; 58} 59 60const char *semihosting_get_cmdline(void) 61{ 62 return NULL; 63} 64 65void semihosting_arg_fallback(const char *file, const char *cmd) 66{ 67} 68 69void qemu_semihosting_connect_chardevs(void) 70{ 71} 72 73void qemu_semihosting_console_init(void) 74{ 75} 76