Search
SailfishOS Open Build Service
>
Projects
>
nemo
:
devel:hw
:
nv:tegra3:nexus7
>
kexec-tools
> hardboot.patch
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File hardboot.patch of Package kexec-tools
diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h index f4df45c..32d75aa 100644 --- a/kexec/kexec-syscall.h +++ b/kexec/kexec-syscall.h @@ -78,6 +78,7 @@ static inline long kexec_reboot(void) #define KEXEC_ON_CRASH 0x00000001 #define KEXEC_PRESERVE_CONTEXT 0x00000002 +#define KEXEC_HARDBOOT 0x00000004 #define KEXEC_ARCH_MASK 0xffff0000 /* These values match the ELF architecture values. diff --git a/kexec/kexec.c b/kexec/kexec.c index abbe940..0c11112 100644 --- a/kexec/kexec.c +++ b/kexec/kexec.c @@ -893,6 +893,7 @@ void usage(void) " context of current kernel during kexec.\n" " --load-jump-back-helper Load a helper image to jump back\n" " to original kernel.\n" + " --load-hardboot Load the new kernel and hard boot it.\n" "\n" "Supported kernel file types and options: \n"); for (i = 0; i < file_types; i++) { @@ -1153,6 +1154,12 @@ int main(int argc, char *argv[]) case OPT_REUSE_INITRD: do_reuse_initrd = 1; break; + case OPT_LOAD_HARDBOOT: + do_load = 1; + do_exec = 0; + do_shutdown = 0; + kexec_flags = KEXEC_HARDBOOT; + break; default: break; } @@ -1172,6 +1179,12 @@ int main(int argc, char *argv[]) die("\"--mem-max\" parameter\n"); } + if (do_load && (kexec_flags & KEXEC_HARDBOOT) && mem_min == 0) { + printf("Please specify memory range used by kexeced kernel\n"); + printf("to avoid being overwritten by on reboot with the\n"); + die("\"--min-max\" parameter\n"); + } + fileind = optind; /* Reset getopt for the next pass; called in other source modules */ opterr = 1; diff --git a/kexec/kexec.h b/kexec/kexec.h index 9b59890..9006878 100644 --- a/kexec/kexec.h +++ b/kexec/kexec.h @@ -181,7 +181,8 @@ extern int file_types; #define OPT_LOAD_PRESERVE_CONTEXT 259 #define OPT_LOAD_JUMP_BACK_HELPER 260 #define OPT_ENTRY 261 -#define OPT_MAX 262 +#define OPT_LOAD_HARDBOOT 262 +#define OPT_MAX 263 #define KEXEC_OPTIONS \ { "help", 0, 0, OPT_HELP }, \ { "version", 0, 0, OPT_VERSION }, \ @@ -198,6 +199,7 @@ extern int file_types; { "mem-min", 1, 0, OPT_MEM_MIN }, \ { "mem-max", 1, 0, OPT_MEM_MAX }, \ { "reuseinitrd", 0, 0, OPT_REUSE_INITRD }, \ + { "load-hardboot", 0, 0, OPT_LOAD_HARDBOOT}, \ #define KEXEC_OPT_STR "hvdfxluet:p"