Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/drivers/passthrough/vtd/vtd.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (c) 2006, Intel Corporation.
3
 *
4
 * This program is free software; you can redistribute it and/or modify it
5
 * under the terms and conditions of the GNU General Public License,
6
 * version 2, as published by the Free Software Foundation.
7
 *
8
 * This program is distributed in the hope it will be useful, but WITHOUT
9
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
11
 * more details.
12
 *
13
 * You should have received a copy of the GNU General Public License along with
14
 * this program; If not, see <http://www.gnu.org/licenses/>.
15
 *
16
 * Copyright (C) Allen Kay <allen.m.kay@intel.com>
17
 * Copyright (C) Weidong Han <weidong.han@intel.com>
18
 */
19
20
#ifndef _VTD_H_
21
#define _VTD_H_
22
23
#include <xen/iommu.h>
24
25
57
#define MAP_ME_PHANTOM_FUNC      1
26
0
#define UNMAP_ME_PHANTOM_FUNC    0
27
28
/* Allow for both IOAPIC and IOSAPIC. */
29
#define IO_xAPIC_route_entry IO_APIC_route_entry
30
31
struct IO_APIC_route_remap_entry {
32
    union {
33
        u64 val;
34
        struct {
35
            u64 vector:8,
36
            delivery_mode:3,
37
            index_15:1,
38
            delivery_status:1,
39
            polarity:1,
40
            irr:1,
41
            trigger:1,
42
            mask:1,
43
            reserved:31,
44
            format:1,
45
            index_0_14:15;
46
        };
47
    };
48
};
49
50
struct msi_msg_remap_entry {
51
    union {
52
        u32 val;
53
        struct {
54
            u32 dontcare:2,
55
                index_15:1,
56
                SHV:1,
57
                format:1,
58
                index_0_14:15,
59
                addr_id_val:12; /* Interrupt address identifier value,
60
                                   must be 0FEEh */
61
        };
62
    } address_lo;   /* low 32 bits of msi message address */
63
64
    u32 address_hi; /* high 32 bits of msi message address */
65
    u32 data;   /* msi message data */
66
};
67
68
#endif // _VTD_H_