1 #include "defs.h" 2 3 enum { 4 SYSLOG_ACTION_CLOSE = 0, 5 SYSLOG_ACTION_OPEN, 6 SYSLOG_ACTION_READ, 7 SYSLOG_ACTION_READ_ALL, 8 SYSLOG_ACTION_READ_CLEAR, 9 SYSLOG_ACTION_CLEAR, 10 SYSLOG_ACTION_CONSOLE_OFF, 11 SYSLOG_ACTION_CONSOLE_ON, 12 SYSLOG_ACTION_CONSOLE_LEVEL, 13 SYSLOG_ACTION_SIZE_UNREAD, 14 SYSLOG_ACTION_SIZE_BUFFER 15 }; 16 17 #include "xlat/syslog_action_type.h" 18 19 SYS_FUNC(syslog) 20 { 21 int type = tcp->u_arg[0]; 22 23 if (entering(tcp)) { 24 /* type */ 25 printxval(syslog_action_type, type, "SYSLOG_ACTION_???"); 26 tprints(", "); 27 } 28 29 switch (type) { 30 case SYSLOG_ACTION_READ: 31 case SYSLOG_ACTION_READ_ALL: 32 case SYSLOG_ACTION_READ_CLEAR: 33 if (entering(tcp)) 34 return 0; 35 break; 36 default: 37 if (entering(tcp)) { 38 tprintf("%#lx, %lu", 39 tcp->u_arg[1], tcp->u_arg[2]); 40 } 41 return 0; 42 } 43 44 /* bufp */ 45 if (syserror(tcp)) 46 tprintf("%#lx", tcp->u_arg[1]); 47 else 48 printstr(tcp, tcp->u_arg[1], tcp->u_rval); 49 /* len */ 50 tprintf(", %d", (int) tcp->u_arg[2]); 51 52 return 0; 53 } 54