12f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin#include "defs.h"
22f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin#include <fcntl.h>
32f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin#include <linux/inotify.h>
42f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin
50ed617bd66624cec6138102545d73b2e2346f1f6Dmitry V. Levin#include "xlat/inotify_flags.h"
60ed617bd66624cec6138102545d73b2e2346f1f6Dmitry V. Levin#include "xlat/inotify_init_flags.h"
72f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin
82f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levinint
92f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levinsys_inotify_add_watch(struct tcb *tcp)
102f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin{
112f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin	if (entering(tcp)) {
122f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		/* file descriptor */
132f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		printfd(tcp, tcp->u_arg[0]);
142f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		tprints(", ");
152f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		/* pathname */
162f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		printpath(tcp, tcp->u_arg[1]);
172f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		tprints(", ");
182f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		/* mask */
192f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		printflags(inotify_flags, tcp->u_arg[2], "IN_???");
202f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin	}
212f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin	return 0;
222f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin}
232f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin
242f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levinint
252f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levinsys_inotify_rm_watch(struct tcb *tcp)
262f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin{
272f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin	if (entering(tcp)) {
282f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		/* file descriptor */
292f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		printfd(tcp, tcp->u_arg[0]);
302f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		/* watch descriptor */
312f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		tprintf(", %d", (int) tcp->u_arg[1]);
322f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin	}
332f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin	return 0;
342f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin}
352f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin
362f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levinint
372f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levinsys_inotify_init1(struct tcb *tcp)
382f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin{
392f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin	if (entering(tcp))
402f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin		printflags(inotify_init_flags, tcp->u_arg[0], "IN_???");
412f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin	return 0;
422f332e937a549f7073a74ebeb66d0a4fe70040c9Dmitry V. Levin}
43