Skip to content

Commit

Permalink
semihosting: Rename softmmu_FOO_user() -> uaccess_FOO_user()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
philmd authored and bonzini committed Oct 7, 2023
1 parent 3f7d1bd commit f14eced
Show file tree
Hide file tree
Showing 10 changed files with 31 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,12 @@
* This code is licensed under the GPL
*/

#ifndef SEMIHOSTING_SOFTMMU_UACCESS_H
#define SEMIHOSTING_SOFTMMU_UACCESS_H
#ifndef SEMIHOSTING_UACCESS_H
#define SEMIHOSTING_UACCESS_H

#ifdef CONFIG_USER_ONLY
#error Cannot include semihosting/uaccess.h from user emulation
#endif

#include "cpu.h"

Expand Down Expand Up @@ -42,18 +46,18 @@

#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);
#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);
#define lock_user_string(p) softmmu_lock_user_string(env, p)
char *uaccess_lock_user_string(CPUArchState *env, target_ulong addr);
#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);
#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);
#define target_strlen(p) softmmu_strlen_user(env, p)
ssize_t uaccess_strlen_user(CPUArchState *env, target_ulong addr);
#define target_strlen(p) uaccess_strlen_user(env, p)

#endif /* SEMIHOSTING_SOFTMMU_UACCESS_H */
4 changes: 2 additions & 2 deletions semihosting/arm-compat-semi.c
Original file line number Diff line number Diff line change
Expand Up @@ -202,13 +202,13 @@ static LayoutInfo common_semi_find_bases(CPUState *cs)
* 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
* 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.
*/
#ifndef CONFIG_USER_ONLY
static target_ulong syscall_err;

#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#endif

static inline uint32_t get_swi_errno(CPUState *cs)
Expand Down
2 changes: 1 addition & 1 deletion semihosting/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* linux-user targets. However in that use case no configuration of
* 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.
*
* SPDX-License-Identifier: GPL-2.0-or-later
Expand Down
2 changes: 1 addition & 1 deletion semihosting/guestfd.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#ifdef CONFIG_USER_ONLY
#include "qemu.h"
#else
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#include CONFIG_DEVICES
#endif

Expand Down
2 changes: 1 addition & 1 deletion semihosting/syscalls.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#ifdef CONFIG_USER_ONLY
#include "qemu.h"
#else
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#endif


Expand Down
14 changes: 7 additions & 7 deletions semihosting/uaccess.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@

#include "qemu/osdep.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)
{
void *p = malloc(len);
Expand All @@ -24,7 +24,7 @@ void *softmmu_lock_user(CPUArchState *env, target_ulong addr,
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);
size_t len = 0;
Expand Down Expand Up @@ -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) {
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)
{
if (len) {
Expand Down
4 changes: 2 additions & 2 deletions stubs/semihost.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/*
* Semihosting Stubs for SoftMMU
* Semihosting Stubs for system emulation
*
* 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
*/
Expand Down
2 changes: 1 addition & 1 deletion target/m68k/m68k-semi.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
#include "gdbstub/syscalls.h"
#include "gdbstub/helpers.h"
#include "semihosting/syscalls.h"
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#include "hw/boards.h"
#include "qemu/log.h"

Expand Down
2 changes: 1 addition & 1 deletion target/mips/tcg/sysemu/mips-semi.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include "qemu/log.h"
#include "gdbstub/syscalls.h"
#include "gdbstub/helpers.h"
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#include "semihosting/semihost.h"
#include "semihosting/console.h"
#include "semihosting/syscalls.h"
Expand Down
2 changes: 1 addition & 1 deletion target/nios2/nios2-semi.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
#include "gdbstub/syscalls.h"
#include "gdbstub/helpers.h"
#include "semihosting/syscalls.h"
#include "semihosting/softmmu-uaccess.h"
#include "semihosting/uaccess.h"
#include "qemu/log.h"

#define HOSTED_EXIT 0
Expand Down

0 comments on commit f14eced

Please sign in to comment.