xref: /plan9/sys/src/cmd/ext2srv/chat.c (revision dc5a79c1208f0704eeb474acc990728f8b4854f5)
1*dc5a79c1SDavid du Colombier #include <u.h>
2*dc5a79c1SDavid du Colombier #include <libc.h>
3*dc5a79c1SDavid du Colombier #include <fcall.h>
4*dc5a79c1SDavid du Colombier #include <thread.h>
5*dc5a79c1SDavid du Colombier #include <9p.h>
6*dc5a79c1SDavid du Colombier #include "dat.h"
7*dc5a79c1SDavid du Colombier #include "fns.h"
8*dc5a79c1SDavid du Colombier 
9*dc5a79c1SDavid du Colombier #define	SIZE	1024
10*dc5a79c1SDavid du Colombier #define	DOTDOT	(&fmt+1)
11*dc5a79c1SDavid du Colombier 
12*dc5a79c1SDavid du Colombier int	chatty;
13*dc5a79c1SDavid du Colombier 
14*dc5a79c1SDavid du Colombier void
chat(char * fmt,...)15*dc5a79c1SDavid du Colombier chat(char *fmt, ...)
16*dc5a79c1SDavid du Colombier {
17*dc5a79c1SDavid du Colombier 	char buf[SIZE], *out;
18*dc5a79c1SDavid du Colombier 	va_list arg;
19*dc5a79c1SDavid du Colombier 
20*dc5a79c1SDavid du Colombier 	if (!chatty)
21*dc5a79c1SDavid du Colombier 		return;
22*dc5a79c1SDavid du Colombier 
23*dc5a79c1SDavid du Colombier 	va_start(arg, fmt);
24*dc5a79c1SDavid du Colombier 	out = vseprint(buf, buf+sizeof(buf), fmt, arg);
25*dc5a79c1SDavid du Colombier 	va_end(arg);
26*dc5a79c1SDavid du Colombier 	write(2, buf, (long)(out-buf));
27*dc5a79c1SDavid du Colombier }
28*dc5a79c1SDavid du Colombier 
29*dc5a79c1SDavid du Colombier void
mchat(char * fmt,...)30*dc5a79c1SDavid du Colombier mchat(char *fmt, ...)
31*dc5a79c1SDavid du Colombier {
32*dc5a79c1SDavid du Colombier 	char buf[SIZE], *out;
33*dc5a79c1SDavid du Colombier 	va_list arg;
34*dc5a79c1SDavid du Colombier 
35*dc5a79c1SDavid du Colombier 	va_start(arg, fmt);
36*dc5a79c1SDavid du Colombier 	out = vseprint(buf, buf+sizeof(buf), fmt, arg);
37*dc5a79c1SDavid du Colombier 	va_end(arg);
38*dc5a79c1SDavid du Colombier 	write(2, buf, (long)(out-buf));
39*dc5a79c1SDavid du Colombier }
40*dc5a79c1SDavid du Colombier void
panic(char * fmt,...)41*dc5a79c1SDavid du Colombier panic(char *fmt, ...)
42*dc5a79c1SDavid du Colombier {
43*dc5a79c1SDavid du Colombier 	char buf[SIZE];
44*dc5a79c1SDavid du Colombier 	va_list arg;
45*dc5a79c1SDavid du Colombier 	int n;
46*dc5a79c1SDavid du Colombier 
47*dc5a79c1SDavid du Colombier 	n = sprint(buf, "%s %d: panic ", argv0, getpid());
48*dc5a79c1SDavid du Colombier 	va_start(arg, fmt);
49*dc5a79c1SDavid du Colombier 	vseprint(buf+n, buf+sizeof(buf)-n, fmt, arg);
50*dc5a79c1SDavid du Colombier 	va_end(arg);
51*dc5a79c1SDavid du Colombier 	fprint(2, "%s: %r\n", buf);
52*dc5a79c1SDavid du Colombier 	exits("panic");
53*dc5a79c1SDavid du Colombier }
54