semihosting: Rename softmmu_FOO_user() -> uaccess_FOO_user()
Add a check in 'softmmu-uaccess.h' that the header is only include in system emulation, and rename it as 'uaccess.h'. Rename the API methods: - softmmu_[un]lock_user*() -> uaccess_[un]lock_user*() - softmmu_strlen_user() -> uaccess_strlen_user(). Update a pair of comments. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20231004090629.37473-9-philmd@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
3f7d1bdab0
commit
f14eced5ac
@ -7,8 +7,12 @@
|
|||||||
* This code is licensed under the GPL
|
* This code is licensed under the GPL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SEMIHOSTING_SOFTMMU_UACCESS_H
|
#ifndef SEMIHOSTING_UACCESS_H
|
||||||
#define SEMIHOSTING_SOFTMMU_UACCESS_H
|
#define SEMIHOSTING_UACCESS_H
|
||||||
|
|
||||||
|
#ifdef CONFIG_USER_ONLY
|
||||||
|
#error Cannot include semihosting/uaccess.h from user emulation
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
|
|
||||||
@ -42,18 +46,18 @@
|
|||||||
|
|
||||||
#define put_user_ual(arg, p) put_user_u32(arg, p)
|
#define put_user_ual(arg, p) put_user_u32(arg, p)
|
||||||
|
|
||||||
void *softmmu_lock_user(CPUArchState *env, target_ulong addr,
|
void *uaccess_lock_user(CPUArchState *env, target_ulong addr,
|
||||||
target_ulong len, bool copy);
|
target_ulong len, bool copy);
|
||||||
#define lock_user(type, p, len, copy) softmmu_lock_user(env, p, len, copy)
|
#define lock_user(type, p, len, copy) uaccess_lock_user(env, p, len, copy)
|
||||||
|
|
||||||
char *softmmu_lock_user_string(CPUArchState *env, target_ulong addr);
|
char *uaccess_lock_user_string(CPUArchState *env, target_ulong addr);
|
||||||
#define lock_user_string(p) softmmu_lock_user_string(env, p)
|
#define lock_user_string(p) uaccess_lock_user_string(env, p)
|
||||||
|
|
||||||
void softmmu_unlock_user(CPUArchState *env, void *p,
|
void uaccess_unlock_user(CPUArchState *env, void *p,
|
||||||
target_ulong addr, target_ulong len);
|
target_ulong addr, target_ulong len);
|
||||||
#define unlock_user(s, args, len) softmmu_unlock_user(env, s, args, len)
|
#define unlock_user(s, args, len) uaccess_unlock_user(env, s, args, len)
|
||||||
|
|
||||||
ssize_t softmmu_strlen_user(CPUArchState *env, target_ulong addr);
|
ssize_t uaccess_strlen_user(CPUArchState *env, target_ulong addr);
|
||||||
#define target_strlen(p) softmmu_strlen_user(env, p)
|
#define target_strlen(p) uaccess_strlen_user(env, p)
|
||||||
|
|
||||||
#endif /* SEMIHOSTING_SOFTMMU_UACCESS_H */
|
#endif /* SEMIHOSTING_SOFTMMU_UACCESS_H */
|
@ -202,13 +202,13 @@ static LayoutInfo common_semi_find_bases(CPUState *cs)
|
|||||||
* The semihosting API has no concept of its errno being thread-safe,
|
* The semihosting API has no concept of its errno being thread-safe,
|
||||||
* as the API design predates SMP CPUs and was intended as a simple
|
* as the API design predates SMP CPUs and was intended as a simple
|
||||||
* real-hardware set of debug functionality. For QEMU, we make the
|
* real-hardware set of debug functionality. For QEMU, we make the
|
||||||
* errno be per-thread in linux-user mode; in softmmu it is a simple
|
* errno be per-thread in linux-user mode; in system-mode it is a simple
|
||||||
* global, and we assume that the guest takes care of avoiding any races.
|
* global, and we assume that the guest takes care of avoiding any races.
|
||||||
*/
|
*/
|
||||||
#ifndef CONFIG_USER_ONLY
|
#ifndef CONFIG_USER_ONLY
|
||||||
static target_ulong syscall_err;
|
static target_ulong syscall_err;
|
||||||
|
|
||||||
#include "semihosting/softmmu-uaccess.h"
|
#include "semihosting/uaccess.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static inline uint32_t get_swi_errno(CPUState *cs)
|
static inline uint32_t get_swi_errno(CPUState *cs)
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
* linux-user targets. However in that use case no configuration of
|
* linux-user targets. However in that use case no configuration of
|
||||||
* the outputs and command lines is supported.
|
* the outputs and command lines is supported.
|
||||||
*
|
*
|
||||||
* The config module is common to all softmmu targets however as vl.c
|
* The config module is common to all system targets however as vl.c
|
||||||
* needs to link against the helpers.
|
* needs to link against the helpers.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#ifdef CONFIG_USER_ONLY
|
#ifdef CONFIG_USER_ONLY
|
||||||
#include "qemu.h"
|
#include "qemu.h"
|
||||||
#else
|
#else
|
||||||
#include "semihosting/softmmu-uaccess.h"
|
#include "semihosting/uaccess.h"
|
||||||
#include CONFIG_DEVICES
|
#include CONFIG_DEVICES
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#ifdef CONFIG_USER_ONLY
|
#ifdef CONFIG_USER_ONLY
|
||||||
#include "qemu.h"
|
#include "qemu.h"
|
||||||
#else
|
#else
|
||||||
#include "semihosting/softmmu-uaccess.h"
|
#include "semihosting/uaccess.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,9 +9,9 @@
|
|||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
#include "semihosting/softmmu-uaccess.h"
|
#include "semihosting/uaccess.h"
|
||||||
|
|
||||||
void *softmmu_lock_user(CPUArchState *env, target_ulong addr,
|
void *uaccess_lock_user(CPUArchState *env, target_ulong addr,
|
||||||
target_ulong len, bool copy)
|
target_ulong len, bool copy)
|
||||||
{
|
{
|
||||||
void *p = malloc(len);
|
void *p = malloc(len);
|
||||||
@ -24,7 +24,7 @@ void *softmmu_lock_user(CPUArchState *env, target_ulong addr,
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t softmmu_strlen_user(CPUArchState *env, target_ulong addr)
|
ssize_t uaccess_strlen_user(CPUArchState *env, target_ulong addr)
|
||||||
{
|
{
|
||||||
int mmu_idx = cpu_mmu_index(env, false);
|
int mmu_idx = cpu_mmu_index(env, false);
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
@ -72,16 +72,16 @@ ssize_t softmmu_strlen_user(CPUArchState *env, target_ulong addr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
char *softmmu_lock_user_string(CPUArchState *env, target_ulong addr)
|
char *uaccess_lock_user_string(CPUArchState *env, target_ulong addr)
|
||||||
{
|
{
|
||||||
ssize_t len = softmmu_strlen_user(env, addr);
|
ssize_t len = uaccess_strlen_user(env, addr);
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return softmmu_lock_user(env, addr, len + 1, true);
|
return uaccess_lock_user(env, addr, len + 1, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void softmmu_unlock_user(CPUArchState *env, void *p,
|
void uaccess_unlock_user(CPUArchState *env, void *p,
|
||||||
target_ulong addr, target_ulong len)
|
target_ulong addr, target_ulong len)
|
||||||
{
|
{
|
||||||
if (len) {
|
if (len) {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Semihosting Stubs for SoftMMU
|
* Semihosting Stubs for system emulation
|
||||||
*
|
*
|
||||||
* Copyright (c) 2019 Linaro Ltd
|
* Copyright (c) 2019 Linaro Ltd
|
||||||
*
|
*
|
||||||
* Stubs for SoftMMU targets that don't actually do semihosting.
|
* Stubs for system targets that don't actually do semihosting.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
*/
|
*/
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#include "gdbstub/syscalls.h"
|
#include "gdbstub/syscalls.h"
|
||||||
#include "gdbstub/helpers.h"
|
#include "gdbstub/helpers.h"
|
||||||
#include "semihosting/syscalls.h"
|
#include "semihosting/syscalls.h"
|
||||||
#include "semihosting/softmmu-uaccess.h"
|
#include "semihosting/uaccess.h"
|
||||||
#include "hw/boards.h"
|
#include "hw/boards.h"
|
||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
#include "gdbstub/syscalls.h"
|
#include "gdbstub/syscalls.h"
|
||||||
#include "gdbstub/helpers.h"
|
#include "gdbstub/helpers.h"
|
||||||
#include "semihosting/softmmu-uaccess.h"
|
#include "semihosting/uaccess.h"
|
||||||
#include "semihosting/semihost.h"
|
#include "semihosting/semihost.h"
|
||||||
#include "semihosting/console.h"
|
#include "semihosting/console.h"
|
||||||
#include "semihosting/syscalls.h"
|
#include "semihosting/syscalls.h"
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#include "gdbstub/syscalls.h"
|
#include "gdbstub/syscalls.h"
|
||||||
#include "gdbstub/helpers.h"
|
#include "gdbstub/helpers.h"
|
||||||
#include "semihosting/syscalls.h"
|
#include "semihosting/syscalls.h"
|
||||||
#include "semihosting/softmmu-uaccess.h"
|
#include "semihosting/uaccess.h"
|
||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
|
|
||||||
#define HOSTED_EXIT 0
|
#define HOSTED_EXIT 0
|
||||||
|
Loading…
Reference in New Issue
Block a user