mirror of
https://github.com/qemu/qemu.git
synced 2025-08-09 10:25:06 +00:00
linux-user: Add i386 TLS setter
We can easily set the TLS on i386. Add code to do so. Signed-off-by: Alexander Graf <agraf@suse.de> [PMM: also remove "target_nptl=no" line from configure, for consistency with other patches in this series] Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
4ce6243dc6
commit
bc22eb447c
1
configure
vendored
1
configure
vendored
@ -4190,7 +4190,6 @@ TARGET_ABI_DIR=""
|
|||||||
|
|
||||||
case "$target_name" in
|
case "$target_name" in
|
||||||
i386)
|
i386)
|
||||||
target_nptl="no"
|
|
||||||
;;
|
;;
|
||||||
x86_64)
|
x86_64)
|
||||||
TARGET_BASE_ARCH=i386
|
TARGET_BASE_ARCH=i386
|
||||||
|
@ -28,6 +28,14 @@ static inline void cpu_clone_regs(CPUX86State *env, target_ulong newsp)
|
|||||||
env->regs[R_EAX] = 0;
|
env->regs[R_EAX] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: need to implement cpu_set_tls() */
|
#if defined(TARGET_ABI32)
|
||||||
|
abi_long do_set_thread_area(CPUX86State *env, abi_ulong ptr);
|
||||||
|
|
||||||
#endif
|
static inline void cpu_set_tls(CPUX86State *env, target_ulong newtls)
|
||||||
|
{
|
||||||
|
do_set_thread_area(env, newtls);
|
||||||
|
cpu_x86_load_seg(env, R_GS, env->segs[R_GS].selector);
|
||||||
|
}
|
||||||
|
#endif /* defined(TARGET_ABI32) */
|
||||||
|
|
||||||
|
#endif /* !defined(TARGET_CPU_H) */
|
||||||
|
@ -4055,7 +4055,7 @@ static abi_long do_modify_ldt(CPUX86State *env, int func, abi_ulong ptr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(TARGET_I386) && defined(TARGET_ABI32)
|
#if defined(TARGET_I386) && defined(TARGET_ABI32)
|
||||||
static abi_long do_set_thread_area(CPUX86State *env, abi_ulong ptr)
|
abi_long do_set_thread_area(CPUX86State *env, abi_ulong ptr)
|
||||||
{
|
{
|
||||||
uint64_t *gdt_table = g2h(env->gdt.base);
|
uint64_t *gdt_table = g2h(env->gdt.base);
|
||||||
struct target_modify_ldt_ldt_s ldt_info;
|
struct target_modify_ldt_ldt_s ldt_info;
|
||||||
|
Loading…
Reference in New Issue
Block a user