3 #ifdef HAVE_LINUX_XATTR_H
4 # include <linux/xattr.h>
6 # define XATTR_CREATE 1
7 # define XATTR_REPLACE 2
10 #include "xlat/xattrflags.h"
13 print_xattr_val(struct tcb *tcp, int failed,
25 if (size != (unsigned long) len)
29 tprintf(", \"\", %ld", insize);
37 if (umoven(tcp, arg, len, buf) < 0) {
42 /* Don't print terminating NUL if there is one. */
43 if (buf[len - 1] == '\0')
47 print_quoted_string(buf, len, 0);
48 tprintf(", %ld", insize);
54 tprintf(", 0x%lx, %ld", arg, insize);
60 printpath(tcp, tcp->u_arg[0]);
62 printstr(tcp, tcp->u_arg[1], -1);
63 print_xattr_val(tcp, 0, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
65 printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
73 printfd(tcp, tcp->u_arg[0]);
75 printstr(tcp, tcp->u_arg[1], -1);
76 print_xattr_val(tcp, 0, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
78 printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
86 printpath(tcp, tcp->u_arg[0]);
88 printstr(tcp, tcp->u_arg[1], -1);
90 print_xattr_val(tcp, syserror(tcp), tcp->u_arg[2], tcp->u_arg[3],
99 printfd(tcp, tcp->u_arg[0]);
101 printstr(tcp, tcp->u_arg[1], -1);
103 print_xattr_val(tcp, syserror(tcp), tcp->u_arg[2], tcp->u_arg[3],
110 print_xattr_list(struct tcb *tcp, unsigned long addr, unsigned long size)
113 tprintf("%#lx", addr);
119 (size < (unsigned long) tcp->u_rval) ?
120 size : (unsigned long) tcp->u_rval;
121 printstr(tcp, addr, len);
124 tprintf(", %lu", size);
130 printpath(tcp, tcp->u_arg[0]);
133 print_xattr_list(tcp, tcp->u_arg[1], tcp->u_arg[2]);
141 printfd(tcp, tcp->u_arg[0]);
144 print_xattr_list(tcp, tcp->u_arg[1], tcp->u_arg[2]);
149 SYS_FUNC(removexattr)
152 printpath(tcp, tcp->u_arg[0]);
154 printstr(tcp, tcp->u_arg[1], -1);
159 SYS_FUNC(fremovexattr)
162 printfd(tcp, tcp->u_arg[0]);
164 printstr(tcp, tcp->u_arg[1], -1);