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

wakeup.h (1248B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Definitions for the wakeup data structure at the head of the
      4 * wakeup code.
      5 */
      6
      7#ifndef ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H
      8#define ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H
      9
     10#ifndef __ASSEMBLY__
     11#include <linux/types.h>
     12
     13/* This must match data at wakeup.S */
     14struct wakeup_header {
     15	u16 video_mode;		/* Video mode number */
     16	u32 pmode_entry;	/* Protected mode resume point, 32-bit only */
     17	u16 pmode_cs;
     18	u32 pmode_cr0;		/* Protected mode cr0 */
     19	u32 pmode_cr3;		/* Protected mode cr3 */
     20	u32 pmode_cr4;		/* Protected mode cr4 */
     21	u32 pmode_efer_low;	/* Protected mode EFER */
     22	u32 pmode_efer_high;
     23	u64 pmode_gdt;
     24	u32 pmode_misc_en_low;	/* Protected mode MISC_ENABLE */
     25	u32 pmode_misc_en_high;
     26	u32 pmode_behavior;	/* Wakeup routine behavior flags */
     27	u32 realmode_flags;
     28	u32 real_magic;
     29	u32 signature;		/* To check we have correct structure */
     30} __attribute__((__packed__));
     31
     32extern struct wakeup_header wakeup_header;
     33#endif
     34
     35#define WAKEUP_HEADER_OFFSET	8
     36#define WAKEUP_HEADER_SIGNATURE 0x51ee1111
     37
     38/* Wakeup behavior bits */
     39#define WAKEUP_BEHAVIOR_RESTORE_MISC_ENABLE     0
     40#define WAKEUP_BEHAVIOR_RESTORE_CR4		1
     41#define WAKEUP_BEHAVIOR_RESTORE_EFER		2
     42
     43#endif /* ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H */