Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/asm/x86_64/regs.h
Line
Count
Source (jump to first uncovered line)
1
#ifndef _X86_64_REGS_H
2
#define _X86_64_REGS_H
3
4
#include <xen/types.h>
5
#include <public/xen.h>
6
7
0
#define ring_0(r)    (((r)->cs & 3) == 0)
8
0
#define ring_1(r)    (((r)->cs & 3) == 1)
9
#define ring_2(r)    (((r)->cs & 3) == 2)
10
0
#define ring_3(r)    (((r)->cs & 3) == 3)
11
12
#define guest_kernel_mode(v, r)                                 \
13
0
    (!is_pv_32bit_vcpu(v) ?                                     \
14
0
     (ring_3(r) && ((v)->arch.flags & TF_kernel_mode)) :        \
15
0
     (ring_1(r)))
16
17
#define permit_softint(dpl, v, r) \
18
0
    ((dpl) >= (guest_kernel_mode(v, r) ? 1 : 3))
19
20
/* Check for null trap callback handler: Is the EIP null? */
21
#define null_trap_bounce(v, tb) \
22
0
    (!is_pv_32bit_vcpu(v) ? ((tb)->eip == 0) : (((tb)->cs & ~3) == 0))
23
24
/* Number of bytes of on-stack execution state to be context-switched. */
25
/* NB. Segment registers and bases are not saved/restored on x86/64 stack. */
26
#define CTXT_SWITCH_STACK_BYTES (offsetof(struct cpu_user_regs, es))
27
28
#endif