summaryrefslogtreecommitdiffstats
path: root/kexec/arch/x86_64/kexec-x86_64.h
blob: 21c3a738620e212f949905e918e9ad0a4f38865a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef KEXEC_X86_64_H
#define KEXEC_X86_64_H

#include "../i386/kexec-x86.h"

struct entry64_regs {
	uint64_t rax;
	uint64_t rbx;
	uint64_t rcx;
	uint64_t rdx;
	uint64_t rsi;
	uint64_t rdi;
	uint64_t rsp;
	uint64_t rbp;
	uint64_t r8;
	uint64_t r9;
	uint64_t r10;
	uint64_t r11;
	uint64_t r12;
	uint64_t r13;
	uint64_t r14;
	uint64_t r15;
	uint64_t rip;
};

int elf_x86_64_probe(const char *buf, off_t len);
int elf_x86_64_load(int argc, char **argv, const char *buf, off_t len,
	struct kexec_info *info);
void elf_x86_64_usage(void);

int bzImage64_probe(const char *buf, off_t len);
int bzImage64_load(int argc, char **argv, const char *buf, off_t len,
			struct kexec_info *info);
void bzImage64_usage(void);

int multiboot2_x86_load(int argc, char **argv, const char *buf, off_t len,
			struct kexec_info *info);
void multiboot2_x86_usage(void);
int multiboot2_x86_probe(const char *buf, off_t buf_len);

#endif /* KEXEC_X86_64_H */