kexec_internal.h 976 B

12345678910111213141516171819202122232425262728
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef LINUX_KEXEC_INTERNAL_H
  3. #define LINUX_KEXEC_INTERNAL_H
  4. #include <linux/kexec.h>
  5. struct kimage *do_kimage_alloc_init(void);
  6. int sanity_check_segment_list(struct kimage *image);
  7. void kimage_free_page_list(struct list_head *list);
  8. void kimage_free(struct kimage *image);
  9. int kimage_load_segment(struct kimage *image, struct kexec_segment *segment);
  10. void kimage_terminate(struct kimage *image);
  11. int kimage_is_destination_range(struct kimage *image,
  12. unsigned long start, unsigned long end);
  13. int machine_kexec_post_load(struct kimage *image);
  14. extern struct mutex kexec_mutex;
  15. #ifdef CONFIG_KEXEC_FILE
  16. #include <linux/purgatory.h>
  17. void kimage_file_post_load_cleanup(struct kimage *image);
  18. extern char kexec_purgatory[];
  19. extern size_t kexec_purgatory_size;
  20. #else /* CONFIG_KEXEC_FILE */
  21. static inline void kimage_file_post_load_cleanup(struct kimage *image) { }
  22. #endif /* CONFIG_KEXEC_FILE */
  23. #endif /* LINUX_KEXEC_INTERNAL_H */