cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

asm-offsets_32.c (1815B)


      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 <linux/efi.h>
      7
      8#include <asm/ucontext.h>
      9
     10/* workaround for a warning with -Wmissing-prototypes */
     11void foo(void);
     12
     13void foo(void)
     14{
     15	OFFSET(CPUINFO_x86, cpuinfo_x86, x86);
     16	OFFSET(CPUINFO_x86_vendor, cpuinfo_x86, x86_vendor);
     17	OFFSET(CPUINFO_x86_model, cpuinfo_x86, x86_model);
     18	OFFSET(CPUINFO_x86_stepping, cpuinfo_x86, x86_stepping);
     19	OFFSET(CPUINFO_cpuid_level, cpuinfo_x86, cpuid_level);
     20	OFFSET(CPUINFO_x86_capability, cpuinfo_x86, x86_capability);
     21	OFFSET(CPUINFO_x86_vendor_id, cpuinfo_x86, x86_vendor_id);
     22	BLANK();
     23
     24	OFFSET(PT_EBX, pt_regs, bx);
     25	OFFSET(PT_ECX, pt_regs, cx);
     26	OFFSET(PT_EDX, pt_regs, dx);
     27	OFFSET(PT_ESI, pt_regs, si);
     28	OFFSET(PT_EDI, pt_regs, di);
     29	OFFSET(PT_EBP, pt_regs, bp);
     30	OFFSET(PT_EAX, pt_regs, ax);
     31	OFFSET(PT_DS,  pt_regs, ds);
     32	OFFSET(PT_ES,  pt_regs, es);
     33	OFFSET(PT_FS,  pt_regs, fs);
     34	OFFSET(PT_GS,  pt_regs, gs);
     35	OFFSET(PT_ORIG_EAX, pt_regs, orig_ax);
     36	OFFSET(PT_EIP, pt_regs, ip);
     37	OFFSET(PT_CS,  pt_regs, cs);
     38	OFFSET(PT_EFLAGS, pt_regs, flags);
     39	OFFSET(PT_OLDESP, pt_regs, sp);
     40	OFFSET(PT_OLDSS,  pt_regs, ss);
     41	BLANK();
     42
     43	OFFSET(saved_context_gdt_desc, saved_context, gdt_desc);
     44	BLANK();
     45
     46	/*
     47	 * Offset from the entry stack to task stack stored in TSS. Kernel entry
     48	 * happens on the per-cpu entry-stack, and the asm code switches to the
     49	 * task-stack pointer stored in x86_tss.sp1, which is a copy of
     50	 * task->thread.sp0 where entry code can find it.
     51	 */
     52	DEFINE(TSS_entry2task_stack,
     53	       offsetof(struct cpu_entry_area, tss.x86_tss.sp1) -
     54	       offsetofend(struct cpu_entry_area, entry_stack_page.stack));
     55
     56	BLANK();
     57	DEFINE(EFI_svam, offsetof(efi_runtime_services_t, set_virtual_address_map));
     58}