1#include "defs.h"
2#include <linux/fanotify.h>
3
4#include "xlat/fan_classes.h"
5#include "xlat/fan_init_flags.h"
6
7int
8sys_fanotify_init(struct tcb *tcp)
9{
10	unsigned flags;
11
12	if (exiting(tcp))
13		return 0;
14
15	flags = tcp->u_arg[0];
16	printxval(fan_classes, flags & FAN_ALL_CLASS_BITS, "FAN_CLASS_???");
17	flags &= ~FAN_ALL_CLASS_BITS;
18	if (flags) {
19		tprints("|");
20		printflags(fan_init_flags, flags, "FAN_???");
21	}
22	tprints(", ");
23	tprint_open_modes((unsigned) tcp->u_arg[1]);
24
25	return 0;
26}
27
28#include "xlat/fan_mark_flags.h"
29#include "xlat/fan_event_flags.h"
30
31int
32sys_fanotify_mark(struct tcb *tcp)
33{
34	if (exiting(tcp))
35		return 0;
36
37	printfd(tcp, tcp->u_arg[0]);
38	tprints(", ");
39	printflags(fan_mark_flags, (unsigned) tcp->u_arg[1], "FAN_MARK_???");
40	tprints(", ");
41	printflags(fan_event_flags, tcp->u_arg[2], "FAN_???");
42	tprints(", ");
43	if ((int) tcp->u_arg[3] == FAN_NOFD)
44		tprints("FAN_NOFD, ");
45	else
46		print_dirfd(tcp, tcp->u_arg[3]);
47	printpath(tcp, tcp->u_arg[4]);
48
49	return 0;
50}
51