~kris/9p

9hist

5530b035262b635bcb6b2dae9af455f47dd47052 — David du Colombier 26 years ago 950cbf2
Plan 9 from Bell Labs 2000-01-20
2 files changed, 15 insertions(+), 14 deletions(-)

M port/alloc.c
M port/devcons.c
M port/alloc.c => port/alloc.c +6 -14
@@ 14,7 14,7 @@ static void punlock(Pool*);
typedef struct Private	Private;
struct Private {
	Lock		lk;
	char		msg[128];	/* a rock for messages to be printed at unlock */
	char		msg[256];	/* a rock for messages to be printed at unlock */
};

static Private pmainpriv;


@@ 69,13 69,8 @@ poolprint(Pool *p, char *fmt, ...)

	pv = p->private;
	va_start(v, fmt);
	n = doprint(pv->msg, pv->msg+sizeof pv->msg, fmt, v)-pv->msg;
	doprint(pv->msg+strlen(pv->msg), pv->msg+sizeof pv->msg, fmt, v);
	va_end(v);
	if(n >= sizeof pv->msg);
		n = sizeof(pv->msg)-1;
	if(n < 0)
		n = 0;
	pv->msg[n] = 0;
}

static void


@@ 84,18 79,15 @@ ppanic(Pool *p, char *fmt, ...)
	va_list v;
	int n;
	Private *pv;
	char msg[sizeof pv->msg];

	pv = p->private;
	va_start(v, fmt);
	n = doprint(pv->msg, pv->msg+sizeof pv->msg, fmt, v)-pv->msg;
	doprint(pv->msg+strlen(pv->msg), pv->msg+sizeof pv->msg, fmt, v);
	va_end(v);
	if(n >= sizeof pv->msg);
		n = sizeof(pv->msg)-1;
	if(n < 0)
		n = 0;
	pv->msg[n] = 0;
	memmove(msg, pv->msg, sizeof msg);
	iunlock(&pv->lk);
	panic("%s", pv->msg);
	panic("%s", msg);
}

static void

M port/devcons.c => port/devcons.c +9 -0
@@ 819,6 819,15 @@ conswrite(Chan *c, void *va, long n, vlong off)
			print("conswrite: reboot\n");
			exit(0);
		}
		if(strncmp(a, "malloc", 6) == 0){	/* rsc bug */
			a = malloc(2);
			strcpy(a, "hi");
			free(a);
			a = malloc(2);
			strcpy(a, "helo");
			free(a);
			panic("not reached conswrite");
		}
		if(strncmp(a, "panic", 5) == 0)
			panic("/dev/reboot");
		break;