Changeset View
Changeset View
Standalone View
Standalone View
head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c
Show First 20 Lines • Show All 665 Lines • ▼ Show 20 Lines | dtrace_fuword64(void *uaddr) | ||||
return (dtrace_fuword64_nocheck(uaddr)); | return (dtrace_fuword64_nocheck(uaddr)); | ||||
} | } | ||||
/* | /* | ||||
* ifunc resolvers for SMAP support | * ifunc resolvers for SMAP support | ||||
*/ | */ | ||||
void dtrace_copy_nosmap(uintptr_t, uintptr_t, size_t); | void dtrace_copy_nosmap(uintptr_t, uintptr_t, size_t); | ||||
void dtrace_copy_smap(uintptr_t, uintptr_t, size_t); | void dtrace_copy_smap(uintptr_t, uintptr_t, size_t); | ||||
DEFINE_IFUNC(, void, dtrace_copy, (uintptr_t, uintptr_t, size_t), static) | DEFINE_IFUNC(, void, dtrace_copy, (uintptr_t, uintptr_t, size_t)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
dtrace_copy_smap : dtrace_copy_nosmap); | dtrace_copy_smap : dtrace_copy_nosmap); | ||||
} | } | ||||
void dtrace_copystr_nosmap(uintptr_t, uintptr_t, size_t, volatile uint16_t *); | void dtrace_copystr_nosmap(uintptr_t, uintptr_t, size_t, volatile uint16_t *); | ||||
void dtrace_copystr_smap(uintptr_t, uintptr_t, size_t, volatile uint16_t *); | void dtrace_copystr_smap(uintptr_t, uintptr_t, size_t, volatile uint16_t *); | ||||
DEFINE_IFUNC(, void, dtrace_copystr, (uintptr_t, uintptr_t, size_t, | DEFINE_IFUNC(, void, dtrace_copystr, (uintptr_t, uintptr_t, size_t, | ||||
volatile uint16_t *), static) | volatile uint16_t *)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
dtrace_copystr_smap : dtrace_copystr_nosmap); | dtrace_copystr_smap : dtrace_copystr_nosmap); | ||||
} | } | ||||
uintptr_t dtrace_fulword_nosmap(void *); | uintptr_t dtrace_fulword_nosmap(void *); | ||||
uintptr_t dtrace_fulword_smap(void *); | uintptr_t dtrace_fulword_smap(void *); | ||||
DEFINE_IFUNC(, uintptr_t, dtrace_fulword, (void *), static) | DEFINE_IFUNC(, uintptr_t, dtrace_fulword, (void *)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
dtrace_fulword_smap : dtrace_fulword_nosmap); | dtrace_fulword_smap : dtrace_fulword_nosmap); | ||||
} | } | ||||
uint8_t dtrace_fuword8_nocheck_nosmap(void *); | uint8_t dtrace_fuword8_nocheck_nosmap(void *); | ||||
uint8_t dtrace_fuword8_nocheck_smap(void *); | uint8_t dtrace_fuword8_nocheck_smap(void *); | ||||
DEFINE_IFUNC(, uint8_t, dtrace_fuword8_nocheck, (void *), static) | DEFINE_IFUNC(, uint8_t, dtrace_fuword8_nocheck, (void *)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
dtrace_fuword8_nocheck_smap : dtrace_fuword8_nocheck_nosmap); | dtrace_fuword8_nocheck_smap : dtrace_fuword8_nocheck_nosmap); | ||||
} | } | ||||
uint16_t dtrace_fuword16_nocheck_nosmap(void *); | uint16_t dtrace_fuword16_nocheck_nosmap(void *); | ||||
uint16_t dtrace_fuword16_nocheck_smap(void *); | uint16_t dtrace_fuword16_nocheck_smap(void *); | ||||
DEFINE_IFUNC(, uint16_t, dtrace_fuword16_nocheck, (void *), static) | DEFINE_IFUNC(, uint16_t, dtrace_fuword16_nocheck, (void *)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
dtrace_fuword16_nocheck_smap : dtrace_fuword16_nocheck_nosmap); | dtrace_fuword16_nocheck_smap : dtrace_fuword16_nocheck_nosmap); | ||||
} | } | ||||
uint32_t dtrace_fuword32_nocheck_nosmap(void *); | uint32_t dtrace_fuword32_nocheck_nosmap(void *); | ||||
uint32_t dtrace_fuword32_nocheck_smap(void *); | uint32_t dtrace_fuword32_nocheck_smap(void *); | ||||
DEFINE_IFUNC(, uint32_t, dtrace_fuword32_nocheck, (void *), static) | DEFINE_IFUNC(, uint32_t, dtrace_fuword32_nocheck, (void *)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
dtrace_fuword32_nocheck_smap : dtrace_fuword32_nocheck_nosmap); | dtrace_fuword32_nocheck_smap : dtrace_fuword32_nocheck_nosmap); | ||||
} | } | ||||
uint64_t dtrace_fuword64_nocheck_nosmap(void *); | uint64_t dtrace_fuword64_nocheck_nosmap(void *); | ||||
uint64_t dtrace_fuword64_nocheck_smap(void *); | uint64_t dtrace_fuword64_nocheck_smap(void *); | ||||
DEFINE_IFUNC(, uint64_t, dtrace_fuword64_nocheck, (void *), static) | DEFINE_IFUNC(, uint64_t, dtrace_fuword64_nocheck, (void *)) | ||||
{ | { | ||||
return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? | ||||
dtrace_fuword64_nocheck_smap : dtrace_fuword64_nocheck_nosmap); | dtrace_fuword64_nocheck_smap : dtrace_fuword64_nocheck_nosmap); | ||||
} | } |