thread_struct
DEFINE(THREAD_CALLEE_REG, offsetof(struct thread_struct, callee_reg));
offsetof(struct thread_struct, fault_address));
struct thread_struct *t = &tsk->thread;
static inline bool thread_sm_enabled(struct thread_struct *thread)
static inline bool thread_za_enabled(struct thread_struct *thread)
static inline void *sve_pffr(struct thread_struct *thread)
static inline void *thread_zt_state(struct thread_struct *thread)
static inline unsigned int thread_get_vl(struct thread_struct *thread,
static inline unsigned int thread_get_sve_vl(struct thread_struct *thread)
static inline unsigned int thread_get_sme_vl(struct thread_struct *thread)
static inline unsigned int thread_get_cur_vl(struct thread_struct *thread)
BUILD_BUG_ON(sizeof_field(struct thread_struct, uw) !=
sizeof_field(struct thread_struct, uw.tp_value) +
sizeof_field(struct thread_struct, uw.tp2_value) +
sizeof_field(struct thread_struct, uw.fpmr) +
sizeof_field(struct thread_struct, uw.pad) +
sizeof_field(struct thread_struct, uw.fpsimd_state));
*offset = offsetof(struct thread_struct, uw);
*size = sizeof_field(struct thread_struct, uw);
struct thread_struct *t = &tsk->thread;
DEFINE(THREAD_KSP, offsetof(struct thread_struct, sp));
DEFINE(THREAD_FESR, offsetof(struct thread_struct, user_fp.fesr));
DEFINE(THREAD_FCR, offsetof(struct thread_struct, user_fp.fcr));
DEFINE(THREAD_FPREG, offsetof(struct thread_struct, user_fp.vr));
struct thread_struct;
OFFSET(_THREAD_STRUCT_SWITCH_SP, thread_struct, switch_sp);
struct thread_struct *t = &tsk->thread;
struct thread_struct *thread = &tsk->thread;
DEFINE(THREAD_KSP, offsetof(struct thread_struct, ksp));
DEFINE(THREAD_USP, offsetof(struct thread_struct, usp));
DEFINE(THREAD_SR, offsetof(struct thread_struct, sr));
DEFINE(THREAD_FC, offsetof(struct thread_struct, fc));
DEFINE(THREAD_CRP, offsetof(struct thread_struct, crp));
DEFINE(THREAD_ESP0, offsetof(struct thread_struct, esp0));
DEFINE(THREAD_FPREG, offsetof(struct thread_struct, fp));
DEFINE(THREAD_FPCNTL, offsetof(struct thread_struct, fpcntl));
DEFINE(THREAD_FPSTATE, offsetof(struct thread_struct, fpstate));
DEFINE(THREAD_KSP, offsetof(struct thread_struct, ksp));
DEFINE(PGDIR, offsetof(struct thread_struct, pgdir));
struct thread_struct *t = &tsk->thread;
OFFSET(THREAD_KSP, thread_struct, ksp);
OFFSET(THREAD_KPSR, thread_struct, kpsr);
struct thread_struct;
extern struct task_struct *_switch(struct thread_struct *prev,
struct thread_struct *next);
extern void tm_reclaim(struct thread_struct *thread,
extern void tm_recheckpoint(struct thread_struct *thread);
extern void tm_save_sprs(struct thread_struct *thread);
extern void tm_restore_sprs(struct thread_struct *thread);
OFFSET(KSP, thread_struct, ksp);
OFFSET(PT_REGS, thread_struct, regs);
OFFSET(THREAD_NORMSAVES, thread_struct, normsave[0]);
OFFSET(THREAD_FPEXC_MODE, thread_struct, fpexc_mode);
OFFSET(THREAD_FPSTATE, thread_struct, fp_state.fpr);
OFFSET(THREAD_FPSAVEAREA, thread_struct, fp_save_area);
OFFSET(THREAD_LOAD_FP, thread_struct, load_fp);
OFFSET(THREAD_VRSTATE, thread_struct, vr_state.vr);
OFFSET(THREAD_VRSAVEAREA, thread_struct, vr_save_area);
OFFSET(THREAD_USED_VR, thread_struct, used_vr);
OFFSET(THREAD_LOAD_VEC, thread_struct, load_vec);
OFFSET(THREAD_USED_VSR, thread_struct, used_vsr);
OFFSET(KSP_VSID, thread_struct, ksp_vsid);
OFFSET(PGDIR, thread_struct, pgdir);
OFFSET(SRR0, thread_struct, srr0);
OFFSET(SRR1, thread_struct, srr1);
OFFSET(DAR, thread_struct, dar);
OFFSET(DSISR, thread_struct, dsisr);
OFFSET(THR0, thread_struct, r0);
OFFSET(THR3, thread_struct, r3);
OFFSET(THR4, thread_struct, r4);
OFFSET(THR5, thread_struct, r5);
OFFSET(THR6, thread_struct, r6);
OFFSET(THR8, thread_struct, r8);
OFFSET(THR9, thread_struct, r9);
OFFSET(THR11, thread_struct, r11);
OFFSET(THLR, thread_struct, lr);
OFFSET(THCTR, thread_struct, ctr);
OFFSET(THSR0, thread_struct, sr0);
OFFSET(THREAD_EVR0, thread_struct, evr[0]);
OFFSET(THREAD_ACC, thread_struct, acc);
OFFSET(THREAD_USED_SPE, thread_struct, used_spe);
OFFSET(THREAD_KVM_SVCPU, thread_struct, kvm_shadow_vcpu);
OFFSET(THREAD_KVM_VCPU, thread_struct, kvm_vcpu);
OFFSET(THREAD_TM_TFHAR, thread_struct, tm_tfhar);
OFFSET(THREAD_TM_TEXASR, thread_struct, tm_texasr);
OFFSET(THREAD_TM_TFIAR, thread_struct, tm_tfiar);
OFFSET(THREAD_TM_TAR, thread_struct, tm_tar);
OFFSET(THREAD_TM_PPR, thread_struct, tm_ppr);
OFFSET(THREAD_TM_DSCR, thread_struct, tm_dscr);
OFFSET(THREAD_TM_AMR, thread_struct, tm_amr);
OFFSET(PT_CKPT_REGS, thread_struct, ckpt_regs);
OFFSET(THREAD_CKVRSTATE, thread_struct, ckvr_state.vr);
OFFSET(THREAD_CKVRSAVE, thread_struct, ckvrsave);
OFFSET(THREAD_CKFPSTATE, thread_struct, ckfp_state.fpr);
OFFSET(RTAS_SP, thread_struct, rtas_sp);
struct thread_struct *t = &tsk->thread;
extern void __tm_recheckpoint(struct thread_struct *thread);
void tm_recheckpoint(struct thread_struct *thread)
static inline void save_sprs(struct thread_struct *t)
static inline void restore_sprs(struct thread_struct *old_thread,
struct thread_struct *new_thread)
struct thread_struct *new_thread, *old_thread;
static void set_debug_reg_defaults(struct thread_struct *thread)
static void set_debug_reg_defaults(struct thread_struct *thread)
static void tm_reclaim_thread(struct thread_struct *thr, uint8_t cause)
struct thread_struct *thr = &tsk->thread;
struct thread_struct *thread = &task->thread;
#define TSO(f) (offsetof(struct thread_struct, f))
static int find_empty_ptrace_bp(struct thread_struct *thread)
static int find_empty_hw_brk(struct thread_struct *thread)
struct thread_struct *thread = &child->thread;
struct thread_struct *thread = &child->thread;
struct thread_struct *thread = &task->thread;
BUILD_BUG_ON(offsetof(struct thread_struct, acc) + sizeof(u64) !=
offsetof(struct thread_struct, spefscr));
BUILD_BUG_ON(offsetof(struct thread_struct, acc) + sizeof(u64) !=
offsetof(struct thread_struct, spefscr));
if (sp < stack_page + sizeof(struct thread_struct) ||
struct thread_struct *t = ¤t->thread;
struct thread_struct *t = ¤t->thread;
*offset = offsetof(struct thread_struct, fstate);
*size = sizeof_field(struct thread_struct, fstate);
struct thread_struct *thread = ¤t->thread;
static __always_inline void __save_user_fpu_regs(struct thread_struct *thread, int flags)
struct thread_struct *thread = ¤t->thread;
struct thread_struct *thread = ¤t->thread;
static inline void save_kernel_fpu_regs(struct thread_struct *thread)
static inline void restore_kernel_fpu_regs(struct thread_struct *thread)
typedef struct thread_struct thread_struct;
OFFSET(__THREAD_ksp, thread_struct, ksp);
struct thread_struct *thread = &task->thread;
struct thread_struct *thread, *next;
struct thread_struct *t = &tsk->thread;
struct thread_struct *next_t = &next->thread;
struct thread_struct *thread = &tsk->thread;
offsetof(struct thread_struct, fork_kpsr));
p->thread = (struct thread_struct) INIT_THREAD;
struct thread_struct *t = ¤t->thread;
struct thread_struct *thread = ¤t->thread;
static inline void native_load_tls(struct thread_struct *t, unsigned int cpu)
static inline void elf_common_init(struct thread_struct *t,
static inline void load_TLS(struct thread_struct *t, unsigned cpu)
struct thread_struct;
void (*load_tls)(struct thread_struct *t, unsigned int cpu);
static inline void refresh_sysenter_cs(struct thread_struct *thread)
struct thread_struct *__t = (t); \
struct thread_struct *t = &tsk->thread;
struct thread_struct *t = ¤t->thread;
struct thread_struct *t = &tsk->thread;
struct thread_struct *t = ¤t->thread;
struct thread_struct *t = &tsk->thread;
struct thread_struct *t = ¤t->thread;
struct thread_struct *prev = &prev_p->thread,
static __always_inline void x86_pkru_load(struct thread_struct *prev,
struct thread_struct *next)
static __always_inline void x86_fsgsbase_load(struct thread_struct *prev,
struct thread_struct *next)
struct thread_struct *prev = &prev_p->thread;
struct thread_struct *next = &next_p->thread;
struct thread_struct *thread = &(current->thread);
struct thread_struct *thread = &tsk->thread;
struct thread_struct *thread = &tsk->thread;
struct thread_struct *t = &tsk->thread;
struct thread_struct *thread = &tsk->thread;
struct thread_struct *t = ¤t->thread;
struct thread_struct *t = &target->thread;
struct thread_struct *t = &p->thread;
struct thread_struct *t = ¤t->thread;
struct thread_struct *t = &task->thread;
struct thread_struct *t = &task->thread;
struct thread_struct *t = &task->thread;
static void load_TLS_descriptor(struct thread_struct *t,
static void xen_load_tls(struct thread_struct *t, unsigned int cpu)
struct thread_struct *t = &tsk->thread;
struct thread_struct thread;