Xen Test Framework
Functions | Variables
traps.c File Reference
#include <xtf/traps.h>
#include <xtf/lib.h>
#include <xtf/hypercall.h>
#include <xtf/test.h>
#include <arch/idt.h>
#include <arch/lib.h>
#include <arch/processor.h>
#include <arch/segment.h>
#include <arch/pagetable.h>
#include <arch/symbolic-const.h>
+ Include dependency graph for traps.c:

Go to the source code of this file.

Functions

void entry_DE (void)
 
void entry_DB (void)
 
void entry_NMI (void)
 
void entry_BP (void)
 
void entry_OF (void)
 
void entry_BR (void)
 
void entry_UD (void)
 
void entry_NM (void)
 
void entry_DF (void)
 
void entry_TS (void)
 
void entry_NP (void)
 
void entry_SS (void)
 
void entry_GP (void)
 
void entry_PF (void)
 
void entry_MF (void)
 
void entry_AC (void)
 
void entry_MC (void)
 
void entry_XM (void)
 
void entry_VE (void)
 
void entry_ret_to_kernel (void)
 
void entry_SYSCALL (void)
 
void entry_SYSENTER (void)
 
void entry_EVTCHN (void)
 
int xtf_set_idte (unsigned int vector, const struct xtf_idte *idte)
 Set up an IDT Entry, in a guest agnostic way. More...
 
static int remap_linear (const void *linear, uint64_t flags)
 
static int remap_linear_range (const void *start, const void *end, uint64_t flags)
 
static void init_callbacks (void)
 
void arch_init_traps (void)
 
void arch_crash_hard (void)
 

Variables

xen_pv_start_info_tpv_start_info = NULL
 
struct xen_trap_info pv_default_trap_info []
 

Function Documentation

◆ entry_DE()

void entry_DE ( void  )

◆ entry_DB()

void entry_DB ( void  )

◆ entry_NMI()

void entry_NMI ( void  )

◆ entry_BP()

void entry_BP ( void  )

◆ entry_OF()

void entry_OF ( void  )

◆ entry_BR()

void entry_BR ( void  )

◆ entry_UD()

void entry_UD ( void  )

◆ entry_NM()

void entry_NM ( void  )

◆ entry_DF()

void entry_DF ( void  )

◆ entry_TS()

void entry_TS ( void  )

◆ entry_NP()

void entry_NP ( void  )

◆ entry_SS()

void entry_SS ( void  )

◆ entry_GP()

void entry_GP ( void  )

◆ entry_PF()

void entry_PF ( void  )

◆ entry_MF()

void entry_MF ( void  )

◆ entry_AC()

void entry_AC ( void  )

◆ entry_MC()

void entry_MC ( void  )

◆ entry_XM()

void entry_XM ( void  )

◆ entry_VE()

void entry_VE ( void  )

◆ entry_ret_to_kernel()

void entry_ret_to_kernel ( void  )

◆ entry_SYSCALL()

void entry_SYSCALL ( void  )
+ Here is the caller graph for this function:

◆ entry_SYSENTER()

void entry_SYSENTER ( void  )
+ Here is the caller graph for this function:

◆ entry_EVTCHN()

void entry_EVTCHN ( void  )
+ Here is the caller graph for this function:

◆ xtf_set_idte()

int xtf_set_idte ( unsigned int  vector,
const struct xtf_idte idte 
)

Set up an IDT Entry, in a guest agnostic way.

Construct an IDT Entry at the specified vector, using configuration provided in idte.

Parameters
vectorVector to set up.
idteDetails to set up.
Returns
0 for HVM guests, hypercall result for PV guests.

Definition at line 69 of file traps.c.

+ Here is the call graph for this function:

◆ remap_linear()

static int remap_linear ( const void *  linear,
uint64_t  flags 
)
static

Definition at line 80 of file traps.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ remap_linear_range()

static int remap_linear_range ( const void *  start,
const void *  end,
uint64_t  flags 
)
static

Definition at line 87 of file traps.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ init_callbacks()

static void init_callbacks ( void  )
static

Definition at line 101 of file traps.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arch_init_traps()

void arch_init_traps ( void  )

