~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/x86/kernel/asm-offsets.c

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0
  2 /*
  3  * Generate definitions needed by assembly language modules.
  4  * This code generates raw asm output which is post-processed to extract
  5  * and format the required data.
  6  */
  7 #define COMPILE_OFFSETS
  8 
  9 #include <linux/crypto.h>
 10 #include <crypto/aria.h>
 11 #include <linux/sched.h>
 12 #include <linux/stddef.h>
 13 #include <linux/hardirq.h>
 14 #include <linux/suspend.h>
 15 #include <linux/kbuild.h>
 16 #include <asm/processor.h>
 17 #include <asm/thread_info.h>
 18 #include <asm/sigframe.h>
 19 #include <asm/bootparam.h>
 20 #include <asm/suspend.h>
 21 #include <asm/tlbflush.h>
 22 #include <asm/tdx.h>
 23 
 24 #ifdef CONFIG_XEN
 25 #include <xen/interface/xen.h>
 26 #endif
 27 
 28 #ifdef CONFIG_X86_32
 29 # include "asm-offsets_32.c"
 30 #else
 31 # include "asm-offsets_64.c"
 32 #endif
 33 
 34 static void __used common(void)
 35 {
 36         BLANK();
 37         OFFSET(TASK_threadsp, task_struct, thread.sp);
 38 #ifdef CONFIG_STACKPROTECTOR
 39         OFFSET(TASK_stack_canary, task_struct, stack_canary);
 40 #endif
 41 
 42         BLANK();
 43         OFFSET(pbe_address, pbe, address);
 44         OFFSET(pbe_orig_address, pbe, orig_address);
 45         OFFSET(pbe_next, pbe, next);
 46 
 47 #if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION)
 48         BLANK();
 49         OFFSET(IA32_SIGCONTEXT_ax, sigcontext_32, ax);
 50         OFFSET(IA32_SIGCONTEXT_bx, sigcontext_32, bx);
 51         OFFSET(IA32_SIGCONTEXT_cx, sigcontext_32, cx);
 52         OFFSET(IA32_SIGCONTEXT_dx, sigcontext_32, dx);
 53         OFFSET(IA32_SIGCONTEXT_si, sigcontext_32, si);
 54         OFFSET(IA32_SIGCONTEXT_di, sigcontext_32, di);
 55         OFFSET(IA32_SIGCONTEXT_bp, sigcontext_32, bp);
 56         OFFSET(IA32_SIGCONTEXT_sp, sigcontext_32, sp);
 57         OFFSET(IA32_SIGCONTEXT_ip, sigcontext_32, ip);
 58 
 59         BLANK();
 60         OFFSET(IA32_RT_SIGFRAME_sigcontext, rt_sigframe_ia32, uc.uc_mcontext);
 61 #endif
 62 
 63 #ifdef CONFIG_XEN
 64         BLANK();
 65         OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask);
 66         OFFSET(XEN_vcpu_info_pending, vcpu_info, evtchn_upcall_pending);
 67         OFFSET(XEN_vcpu_info_arch_cr2, vcpu_info, arch.cr2);
 68 #endif
 69 
 70         BLANK();
 71         OFFSET(TDX_MODULE_rcx, tdx_module_args, rcx);
 72         OFFSET(TDX_MODULE_rdx, tdx_module_args, rdx);
 73         OFFSET(TDX_MODULE_r8,  tdx_module_args, r8);
 74         OFFSET(TDX_MODULE_r9,  tdx_module_args, r9);
 75         OFFSET(TDX_MODULE_r10, tdx_module_args, r10);
 76         OFFSET(TDX_MODULE_r11, tdx_module_args, r11);
 77         OFFSET(TDX_MODULE_r12, tdx_module_args, r12);
 78         OFFSET(TDX_MODULE_r13, tdx_module_args, r13);
 79         OFFSET(TDX_MODULE_r14, tdx_module_args, r14);
 80         OFFSET(TDX_MODULE_r15, tdx_module_args, r15);
 81         OFFSET(TDX_MODULE_rbx, tdx_module_args, rbx);
 82         OFFSET(TDX_MODULE_rdi, tdx_module_args, rdi);
 83         OFFSET(TDX_MODULE_rsi, tdx_module_args, rsi);
 84 
 85         BLANK();
 86         OFFSET(BP_scratch, boot_params, scratch);
 87         OFFSET(BP_secure_boot, boot_params, secure_boot);
 88         OFFSET(BP_loadflags, boot_params, hdr.loadflags);
 89         OFFSET(BP_hardware_subarch, boot_params, hdr.hardware_subarch);
 90         OFFSET(BP_version, boot_params, hdr.version);
 91         OFFSET(BP_kernel_alignment, boot_params, hdr.kernel_alignment);
 92         OFFSET(BP_init_size, boot_params, hdr.init_size);
 93         OFFSET(BP_pref_address, boot_params, hdr.pref_address);
 94 
 95         BLANK();
 96         DEFINE(PTREGS_SIZE, sizeof(struct pt_regs));
 97 
 98         /* TLB state for the entry code */
 99         OFFSET(TLB_STATE_user_pcid_flush_mask, tlb_state, user_pcid_flush_mask);
100 
101         /* Layout info for cpu_entry_area */
102         OFFSET(CPU_ENTRY_AREA_entry_stack, cpu_entry_area, entry_stack_page);
103         DEFINE(SIZEOF_entry_stack, sizeof(struct entry_stack));
104         DEFINE(MASK_entry_stack, (~(sizeof(struct entry_stack) - 1)));
105 
106         /* Offset for fields in tss_struct */
107         OFFSET(TSS_sp0, tss_struct, x86_tss.sp0);
108         OFFSET(TSS_sp1, tss_struct, x86_tss.sp1);
109         OFFSET(TSS_sp2, tss_struct, x86_tss.sp2);
110         OFFSET(X86_top_of_stack, pcpu_hot, top_of_stack);
111         OFFSET(X86_current_task, pcpu_hot, current_task);
112 #ifdef CONFIG_MITIGATION_CALL_DEPTH_TRACKING
113         OFFSET(X86_call_depth, pcpu_hot, call_depth);
114 #endif
115 #if IS_ENABLED(CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64)
116         /* Offset for fields in aria_ctx */
117         BLANK();
118         OFFSET(ARIA_CTX_enc_key, aria_ctx, enc_key);
119         OFFSET(ARIA_CTX_dec_key, aria_ctx, dec_key);
120         OFFSET(ARIA_CTX_rounds, aria_ctx, rounds);
121 #endif
122 
123 }
124 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php