mirror of
https://github.com/mii443/qemu.git
synced 2025-08-22 15:15:46 +00:00
{linux,bsd}-user: Introduce get_task_state()
A CPU's TaskState is stored in the CPUState's void *opaque field, accessing which is somewhat awkward due to having to use a cast. Introduce a wrapper and use it everywhere. Suggested-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Warner Losh <imp@bsdimp.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20240219141628.246823-3-iii@linux.ibm.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20240305121005.3528075-4-alex.bennee@linaro.org>
This commit is contained in:
committed by
Alex Bennée
parent
1ea96f1ded
commit
e4e5cb4a54
@ -74,7 +74,7 @@ static inline unsigned int vm_getl(CPUX86State *env,
|
||||
void save_v86_state(CPUX86State *env)
|
||||
{
|
||||
CPUState *cs = env_cpu(env);
|
||||
TaskState *ts = cs->opaque;
|
||||
TaskState *ts = get_task_state(cs);
|
||||
struct target_vm86plus_struct * target_v86;
|
||||
|
||||
if (!lock_user_struct(VERIFY_WRITE, target_v86, ts->target_v86, 0))
|
||||
@ -134,7 +134,7 @@ static inline void return_to_32bit(CPUX86State *env, int retval)
|
||||
static inline int set_IF(CPUX86State *env)
|
||||
{
|
||||
CPUState *cs = env_cpu(env);
|
||||
TaskState *ts = cs->opaque;
|
||||
TaskState *ts = get_task_state(cs);
|
||||
|
||||
ts->v86flags |= VIF_MASK;
|
||||
if (ts->v86flags & VIP_MASK) {
|
||||
@ -147,7 +147,7 @@ static inline int set_IF(CPUX86State *env)
|
||||
static inline void clear_IF(CPUX86State *env)
|
||||
{
|
||||
CPUState *cs = env_cpu(env);
|
||||
TaskState *ts = cs->opaque;
|
||||
TaskState *ts = get_task_state(cs);
|
||||
|
||||
ts->v86flags &= ~VIF_MASK;
|
||||
}
|
||||
@ -165,7 +165,7 @@ static inline void clear_AC(CPUX86State *env)
|
||||
static inline int set_vflags_long(unsigned long eflags, CPUX86State *env)
|
||||
{
|
||||
CPUState *cs = env_cpu(env);
|
||||
TaskState *ts = cs->opaque;
|
||||
TaskState *ts = get_task_state(cs);
|
||||
|
||||
set_flags(ts->v86flags, eflags, ts->v86mask);
|
||||
set_flags(env->eflags, eflags, SAFE_MASK);
|
||||
@ -179,7 +179,7 @@ static inline int set_vflags_long(unsigned long eflags, CPUX86State *env)
|
||||
static inline int set_vflags_short(unsigned short flags, CPUX86State *env)
|
||||
{
|
||||
CPUState *cs = env_cpu(env);
|
||||
TaskState *ts = cs->opaque;
|
||||
TaskState *ts = get_task_state(cs);
|
||||
|
||||
set_flags(ts->v86flags, flags, ts->v86mask & 0xffff);
|
||||
set_flags(env->eflags, flags, SAFE_MASK);
|
||||
@ -193,7 +193,7 @@ static inline int set_vflags_short(unsigned short flags, CPUX86State *env)
|
||||
static inline unsigned int get_vflags(CPUX86State *env)
|
||||
{
|
||||
CPUState *cs = env_cpu(env);
|
||||
TaskState *ts = cs->opaque;
|
||||
TaskState *ts = get_task_state(cs);
|
||||
unsigned int flags;
|
||||
|
||||
flags = env->eflags & RETURN_MASK;
|
||||
@ -210,7 +210,7 @@ static inline unsigned int get_vflags(CPUX86State *env)
|
||||
static void do_int(CPUX86State *env, int intno)
|
||||
{
|
||||
CPUState *cs = env_cpu(env);
|
||||
TaskState *ts = cs->opaque;
|
||||
TaskState *ts = get_task_state(cs);
|
||||
uint32_t int_addr, segoffs, ssp;
|
||||
unsigned int sp;
|
||||
|
||||
@ -269,7 +269,7 @@ void handle_vm86_trap(CPUX86State *env, int trapno)
|
||||
void handle_vm86_fault(CPUX86State *env)
|
||||
{
|
||||
CPUState *cs = env_cpu(env);
|
||||
TaskState *ts = cs->opaque;
|
||||
TaskState *ts = get_task_state(cs);
|
||||
uint32_t csp, ssp;
|
||||
unsigned int ip, sp, newflags, newip, newcs, opcode, intno;
|
||||
int data32, pref_done;
|
||||
@ -394,7 +394,7 @@ void handle_vm86_fault(CPUX86State *env)
|
||||
int do_vm86(CPUX86State *env, long subfunction, abi_ulong vm86_addr)
|
||||
{
|
||||
CPUState *cs = env_cpu(env);
|
||||
TaskState *ts = cs->opaque;
|
||||
TaskState *ts = get_task_state(cs);
|
||||
struct target_vm86plus_struct * target_v86;
|
||||
int ret;
|
||||
|
||||
|
Reference in New Issue
Block a user