Definition at line 141 of file traps.c.

+ Here is the call graph for this function:

◆ arch_crash_hard()

void arch_crash_hard ( void  )

Definition at line 209 of file traps.c.

Variable Documentation

◆ pv_start_info

xen_pv_start_info_t* pv_start_info = NULL

Definition at line 14 of file traps.c.

◆ pv_default_trap_info

struct xen_trap_info pv_default_trap_info[]
Initial value:
=
{
{ X86_EXC_DE, 0|4, __KERN_CS, _u(entry_DE) },
{ X86_EXC_DB, 0|4, __KERN_CS, _u(entry_DB) },
{ X86_EXC_NMI, 0|4, __KERN_CS, _u(entry_NMI) },
{ X86_EXC_BP, 3|4, __KERN_CS, _u(entry_BP) },
{ X86_EXC_OF, 3|4, __KERN_CS, _u(entry_OF) },
{ X86_EXC_BR, 0|4, __KERN_CS, _u(entry_BR) },
{ X86_EXC_UD, 0|4, __KERN_CS, _u(entry_UD) },
{ X86_EXC_NM, 0|4, __KERN_CS, _u(entry_NM) },
{ X86_EXC_DF, 0|4, __KERN_CS, _u(entry_DF) },
{ X86_EXC_TS, 0|4, __KERN_CS, _u(entry_TS) },
{ X86_EXC_NP, 0|4, __KERN_CS, _u(entry_NP) },
{ X86_EXC_SS, 0|4, __KERN_CS, _u(entry_SS) },
{ X86_EXC_GP, 0|4, __KERN_CS, _u(entry_GP) },
{ X86_EXC_PF, 0|4, __KERN_CS, _u(entry_PF) },
{ X86_EXC_MF, 0|4, __KERN_CS, _u(entry_MF) },
{ X86_EXC_AC, 0|4, __KERN_CS, _u(entry_AC) },
{ X86_EXC_MC, 0|4, __KERN_CS, _u(entry_MC) },
{ X86_EXC_XM, 0|4, __KERN_CS, _u(entry_XM) },
{ X86_EXC_VE, 0|4, __KERN_CS, _u(entry_VE) },
{ X86_VEC_RET2KERN, 3|4, __KERN_CS, _u(entry_ret_to_kernel) },
{ 0, 0, 0, 0 },
}
void entry_MF(void)
void entry_DE(void)
void entry_DB(void)
void entry_MC(void)
void entry_ret_to_kernel(void)
void entry_GP(void)
void entry_UD(void)
void entry_AC(void)
void entry_DF(void)
void entry_BR(void)
void entry_SS(void)
void entry_NMI(void)
void entry_BP(void)
void entry_PF(void)
void entry_OF(void)
void entry_TS(void)
void entry_NP(void)
void entry_XM(void)
void entry_NM(void)
void entry_VE(void)
#define X86_VEC_RET2KERN
Return to kernel mode.
Definition: idt.h:15
#define _u(v)
Express an arbitrary value v as unsigned long.
Definition: numbers.h:53
#define X86_EXC_NP
Definition: processor.h:113
#define X86_EXC_PF
Definition: processor.h:116
#define X86_EXC_VE
Definition: processor.h:122
#define X86_EXC_AC
Definition: processor.h:119
#define X86_EXC_OF
Definition: processor.h:106
#define X86_EXC_MC
Definition: processor.h:120
#define X86_EXC_XM
Definition: processor.h:121
#define X86_EXC_DE
Definition: processor.h:102
#define X86_EXC_NMI
Definition: processor.h:104
#define X86_EXC_NM
Definition: processor.h:109
#define X86_EXC_MF
Definition: processor.h:118
#define X86_EXC_DF
Definition: processor.h:110
#define X86_EXC_DB
Definition: processor.h:103
#define X86_EXC_BR
Definition: processor.h:107
#define X86_EXC_GP
Definition: processor.h:115
#define X86_EXC_UD
Definition: processor.h:108
#define X86_EXC_BP
Definition: processor.h:105
#define X86_EXC_SS
Definition: processor.h:114
#define X86_EXC_TS
Definition: processor.h:112

Definition at line 42 of file traps.c.