file.c: move access and faccessat parsers to a separate file
* access.c: New file. * Makefile.am (strace_SOURCES): Add it. * file.c: Move sys_access, sys_faccessat and related code to access.c.
This commit is contained in:
parent
d590f3cdd8
commit
304cd81e46
@ -17,6 +17,7 @@ AM_CPPFLAGS = -I$(srcdir)/$(OS)/$(ARCH) -I$(srcdir)/$(OS) -I$(builddir)/$(OS)
|
|||||||
include xlat/Makemodule.am
|
include xlat/Makemodule.am
|
||||||
|
|
||||||
strace_SOURCES = \
|
strace_SOURCES = \
|
||||||
|
access.c \
|
||||||
aio.c \
|
aio.c \
|
||||||
bjm.c \
|
bjm.c \
|
||||||
block.c \
|
block.c \
|
||||||
|
30
access.c
Normal file
30
access.c
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#include "defs.h"
|
||||||
|
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
|
#include "xlat/access_flags.h"
|
||||||
|
|
||||||
|
static int
|
||||||
|
decode_access(struct tcb *tcp, int offset)
|
||||||
|
{
|
||||||
|
if (entering(tcp)) {
|
||||||
|
printpath(tcp, tcp->u_arg[offset]);
|
||||||
|
tprints(", ");
|
||||||
|
printflags(access_flags, tcp->u_arg[offset + 1], "?_OK");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
sys_access(struct tcb *tcp)
|
||||||
|
{
|
||||||
|
return decode_access(tcp, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
sys_faccessat(struct tcb *tcp)
|
||||||
|
{
|
||||||
|
if (entering(tcp))
|
||||||
|
print_dirfd(tcp, tcp->u_arg[0]);
|
||||||
|
return decode_access(tcp, 1);
|
||||||
|
}
|
27
file.c
27
file.c
@ -329,33 +329,6 @@ sys_creat(struct tcb *tcp)
|
|||||||
return RVAL_FD;
|
return RVAL_FD;
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "xlat/access_flags.h"
|
|
||||||
|
|
||||||
static int
|
|
||||||
decode_access(struct tcb *tcp, int offset)
|
|
||||||
{
|
|
||||||
if (entering(tcp)) {
|
|
||||||
printpath(tcp, tcp->u_arg[offset]);
|
|
||||||
tprints(", ");
|
|
||||||
printflags(access_flags, tcp->u_arg[offset + 1], "?_OK");
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
sys_access(struct tcb *tcp)
|
|
||||||
{
|
|
||||||
return decode_access(tcp, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
sys_faccessat(struct tcb *tcp)
|
|
||||||
{
|
|
||||||
if (entering(tcp))
|
|
||||||
print_dirfd(tcp, tcp->u_arg[0]);
|
|
||||||
return decode_access(tcp, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* several stats */
|
/* several stats */
|
||||||
|
|
||||||
#if defined(SPARC) || defined(SPARC64)
|
#if defined(SPARC) || defined(SPARC64)
|
||||||
|
Loading…
Reference in New Issue
Block a user