summaryrefslogtreecommitdiff
path: root/sys/src/9/port/sysproc.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-07-10 23:56:39 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2015-07-10 23:56:39 +0200
commit4ec93f94c92eec46433a962eb0f86b6f27909e6c (patch)
treeb34373278a5e12ed6a12edbbd59b21a6c01ed062 /sys/src/9/port/sysproc.c
parent3ca9ac70c4f41ff57617d4cfcf46caa304db9a01 (diff)
kernel: use HDR_MAGIC constant to handle Exec header extension, make rebootcmd() handle AOUT_MAGIC macro
Diffstat (limited to 'sys/src/9/port/sysproc.c')
-rw-r--r--sys/src/9/port/sysproc.c13
1 files changed, 7 insertions, 6 deletions
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))