blob: 0a52315d9c626abf5e17db2b348291e09efb6e15
1 | #ifndef LINUX_KEXEC_INTERNAL_H |
2 | #define LINUX_KEXEC_INTERNAL_H |
3 | |
4 | #include <linux/kexec.h> |
5 | |
6 | struct kimage *do_kimage_alloc_init(void); |
7 | int sanity_check_segment_list(struct kimage *image); |
8 | void kimage_free_page_list(struct list_head *list); |
9 | void kimage_free(struct kimage *image); |
10 | int kimage_load_segment(struct kimage *image, struct kexec_segment *segment); |
11 | void kimage_terminate(struct kimage *image); |
12 | int kimage_is_destination_range(struct kimage *image, |
13 | unsigned long start, unsigned long end); |
14 | |
15 | extern struct mutex kexec_mutex; |
16 | |
17 | #ifdef CONFIG_KEXEC_FILE |
18 | struct kexec_sha_region { |
19 | unsigned long start; |
20 | unsigned long len; |
21 | }; |
22 | |
23 | /* |
24 | * Keeps track of buffer parameters as provided by caller for requesting |
25 | * memory placement of buffer. |
26 | */ |
27 | struct kexec_buf { |
28 | struct kimage *image; |
29 | char *buffer; |
30 | unsigned long bufsz; |
31 | unsigned long mem; |
32 | unsigned long memsz; |
33 | unsigned long buf_align; |
34 | unsigned long buf_min; |
35 | unsigned long buf_max; |
36 | bool top_down; /* allocate from top of memory hole */ |
37 | }; |
38 | |
39 | void kimage_file_post_load_cleanup(struct kimage *image); |
40 | #else /* CONFIG_KEXEC_FILE */ |
41 | static inline void kimage_file_post_load_cleanup(struct kimage *image) { } |
42 | #endif /* CONFIG_KEXEC_FILE */ |
43 | #endif /* LINUX_KEXEC_INTERNAL_H */ |
44 |