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);
58 sys_setxattr(struct tcb *tcp)
61 printpath(tcp, tcp->u_arg[0]);
63 printstr(tcp, tcp->u_arg[1], -1);
64 print_xattr_val(tcp, 0, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
66 printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
72 sys_fsetxattr(struct tcb *tcp)
75 printfd(tcp, tcp->u_arg[0]);
77 printstr(tcp, tcp->u_arg[1], -1);
78 print_xattr_val(tcp, 0, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
80 printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
86 sys_getxattr(struct tcb *tcp)
89 printpath(tcp, tcp->u_arg[0]);
91 printstr(tcp, tcp->u_arg[1], -1);
93 print_xattr_val(tcp, syserror(tcp), tcp->u_arg[2], tcp->u_arg[3],
100 sys_fgetxattr(struct tcb *tcp)
103 printfd(tcp, tcp->u_arg[0]);
105 printstr(tcp, tcp->u_arg[1], -1);
107 print_xattr_val(tcp, syserror(tcp), tcp->u_arg[2], tcp->u_arg[3],
114 print_xattr_list(struct tcb *tcp, unsigned long addr, unsigned long size)
117 tprintf("%#lx", addr);
123 (size < (unsigned long) tcp->u_rval) ?
124 size : (unsigned long) tcp->u_rval;
125 printstr(tcp, addr, len);
128 tprintf(", %lu", size);
132 sys_listxattr(struct tcb *tcp)
135 printpath(tcp, tcp->u_arg[0]);
138 print_xattr_list(tcp, tcp->u_arg[1], tcp->u_arg[2]);
144 sys_flistxattr(struct tcb *tcp)
147 printfd(tcp, tcp->u_arg[0]);
150 print_xattr_list(tcp, tcp->u_arg[1], tcp->u_arg[2]);
156 sys_removexattr(struct tcb *tcp)
159 printpath(tcp, tcp->u_arg[0]);
161 printstr(tcp, tcp->u_arg[1], -1);
167 sys_fremovexattr(struct tcb *tcp)
170 printfd(tcp, tcp->u_arg[0]);
172 printstr(tcp, tcp->u_arg[1], -1);