⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kexec.h

📁 Axis 221 camera embedded programing interface
💻 H
字号:
#ifndef LINUX_KEXEC_H#define LINUX_KEXEC_H#ifdef CONFIG_KEXEC#include <linux/types.h>#include <linux/list.h>#include <linux/linkage.h>#include <linux/compat.h>#include <linux/ioport.h>#include <asm/kexec.h>/* Verify architecture specific macros are defined */#ifndef KEXEC_SOURCE_MEMORY_LIMIT#error KEXEC_SOURCE_MEMORY_LIMIT not defined#endif#ifndef KEXEC_DESTINATION_MEMORY_LIMIT#error KEXEC_DESTINATION_MEMORY_LIMIT not defined#endif#ifndef KEXEC_CONTROL_MEMORY_LIMIT#error KEXEC_CONTROL_MEMORY_LIMIT not defined#endif#ifndef KEXEC_CONTROL_CODE_SIZE#error KEXEC_CONTROL_CODE_SIZE not defined#endif#ifndef KEXEC_ARCH#error KEXEC_ARCH not defined#endif/* * This structure is used to hold the arguments that are used when loading * kernel binaries. */typedef unsigned long kimage_entry_t;#define IND_DESTINATION  0x1#define IND_INDIRECTION  0x2#define IND_DONE         0x4#define IND_SOURCE       0x8#define KEXEC_SEGMENT_MAX 16struct kexec_segment {	void __user *buf;	size_t bufsz;	unsigned long mem;	/* User space sees this as a (void *) ... */	size_t memsz;};#ifdef CONFIG_COMPATstruct compat_kexec_segment {	compat_uptr_t buf;	compat_size_t bufsz;	compat_ulong_t mem;	/* User space sees this as a (void *) ... */	compat_size_t memsz;};#endifstruct kimage {	kimage_entry_t head;	kimage_entry_t *entry;	kimage_entry_t *last_entry;	unsigned long destination;	unsigned long start;	struct page *control_code_page;	unsigned long nr_segments;	struct kexec_segment segment[KEXEC_SEGMENT_MAX];	struct list_head control_pages;	struct list_head dest_pages;	struct list_head unuseable_pages;	/* Address of next control page to allocate for crash kernels. */	unsigned long control_page;	/* Flags to indicate special processing */	unsigned int type : 1;#define KEXEC_TYPE_DEFAULT 0#define KEXEC_TYPE_CRASH   1};/* kexec interface functions */extern NORET_TYPE void machine_kexec(struct kimage *image) ATTRIB_NORET;extern int machine_kexec_prepare(struct kimage *image);extern void machine_kexec_cleanup(struct kimage *image);extern asmlinkage long sys_kexec_load(unsigned long entry,					unsigned long nr_segments,					struct kexec_segment __user *segments,					unsigned long flags);#ifdef CONFIG_COMPATextern asmlinkage long compat_sys_kexec_load(unsigned long entry,				unsigned long nr_segments,				struct compat_kexec_segment __user *segments,				unsigned long flags);#endifextern struct page *kimage_alloc_control_pages(struct kimage *image,						unsigned int order);extern void crash_kexec(struct pt_regs *);int kexec_should_crash(struct task_struct *);void crash_save_cpu(struct pt_regs *regs, int cpu);extern struct kimage *kexec_image;extern struct kimage *kexec_crash_image;#ifndef kexec_flush_icache_page#define kexec_flush_icache_page(page)#endif#define KEXEC_ON_CRASH  0x00000001#define KEXEC_ARCH_MASK 0xffff0000/* These values match the ELF architecture values. * Unless there is a good reason that should continue to be the case. */#define KEXEC_ARCH_DEFAULT ( 0 << 16)#define KEXEC_ARCH_386     ( 3 << 16)#define KEXEC_ARCH_X86_64  (62 << 16)#define KEXEC_ARCH_PPC     (20 << 16)#define KEXEC_ARCH_PPC64   (21 << 16)#define KEXEC_ARCH_IA_64   (50 << 16)#define KEXEC_ARCH_S390    (22 << 16)#define KEXEC_ARCH_SH      (42 << 16)#define KEXEC_ARCH_MIPS_LE (10 << 16)#define KEXEC_ARCH_MIPS    ( 8 << 16)#define KEXEC_FLAGS    (KEXEC_ON_CRASH)  /* List of defined/legal kexec flags *//* Location of a reserved region to hold the crash kernel. */extern struct resource crashk_res;typedef u32 note_buf_t[MAX_NOTE_BYTES/4];extern note_buf_t *crash_notes;#else /* !CONFIG_KEXEC */struct pt_regs;struct task_struct;static inline void crash_kexec(struct pt_regs *regs) { }static inline int kexec_should_crash(struct task_struct *p) { return 0; }#endif /* CONFIG_KEXEC */#endif /* LINUX_KEXEC_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -