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 
SYS_FUNC(syslog)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