(stkalign_t, STKALIGN): Replace.
This commit is contained in:
parent
aab54fcd54
commit
3bc2c1ae08
2 changed files with 8 additions and 10 deletions
|
@ -157,7 +157,7 @@ lwpCreate(int priority, void (*entry)(void *), int size, int flags, char *name,
|
||||||
redsize = flags & LWP_STACKCHECK ? LWP_REDZONE : 0;
|
redsize = flags & LWP_STACKCHECK ? LWP_REDZONE : 0;
|
||||||
size += 2 * redsize;
|
size += 2 * redsize;
|
||||||
size += LWP_EXTRASTACK;
|
size += LWP_EXTRASTACK;
|
||||||
size += sizeof(stkalign_t);
|
size += STKALIGN;
|
||||||
if (!(s = malloc(size)))
|
if (!(s = malloc(size)))
|
||||||
return 0;
|
return 0;
|
||||||
newp->flags = flags;
|
newp->flags = flags;
|
||||||
|
@ -168,13 +168,13 @@ lwpCreate(int priority, void (*entry)(void *), int size, int flags, char *name,
|
||||||
newp->argv = argv;
|
newp->argv = argv;
|
||||||
newp->ud = ud;
|
newp->ud = ud;
|
||||||
if (growsdown(&x)) {
|
if (growsdown(&x)) {
|
||||||
sp = s + size - sizeof(stkalign_t) - LWP_EXTRASTACK - redsize;
|
sp = s + size - STKALIGN - LWP_EXTRASTACK - redsize;
|
||||||
sp = (char *)0 + ((sp - (char *)0) & -sizeof(stkalign_t));
|
sp = (char *)0 + ((sp - (char *)0) & -STKALIGN);
|
||||||
newp->lowmark = sp + LWP_EXTRASTACK;
|
newp->lowmark = sp + LWP_EXTRASTACK;
|
||||||
newp->himark = s;
|
newp->himark = s;
|
||||||
} else {
|
} else {
|
||||||
sp = s + LWP_EXTRASTACK + redsize;
|
sp = s + LWP_EXTRASTACK + redsize;
|
||||||
sp = (char *)0 + ((sp - (char *)0) & -sizeof(stkalign_t));
|
sp = (char *)0 + ((sp - (char *)0) & -STKALIGN);
|
||||||
newp->lowmark = s;
|
newp->lowmark = s;
|
||||||
newp->himark = s + size - LWP_REDZONE;
|
newp->himark = s + size - LWP_REDZONE;
|
||||||
}
|
}
|
||||||
|
@ -421,7 +421,7 @@ lwpStackCheck(struct lwpProc *newp)
|
||||||
}
|
}
|
||||||
logerror("Thread %s stack overflow %d bytes (of %u)",
|
logerror("Thread %s stack overflow %d bytes (of %u)",
|
||||||
newp->name, amt,
|
newp->name, amt,
|
||||||
newp->size - 2 * LWP_REDZONE - (int)sizeof(stkalign_t));
|
newp->size - 2 * LWP_REDZONE - (int)STKALIGN);
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
for (lp = newp->lowmark, i = 0; i < LWP_REDZONE / sizeof(long);
|
for (lp = newp->lowmark, i = 0; i < LWP_REDZONE / sizeof(long);
|
||||||
|
@ -442,7 +442,7 @@ lwpStackCheck(struct lwpProc *newp)
|
||||||
}
|
}
|
||||||
logerror("Thread %s stack underflow %d bytes (of %u)",
|
logerror("Thread %s stack underflow %d bytes (of %u)",
|
||||||
newp->name, amt,
|
newp->name, amt,
|
||||||
newp->size - 2 * LWP_REDZONE - (int)sizeof(stkalign_t));
|
newp->size - 2 * LWP_REDZONE - (int)STKALIGN);
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,11 +105,9 @@ void lwpRestore(jmp_buf);
|
||||||
#define LWP_CHECKMARK 0x5a5a5a5aL
|
#define LWP_CHECKMARK 0x5a5a5a5aL
|
||||||
|
|
||||||
#ifdef hpux
|
#ifdef hpux
|
||||||
typedef struct {
|
#define STKALIGN 64
|
||||||
char x[64];
|
|
||||||
} stkalign_t;
|
|
||||||
#else
|
#else
|
||||||
typedef double stkalign_t;
|
#define STKALIGN sizeof(double)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* internal routines */
|
/* internal routines */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue