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