#include <linux/kernel.h>
#include <linux/kdebug.h>
#include <linux/nospec.h>
#include <asm/desc.h>
#include <asm/fred.h>
#include <asm/idtentry.h>
#include <asm/syscall.h>
#include <asm/trapnr.h>
#include <asm/traps.h>
#define FRED_SYSCALL …
#define FRED_SYSENTER …
static noinstr void fred_bad_type(struct pt_regs *regs, unsigned long error_code)
{ … }
static noinstr void fred_intx(struct pt_regs *regs)
{ … }
static __always_inline void fred_other(struct pt_regs *regs)
{ … }
#define SYSVEC(_vector, _function) …
static idtentry_t sysvec_table[NR_SYSTEM_VECTORS] __ro_after_init = …;
static bool fred_setup_done __initdata;
void __init fred_install_sysvec(unsigned int sysvec, idtentry_t handler)
{ … }
static noinstr void fred_handle_spurious_interrupt(struct pt_regs *regs)
{ … }
void __init fred_complete_exception_setup(void)
{ … }
static noinstr void fred_extint(struct pt_regs *regs)
{ … }
static noinstr void fred_hwexc(struct pt_regs *regs, unsigned long error_code)
{ … }
static noinstr void fred_swexc(struct pt_regs *regs, unsigned long error_code)
{ … }
__visible noinstr void fred_entry_from_user(struct pt_regs *regs)
{ … }
__visible noinstr void fred_entry_from_kernel(struct pt_regs *regs)
{ … }
#if IS_ENABLED(CONFIG_KVM_INTEL)
__visible noinstr void __fred_entry_from_kvm(struct pt_regs *regs)
{ … }
#endif