/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 | | */ |