fixed bugs in tzset and ttyslot, adapted malloc to allocate in bigger chunks
This commit is contained in:
parent
d747651237
commit
cc524c3d9a
3 changed files with 11 additions and 7 deletions
|
@ -1,6 +1,6 @@
|
||||||
/* $Header$ */
|
/* $Header$ */
|
||||||
|
|
||||||
#define CLICK_SIZE 16
|
#define CLICK_SIZE 4096
|
||||||
#if EM_WSIZE == EM_PSIZE
|
#if EM_WSIZE == EM_PSIZE
|
||||||
typedef unsigned int vir_bytes;
|
typedef unsigned int vir_bytes;
|
||||||
#else
|
#else
|
||||||
|
@ -13,7 +13,7 @@ extern bcopy();
|
||||||
#define NEXT(p) (* (char **) (p))
|
#define NEXT(p) (* (char **) (p))
|
||||||
|
|
||||||
#ifdef pdp
|
#ifdef pdp
|
||||||
#define BUGFIX 64
|
#define BUGFIX 64 /* cannot set break in top 64 bytes */
|
||||||
#else
|
#else
|
||||||
#define BUGFIX 0
|
#define BUGFIX 0
|
||||||
#endif
|
#endif
|
||||||
|
@ -25,11 +25,15 @@ static grow(len)
|
||||||
unsigned len;
|
unsigned len;
|
||||||
{
|
{
|
||||||
register char *p;
|
register char *p;
|
||||||
|
register int click = CLICK_SIZE;
|
||||||
|
|
||||||
p = (char *) ALIGN((vir_bytes) top + sizeof(char *) + len, CLICK_SIZE)
|
while (click >= 4) {
|
||||||
|
p = (char *) ALIGN((vir_bytes) top + sizeof(char *) + len, click)
|
||||||
+ BUGFIX;
|
+ BUGFIX;
|
||||||
if (p < top || brk(p - BUGFIX) < 0)
|
if (p > top && brk(p - BUGFIX) >= 0) break;
|
||||||
return(0);
|
click >>= 1;
|
||||||
|
}
|
||||||
|
if (click < 4) return(0);
|
||||||
top = p - (BUGFIX + sizeof(char *));
|
top = p - (BUGFIX + sizeof(char *));
|
||||||
for (p = bottom; NEXT(p) != 0; p = (char *) (* (vir_bytes *) p & ~BUSY))
|
for (p = bottom; NEXT(p) != 0; p = (char *) (* (vir_bytes *) p & ~BUSY))
|
||||||
;
|
;
|
||||||
|
|
|
@ -60,13 +60,14 @@ ttyslot()
|
||||||
#else
|
#else
|
||||||
for (;;) {
|
for (;;) {
|
||||||
tp = buf;
|
tp = buf;
|
||||||
for (;;) {
|
for (;;tp++) {
|
||||||
if (read(fd, tp, 1) != 1) {
|
if (read(fd, tp, 1) != 1) {
|
||||||
close(fd);
|
close(fd);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (*tp == '\n' || tp >= &buf[31]) {
|
if (*tp == '\n' || tp >= &buf[31]) {
|
||||||
*tp = 0;
|
*tp = 0;
|
||||||
|
if (tp < buf+2) buf[2] = '\0';
|
||||||
tp = buf+2;
|
tp = buf+2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,6 @@ tzset()
|
||||||
int sign = 1;
|
int sign = 1;
|
||||||
|
|
||||||
strncpy(__tzname[0], p, 3);
|
strncpy(__tzname[0], p, 3);
|
||||||
p += 3;
|
|
||||||
if (*(p += 3) == '-') {
|
if (*(p += 3) == '-') {
|
||||||
sign = -1;
|
sign = -1;
|
||||||
p++;
|
p++;
|
||||||
|
|
Loading…
Add table
Reference in a new issue