File Index
Files and directories
Sign in
FILE

kexec.h

File preview with syntax highlighting.

linux-6.19.14/arch/loongarch/include/asm/kexec.h C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2/*
 3 * kexec.h for kexec
 4 *
 5 * Copyright (C) 2022 Loongson Technology Corporation Limited
 6 */
 7
 8#ifndef _ASM_KEXEC_H
 9#define _ASM_KEXEC_H
10
11#include <asm/stacktrace.h>
12#include <asm/page.h>
13
14/* Maximum physical address we can use pages from */
15#define KEXEC_SOURCE_MEMORY_LIMIT (-1UL)
16/* Maximum address we can reach in physical address mode */
17#define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL)
18 /* Maximum address we can use for the control code buffer */
19#define KEXEC_CONTROL_MEMORY_LIMIT (-1UL)
20
21/* Reserve a page for the control code buffer */
22#define KEXEC_CONTROL_PAGE_SIZE PAGE_SIZE
23
24/* The native architecture */
25#define KEXEC_ARCH KEXEC_ARCH_LOONGARCH
26
27static inline void crash_setup_regs(struct pt_regs *newregs,
28				    struct pt_regs *oldregs)
29{
30	if (oldregs)
31		memcpy(newregs, oldregs, sizeof(*newregs));
32	else
33		prepare_frametrace(newregs);
34}
35
36#define ARCH_HAS_KIMAGE_ARCH
37
38struct kimage_arch {
39	unsigned long efi_boot;
40	unsigned long cmdline_ptr;
41	unsigned long systable_ptr;
42};
43
44#ifdef CONFIG_KEXEC_FILE
45extern const struct kexec_file_ops kexec_efi_ops;
46extern const struct kexec_file_ops kexec_elf_ops;
47
48int arch_kimage_file_post_load_cleanup(struct kimage *image);
49#define arch_kimage_file_post_load_cleanup arch_kimage_file_post_load_cleanup
50
51extern int load_other_segments(struct kimage *image,
52		unsigned long kernel_load_addr, unsigned long kernel_size,
53		char *initrd, unsigned long initrd_len, char *cmdline, unsigned long cmdline_len);
54#endif
55
56typedef void (*do_kexec_t)(unsigned long efi_boot,
57			   unsigned long cmdline_ptr,
58			   unsigned long systable_ptr,
59			   unsigned long start_addr,
60			   unsigned long first_ind_entry);
61
62struct kimage;
63extern const unsigned char relocate_new_kernel[];
64extern const size_t relocate_new_kernel_size;
65extern void kexec_reboot(void);
66
67#ifdef CONFIG_SMP
68extern atomic_t kexec_ready_to_reboot;
69extern const unsigned char kexec_smp_wait[];
70#endif
71
72#endif /* !_ASM_KEXEC_H */
~/ Read-only file preview.