Server IP : 172.67.216.182 / Your IP : 162.158.108.88 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/src/linux-headers-5.15.0-142-generic/arch/x86/include/asm/ |
Upload File : |
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _ARCH_X86_REALMODE_H #define _ARCH_X86_REALMODE_H /* * Flag bit definitions for use with the flags field of the trampoline header * in the CONFIG_X86_64 variant. */ #define TH_FLAGS_SME_ACTIVE_BIT 0 #define TH_FLAGS_SME_ACTIVE BIT(TH_FLAGS_SME_ACTIVE_BIT) #ifndef __ASSEMBLY__ #include <linux/types.h> #include <asm/io.h> /* This must match data at realmode/rm/header.S */ struct real_mode_header { u32 text_start; u32 ro_end; /* SMP trampoline */ u32 trampoline_start; u32 trampoline_header; #ifdef CONFIG_AMD_MEM_ENCRYPT u32 sev_es_trampoline_start; #endif #ifdef CONFIG_X86_64 u32 trampoline_pgd; #endif /* ACPI S3 wakeup */ #ifdef CONFIG_ACPI_SLEEP u32 wakeup_start; u32 wakeup_header; #endif /* APM/BIOS reboot */ u32 machine_real_restart_asm; #ifdef CONFIG_X86_64 u32 machine_real_restart_seg; #endif }; /* This must match data at realmode/rm/trampoline_{32,64}.S */ struct trampoline_header { #ifdef CONFIG_X86_32 u32 start; u16 gdt_pad; u16 gdt_limit; u32 gdt_base; #else u64 start; u64 efer; u32 cr4; u32 flags; #endif }; extern struct real_mode_header *real_mode_header; extern unsigned char real_mode_blob_end[]; extern unsigned long initial_code; extern unsigned long initial_gs; extern unsigned long initial_stack; #ifdef CONFIG_AMD_MEM_ENCRYPT extern unsigned long initial_vc_handler; #endif extern unsigned char real_mode_blob[]; extern unsigned char real_mode_relocs[]; #ifdef CONFIG_X86_32 extern unsigned char startup_32_smp[]; extern unsigned char boot_gdt[]; #else extern unsigned char secondary_startup_64[]; extern unsigned char secondary_startup_64_no_verify[]; #endif static inline size_t real_mode_size_needed(void) { if (real_mode_header) return 0; /* already allocated. */ return ALIGN(real_mode_blob_end - real_mode_blob, PAGE_SIZE); } static inline void set_real_mode_mem(phys_addr_t mem) { real_mode_header = (struct real_mode_header *) __va(mem); } void reserve_real_mode(void); void load_trampoline_pgtable(void); #endif /* __ASSEMBLY__ */ #endif /* _ARCH_X86_REALMODE_H */