Changeset View
Changeset View
Standalone View
Standalone View
head/sys/amd64/linux/linux_machdep.c
Show First 20 Lines • Show All 278 Lines • ▼ Show 20 Lines | linux_set_cloned_tls(struct thread *td, void *desc) | ||||
pcb->pcb_fsbase = (register_t)desc; | pcb->pcb_fsbase = (register_t)desc; | ||||
td->td_frame->tf_fs = _ufssel; | td->td_frame->tf_fs = _ufssel; | ||||
return (0); | return (0); | ||||
} | } | ||||
int futex_xchgl_nosmap(int oparg, uint32_t *uaddr, int *oldval); | int futex_xchgl_nosmap(int oparg, uint32_t *uaddr, int *oldval); | ||||
int futex_xchgl_smap(int oparg, uint32_t *uaddr, int *oldval); | int futex_xchgl_smap(int oparg, uint32_t *uaddr, int *oldval); | ||||
DEFINE_IFUNC(, int, futex_xchgl, (int, uint32_t *, int *), static) | DEFINE_IFUNC(, int, futex_xchgl, (int, uint32_t *, int *)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
futex_xchgl_smap : futex_xchgl_nosmap); | futex_xchgl_smap : futex_xchgl_nosmap); | ||||
} | } | ||||
int futex_addl_nosmap(int oparg, uint32_t *uaddr, int *oldval); | int futex_addl_nosmap(int oparg, uint32_t *uaddr, int *oldval); | ||||
int futex_addl_smap(int oparg, uint32_t *uaddr, int *oldval); | int futex_addl_smap(int oparg, uint32_t *uaddr, int *oldval); | ||||
DEFINE_IFUNC(, int, futex_addl, (int, uint32_t *, int *), static) | DEFINE_IFUNC(, int, futex_addl, (int, uint32_t *, int *)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
futex_addl_smap : futex_addl_nosmap); | futex_addl_smap : futex_addl_nosmap); | ||||
} | } | ||||
int futex_orl_nosmap(int oparg, uint32_t *uaddr, int *oldval); | int futex_orl_nosmap(int oparg, uint32_t *uaddr, int *oldval); | ||||
int futex_orl_smap(int oparg, uint32_t *uaddr, int *oldval); | int futex_orl_smap(int oparg, uint32_t *uaddr, int *oldval); | ||||
DEFINE_IFUNC(, int, futex_orl, (int, uint32_t *, int *), static) | DEFINE_IFUNC(, int, futex_orl, (int, uint32_t *, int *)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
futex_orl_smap : futex_orl_nosmap); | futex_orl_smap : futex_orl_nosmap); | ||||
} | } | ||||
int futex_andl_nosmap(int oparg, uint32_t *uaddr, int *oldval); | int futex_andl_nosmap(int oparg, uint32_t *uaddr, int *oldval); | ||||
int futex_andl_smap(int oparg, uint32_t *uaddr, int *oldval); | int futex_andl_smap(int oparg, uint32_t *uaddr, int *oldval); | ||||
DEFINE_IFUNC(, int, futex_andl, (int, uint32_t *, int *), static) | DEFINE_IFUNC(, int, futex_andl, (int, uint32_t *, int *)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
futex_andl_smap : futex_andl_nosmap); | futex_andl_smap : futex_andl_nosmap); | ||||
} | } | ||||
int futex_xorl_nosmap(int oparg, uint32_t *uaddr, int *oldval); | int futex_xorl_nosmap(int oparg, uint32_t *uaddr, int *oldval); | ||||
int futex_xorl_smap(int oparg, uint32_t *uaddr, int *oldval); | int futex_xorl_smap(int oparg, uint32_t *uaddr, int *oldval); | ||||
DEFINE_IFUNC(, int, futex_xorl, (int, uint32_t *, int *), static) | DEFINE_IFUNC(, int, futex_xorl, (int, uint32_t *, int *)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
futex_xorl_smap : futex_xorl_nosmap); | futex_xorl_smap : futex_xorl_nosmap); | ||||
} | } |