1*b82fef82SJan Beulich /* 2*b82fef82SJan Beulich * Generate definitions needed by assembly language modules. 3*b82fef82SJan Beulich * This code generates raw asm output which is post-processed to extract 4*b82fef82SJan Beulich * and format the required data. 5*b82fef82SJan Beulich */ 6*b82fef82SJan Beulich #define COMPILE_OFFSETS 7*b82fef82SJan Beulich 8*b82fef82SJan Beulich #include <linux/crypto.h> 9*b82fef82SJan Beulich #include <linux/sched.h> 10*b82fef82SJan Beulich #include <linux/stddef.h> 11*b82fef82SJan Beulich #include <linux/hardirq.h> 12*b82fef82SJan Beulich #include <linux/suspend.h> 13*b82fef82SJan Beulich #include <linux/kbuild.h> 14*b82fef82SJan Beulich #include <asm/processor.h> 15*b82fef82SJan Beulich #include <asm/thread_info.h> 16*b82fef82SJan Beulich #include <asm/sigframe.h> 17*b82fef82SJan Beulich #include <asm/bootparam.h> 18*b82fef82SJan Beulich #include <asm/suspend.h> 19*b82fef82SJan Beulich 20*b82fef82SJan Beulich #ifdef CONFIG_XEN 21*b82fef82SJan Beulich #include <xen/interface/xen.h> 22*b82fef82SJan Beulich #endif 23*b82fef82SJan Beulich 249a163ed8SThomas Gleixner #ifdef CONFIG_X86_32 259a163ed8SThomas Gleixner # include "asm-offsets_32.c" 269a163ed8SThomas Gleixner #else 279a163ed8SThomas Gleixner # include "asm-offsets_64.c" 289a163ed8SThomas Gleixner #endif 29*b82fef82SJan Beulich 30*b82fef82SJan Beulich void common(void) { 31*b82fef82SJan Beulich BLANK(); 32*b82fef82SJan Beulich DEFINE(PAGE_SIZE_asm, PAGE_SIZE); 33*b82fef82SJan Beulich DEFINE(PAGE_SHIFT_asm, PAGE_SHIFT); 34*b82fef82SJan Beulich DEFINE(THREAD_SIZE_asm, THREAD_SIZE); 35*b82fef82SJan Beulich 36*b82fef82SJan Beulich BLANK(); 37*b82fef82SJan Beulich OFFSET(TI_flags, thread_info, flags); 38*b82fef82SJan Beulich OFFSET(TI_status, thread_info, status); 39*b82fef82SJan Beulich OFFSET(TI_addr_limit, thread_info, addr_limit); 40*b82fef82SJan Beulich OFFSET(TI_preempt_count, thread_info, preempt_count); 41*b82fef82SJan Beulich 42*b82fef82SJan Beulich BLANK(); 43*b82fef82SJan Beulich OFFSET(crypto_tfm_ctx_offset, crypto_tfm, __crt_ctx); 44*b82fef82SJan Beulich 45*b82fef82SJan Beulich BLANK(); 46*b82fef82SJan Beulich OFFSET(pbe_address, pbe, address); 47*b82fef82SJan Beulich OFFSET(pbe_orig_address, pbe, orig_address); 48*b82fef82SJan Beulich OFFSET(pbe_next, pbe, next); 49*b82fef82SJan Beulich 50*b82fef82SJan Beulich #ifdef CONFIG_PARAVIRT 51*b82fef82SJan Beulich BLANK(); 52*b82fef82SJan Beulich OFFSET(PARAVIRT_enabled, pv_info, paravirt_enabled); 53*b82fef82SJan Beulich OFFSET(PARAVIRT_PATCH_pv_cpu_ops, paravirt_patch_template, pv_cpu_ops); 54*b82fef82SJan Beulich OFFSET(PARAVIRT_PATCH_pv_irq_ops, paravirt_patch_template, pv_irq_ops); 55*b82fef82SJan Beulich OFFSET(PV_IRQ_irq_disable, pv_irq_ops, irq_disable); 56*b82fef82SJan Beulich OFFSET(PV_IRQ_irq_enable, pv_irq_ops, irq_enable); 57*b82fef82SJan Beulich OFFSET(PV_CPU_iret, pv_cpu_ops, iret); 58*b82fef82SJan Beulich OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit); 59*b82fef82SJan Beulich OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0); 60*b82fef82SJan Beulich OFFSET(PV_MMU_read_cr2, pv_mmu_ops, read_cr2); 61*b82fef82SJan Beulich #endif 62*b82fef82SJan Beulich 63*b82fef82SJan Beulich #ifdef CONFIG_XEN 64*b82fef82SJan Beulich BLANK(); 65*b82fef82SJan Beulich OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask); 66*b82fef82SJan Beulich OFFSET(XEN_vcpu_info_pending, vcpu_info, evtchn_upcall_pending); 67*b82fef82SJan Beulich #endif 68*b82fef82SJan Beulich 69*b82fef82SJan Beulich BLANK(); 70*b82fef82SJan Beulich OFFSET(BP_scratch, boot_params, scratch); 71*b82fef82SJan Beulich OFFSET(BP_loadflags, boot_params, hdr.loadflags); 72*b82fef82SJan Beulich OFFSET(BP_hardware_subarch, boot_params, hdr.hardware_subarch); 73*b82fef82SJan Beulich OFFSET(BP_version, boot_params, hdr.version); 74*b82fef82SJan Beulich OFFSET(BP_kernel_alignment, boot_params, hdr.kernel_alignment); 75*b82fef82SJan Beulich } 76