diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-07-10 23:56:39 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-07-10 23:56:39 +0200 |
commit | 4ec93f94c92eec46433a962eb0f86b6f27909e6c (patch) | |
tree | b34373278a5e12ed6a12edbbd59b21a6c01ed062 /sys/src/9/port/sysproc.c | |
parent | 3ca9ac70c4f41ff57617d4cfcf46caa304db9a01 (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.c | 13 |
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)) |