1 // SPDX-License-Identifier: GPL-2.0 2 #ifndef __LINUX_KBUILD_H 3 # error "Please do not build this file directly, build asm-offsets.c instead" 4 #endif 5 6 #include <asm/ia32.h> 7 8 #if defined(CONFIG_KVM_GUEST) 9 #include <asm/kvm_para.h> 10 #endif 11 12 int main(void) 13 { 14 #ifdef CONFIG_PARAVIRT 15 #ifdef CONFIG_PARAVIRT_XXL 16 #ifdef CONFIG_DEBUG_ENTRY 17 OFFSET(PV_IRQ_save_fl, paravirt_patch_template, irq.save_fl); 18 #endif 19 #endif 20 BLANK(); 21 #endif 22 23 #if defined(CONFIG_KVM_GUEST) 24 OFFSET(KVM_STEAL_TIME_preempted, kvm_steal_time, preempted); 25 BLANK(); 26 #endif 27 28 #define ENTRY(entry) OFFSET(pt_regs_ ## entry, pt_regs, entry) 29 ENTRY(bx); 30 ENTRY(cx); 31 ENTRY(dx); 32 ENTRY(sp); 33 ENTRY(bp); 34 ENTRY(si); 35 ENTRY(di); 36 ENTRY(r8); 37 ENTRY(r9); 38 ENTRY(r10); 39 ENTRY(r11); 40 ENTRY(r12); 41 ENTRY(r13); 42 ENTRY(r14); 43 ENTRY(r15); 44 ENTRY(flags); 45 BLANK(); 46 #undef ENTRY 47 48 #define ENTRY(entry) OFFSET(saved_context_ ## entry, saved_context, entry) 49 ENTRY(cr0); 50 ENTRY(cr2); 51 ENTRY(cr3); 52 ENTRY(cr4); 53 ENTRY(gdt_desc); 54 BLANK(); 55 #undef ENTRY 56 57 BLANK(); 58 59 #ifdef CONFIG_STACKPROTECTOR 60 DEFINE(stack_canary_offset, offsetof(struct fixed_percpu_data, stack_canary)); 61 BLANK(); 62 #endif 63 return 0; 64 } 65