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