From 4ec93f94c92eec46433a962eb0f86b6f27909e6c Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Fri, 10 Jul 2015 23:56:39 +0200 Subject: kernel: use HDR_MAGIC constant to handle Exec header extension, make rebootcmd() handle AOUT_MAGIC macro --- sys/src/9/port/sysproc.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'sys/src/9/port/sysproc.c') diff --git a/sys/src/9/port/sysproc.c b/sys/src/9/port/sysproc.c index edd3f86f0..65f83b9bc 100644 --- a/sys/src/9/port/sysproc.c +++ b/sys/src/9/port/sysproc.c @@ -282,15 +282,16 @@ sysexec(va_list list) error(Ebadexec); magic = l2be(exec.magic); if(n == sizeof(Exec) && (magic == AOUT_MAGIC)){ - text = l2be(exec.text); entry = l2be(exec.entry); - switch(magic){ - case S_MAGIC: + text = l2be(exec.text); + if(magic & HDR_MAGIC) text += 8; - align = 0x200000; /* 2MB segment alignment for amd64 */ + switch(magic){ + case S_MAGIC: /* 2MB segment alignment for amd64 */ + align = 0x200000; break; - case V_MAGIC: - align = 0x4000; /* MIPS has 16K page alignment */ + case V_MAGIC: /* 16K segment alignment for mips */ + align = 0x4000; break; } if(text >= (USTKTOP-USTKSIZE)-(UTZERO+sizeof(Exec)) -- cgit v1.2.3