📄 smblog.c
字号:
#include "headers.h"static QLock logreflock, logprintlock;static int locked;voidsmbloglock(void){ qlock(&logreflock); if (locked++ == 0) qlock(&logprintlock); qunlock(&logreflock);}voidsmblogunlock(void){ qlock(&logreflock); if (locked && --locked == 0) qunlock(&logprintlock); qunlock(&logreflock);}static intsmbloglockedvprint(char *fmt, va_list ap){ if (smbglobals.log.fd >= 0) vfprint(smbglobals.log.fd, fmt, ap); if (smbglobals.log.print) vfprint(2, fmt, ap); return 0;}intsmblogvprint(int cmd, char *fmt, va_list ap){ if (cmd < 0 || smboptable[cmd].debug) { smbloglock(); smbloglockedvprint(fmt, ap); smblogunlock(); } return 0;}intsmblogprint(int cmd, char *fmt, ...){ if (cmd < 0 || smboptable[cmd].debug) { va_list ap; va_start(ap, fmt); smblogvprint(cmd, fmt, ap); va_end(ap); } return 0;}intsmblogprintif(int v, char *fmt, ...){ if (v) { va_list ap; va_start(ap, fmt); smbloglock(); smbloglockedvprint(fmt, ap); smblogunlock(); va_end(ap); } return 0;}voidsmblogdata(int cmd, int (*print)(int cmd, char *fmt, ...), void *ap, long n, long limit){ uchar *p = ap; long i; long saven; i = 0; saven = n; if (saven > limit) n = limit; while (i < n) { int l = n - i < 16 ? n - i : 16; int b; (*print)(cmd, "0x%.4lux ", i); for (b = 0; b < l; b += 2) { (*print)(cmd, " %.2ux", p[i + b]); if (b < l - 1) (*print)(cmd, "%.2ux", p[i + b + 1]); else (*print)(cmd, " "); } while (b < 16) { (*print)(cmd, " "); b += 2; } (*print)(cmd, " "); for (b = 0; b < l; b++) if (p[i + b] >= ' ' && p[i + b] <= '~') (*print)(cmd, "%c", p[i + b]); else (*print)(cmd, "."); (*print)(cmd, "\n"); i += l; } if (saven > limit) (*print)(cmd, "0x%.4ux ...\n0x%.4ux\n", limit, saven);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -