1ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin#include "defs.h"
2ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin
3a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levinstatic void
4a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levindecode_chmod(struct tcb *tcp, const int offset)
5ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin{
6a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levin	printpath(tcp, tcp->u_arg[offset]);
78d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	tprints(", ");
88d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	print_numeric_umode_t(tcp->u_arg[offset + 1]);
9ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin}
10ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin
11a0bd3749fc6fdf6364c1e269a4c02e8c153eb84bDmitry V. LevinSYS_FUNC(chmod)
12ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin{
13a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levin	decode_chmod(tcp, 0);
14a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levin
15a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levin	return RVAL_DECODED;
16ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin}
17ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin
18a0bd3749fc6fdf6364c1e269a4c02e8c153eb84bDmitry V. LevinSYS_FUNC(fchmodat)
19ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin{
20a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levin	print_dirfd(tcp, tcp->u_arg[0]);
21a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levin	decode_chmod(tcp, 1);
22a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levin
23a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levin	return RVAL_DECODED;
24ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin}
25ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin
26a0bd3749fc6fdf6364c1e269a4c02e8c153eb84bDmitry V. LevinSYS_FUNC(fchmod)
27ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin{
28a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levin	printfd(tcp, tcp->u_arg[0]);
298d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	tprints(", ");
308d3743868ebce77fe03c5b1ff6435baa8d084293Dmitry V. Levin	print_numeric_umode_t(tcp->u_arg[1]);
31a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levin
32a4d45720d03e5bad080af6c50db98bfae3649021Dmitry V. Levin	return RVAL_DECODED;
33ad5cf1e5ae0fa02a1e580a01c04745e5ff52522dDmitry V. Levin}
34