vl, libmach, kernel: mips has 16K alignment for segments (for bigpages)
parent
80658d6ccf
commit
8caec8564d
|
@ -284,9 +284,14 @@ sysexec(va_list list)
|
|||
text = l2be(exec.text);
|
||||
entry = l2be(exec.entry);
|
||||
if(n==sizeof(Exec) && (magic == AOUT_MAGIC)){
|
||||
if(magic == S_MAGIC){
|
||||
switch(magic){
|
||||
case S_MAGIC:
|
||||
text += 8;
|
||||
align = 0x200000ull; /* 2MB segment alignment for amd64 */
|
||||
break;
|
||||
case V_MAGIC:
|
||||
align = 0x4000ull; /* MIPS has 16K page alignment */
|
||||
break;
|
||||
}
|
||||
if(text >= (USTKTOP-USTKSIZE)-(UTZERO+sizeof(Exec))
|
||||
|| entry < UTZERO+sizeof(Exec)
|
||||
|
|
|
@ -14,7 +14,7 @@ char *thestring = "mips";
|
|||
/*
|
||||
* -H0 -T0x40004C -D0x10000000 is abbrev unix
|
||||
* -H1 -T0x80020000 -R4 is bootp() format for 3k
|
||||
* -H2 -T4128 -R4096 is plan9 format
|
||||
* -H2 -T0x4020 -R0x4000 is plan9 format
|
||||
* -H3 -T0x80020000 -R8 is bootp() format for 4k
|
||||
* -H4 -T0x400000 -R4 is sgi unix coff executable
|
||||
* -H5 -T0x4000A0 -R4 is sgi unix elf executable
|
||||
|
@ -124,12 +124,12 @@ main(int argc, char *argv[])
|
|||
break;
|
||||
case 2: /* plan 9 */
|
||||
HEADR = 32L;
|
||||
if(INITTEXT == -1)
|
||||
INITTEXT = 4128;
|
||||
if(INITDAT == -1)
|
||||
INITDAT = 0;
|
||||
if(INITRND == -1)
|
||||
INITRND = 4096;
|
||||
INITRND = 16*1024;
|
||||
if(INITTEXT == -1)
|
||||
INITTEXT = INITRND+HEADR;
|
||||
break;
|
||||
case 3: /* boot for 4k */
|
||||
HEADR = 20L+56L+3*40L;
|
||||
|
|
|
@ -109,9 +109,9 @@ Mach mmips =
|
|||
"R31", /* name of link register */
|
||||
"setR30", /* static base register name */
|
||||
0, /* value */
|
||||
0x1000, /* page size */
|
||||
0xC0000000ULL, /* kernel base */
|
||||
0x40000000ULL, /* kernel text mask */
|
||||
16*1024, /* page size */
|
||||
0x80000000ULL, /* kernel base */
|
||||
0x80000000ULL, /* kernel text mask */
|
||||
0x7FFFFFFFULL, /* user stack top */
|
||||
4, /* quantization of pc */
|
||||
4, /* szaddr */
|
||||
|
|
Loading…
Reference in New Issue