xref: /plan9-contrib/sys/src/9k/port/print.c (revision 9ef1f84b659abcb917c5c090acbce0772e494f21)
1*9ef1f84bSDavid du Colombier #include "u.h"
2*9ef1f84bSDavid du Colombier #include "../port/lib.h"
3*9ef1f84bSDavid du Colombier #include "mem.h"
4*9ef1f84bSDavid du Colombier #include "dat.h"
5*9ef1f84bSDavid du Colombier #include "fns.h"
6*9ef1f84bSDavid du Colombier 
7*9ef1f84bSDavid du Colombier static Lock fmtl;
8*9ef1f84bSDavid du Colombier 
9*9ef1f84bSDavid du Colombier void
_fmtlock(void)10*9ef1f84bSDavid du Colombier _fmtlock(void)
11*9ef1f84bSDavid du Colombier {
12*9ef1f84bSDavid du Colombier 	lock(&fmtl);
13*9ef1f84bSDavid du Colombier }
14*9ef1f84bSDavid du Colombier 
15*9ef1f84bSDavid du Colombier void
_fmtunlock(void)16*9ef1f84bSDavid du Colombier _fmtunlock(void)
17*9ef1f84bSDavid du Colombier {
18*9ef1f84bSDavid du Colombier 	unlock(&fmtl);
19*9ef1f84bSDavid du Colombier }
20*9ef1f84bSDavid du Colombier 
21*9ef1f84bSDavid du Colombier int
_efgfmt(Fmt *)22*9ef1f84bSDavid du Colombier _efgfmt(Fmt*)
23*9ef1f84bSDavid du Colombier {
24*9ef1f84bSDavid du Colombier 	return -1;
25*9ef1f84bSDavid du Colombier }
26*9ef1f84bSDavid du Colombier 
27*9ef1f84bSDavid du Colombier int
mregfmt(Fmt * f)28*9ef1f84bSDavid du Colombier mregfmt(Fmt* f)
29*9ef1f84bSDavid du Colombier {
30*9ef1f84bSDavid du Colombier 	Mreg mreg;
31*9ef1f84bSDavid du Colombier 
32*9ef1f84bSDavid du Colombier 	mreg = va_arg(f->args, Mreg);
33*9ef1f84bSDavid du Colombier 	if(sizeof(Mreg) == sizeof(uvlong))
34*9ef1f84bSDavid du Colombier 		return fmtprint(f, "%#16.16llux", (uvlong)mreg);
35*9ef1f84bSDavid du Colombier 	return fmtprint(f, "%#8.8ux", (uint)mreg);
36*9ef1f84bSDavid du Colombier }
37*9ef1f84bSDavid du Colombier 
38*9ef1f84bSDavid du Colombier void
fmtinit(void)39*9ef1f84bSDavid du Colombier fmtinit(void)
40*9ef1f84bSDavid du Colombier {
41*9ef1f84bSDavid du Colombier 	quotefmtinstall();
42*9ef1f84bSDavid du Colombier 	archfmtinstall();
43*9ef1f84bSDavid du Colombier }
44