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 16 /* Empty config */ 17 QemuOptsList qemu_semihosting_config_opts = { 18 .name = "", 19 .head = QTAILQ_HEAD_INITIALIZER(qemu_semihosting_config_opts.head), 20 .desc = { 21 { /* end of list */ } 22 }, 23 }; 24 25 /* Queries to config status default to off */ semihosting_enabled(void)26bool semihosting_enabled(void) 27 { 28 return false; 29 } 30 semihosting_get_target(void)31SemihostingTarget semihosting_get_target(void) 32 { 33 return SEMIHOSTING_TARGET_AUTO; 34 } 35 36 /* 37 * All the rest are empty subs. We could g_assert_not_reached() but 38 * that adds extra weight to the final binary. Waste not want not. 39 */ qemu_semihosting_enable(void)40void qemu_semihosting_enable(void) 41 { 42 } 43 qemu_semihosting_config_options(const char * optarg)44int qemu_semihosting_config_options(const char *optarg) 45 { 46 return 1; 47 } 48 semihosting_get_arg(int i)49const char *semihosting_get_arg(int i) 50 { 51 return NULL; 52 } 53 semihosting_get_argc(void)54int semihosting_get_argc(void) 55 { 56 return 0; 57 } 58 semihosting_get_cmdline(void)59const char *semihosting_get_cmdline(void) 60 { 61 return NULL; 62 } 63 semihosting_arg_fallback(const char * file,const char * cmd)64void semihosting_arg_fallback(const char *file, const char *cmd) 65 { 66 } 67 qemu_semihosting_connect_chardevs(void)68void qemu_semihosting_connect_chardevs(void) 69 { 70 } 71 qemu_semihosting_console_init(void)72void qemu_semihosting_console_init(void) 73 { 74 } 75