1#ifndef LINUX_KEXEC_INTERNAL_H 2#define LINUX_KEXEC_INTERNAL_H 3 4#include <linux/kexec.h> 5 6struct kimage *do_kimage_alloc_init(void); 7int sanity_check_segment_list(struct kimage *image); 8void kimage_free_page_list(struct list_head *list); 9void kimage_free(struct kimage *image); 10int kimage_load_segment(struct kimage *image, struct kexec_segment *segment); 11void kimage_terminate(struct kimage *image); 12int kimage_is_destination_range(struct kimage *image, 13 unsigned long start, unsigned long end); 14 15extern struct mutex kexec_mutex; 16 17#ifdef CONFIG_KEXEC_FILE 18struct 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 */ 27struct 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 39void kimage_file_post_load_cleanup(struct kimage *image); 40#else /* CONFIG_KEXEC_FILE */ 41static inline void kimage_file_post_load_cleanup(struct kimage *image) { } 42#endif /* CONFIG_KEXEC_FILE */ 43#endif /* LINUX_KEXEC_INTERNAL_H */ 44