Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/xen/kimage.h
Line
Count
Source (jump to first uncovered line)
1
#ifndef __XEN_KIMAGE_H__
2
#define __XEN_KIMAGE_H__
3
4
0
#define IND_DESTINATION  0x1
5
0
#define IND_INDIRECTION  0x2
6
0
#define IND_DONE         0x4
7
0
#define IND_SOURCE       0x8
8
0
#define IND_ZERO        0x10
9
10
#ifndef __ASSEMBLY__
11
12
#include <xen/list.h>
13
#include <xen/mm.h>
14
#include <public/kexec.h>
15
16
0
#define KEXEC_SEGMENT_MAX 16
17
18
typedef paddr_t kimage_entry_t;
19
20
struct kexec_image {
21
    uint8_t type;
22
    uint16_t arch;
23
    uint64_t entry_maddr;
24
    uint32_t nr_segments;
25
    xen_kexec_segment_t *segments;
26
27
    kimage_entry_t head;
28
    struct page_info *entry_page;
29
    unsigned next_entry;
30
31
    struct page_info *control_code_page;
32
    struct page_info *aux_page;
33
34
    struct page_list_head control_pages;
35
    struct page_list_head dest_pages;
36
    struct page_list_head unusable_pages;
37
38
    /* Address of next control page to allocate for crash kernels. */
39
    paddr_t next_crash_page;
40
};
41
42
int kimage_alloc(struct kexec_image **rimage, uint8_t type, uint16_t arch,
43
                 uint64_t entry_maddr,
44
                 uint32_t nr_segments, xen_kexec_segment_t *segment);
45
void kimage_free(struct kexec_image *image);
46
int kimage_load_segments(struct kexec_image *image);
47
struct page_info *kimage_alloc_control_page(struct kexec_image *image,
48
                                            unsigned memflags);
49
50
kimage_entry_t *kimage_entry_next(kimage_entry_t *entry, bool_t compat);
51
mfn_t kimage_entry_mfn(kimage_entry_t *entry, bool_t compat);
52
unsigned long kimage_entry_ind(kimage_entry_t *entry, bool_t compat);
53
int kimage_build_ind(struct kexec_image *image, mfn_t ind_mfn,
54
                     bool_t compat);
55
56
#endif /* __ASSEMBLY__ */
57
58
#endif /* __XEN_KIMAGE_H__ */
59
60
/*
61
 * Local variables:
62
 * mode: C
63
 * c-file-style: "BSD"
64
 * c-basic-offset: 4
65
 * tab-width: 4
66
 * indent-tabs-mode: nil
67
 * End:
68
 */