summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2020-04-11 01:01:47 +0000
committerDmitry V. Levin <ldv@altlinux.org>2020-04-11 01:01:47 +0000
commit48ee2b32b1c799a1d44a809e6566d6f0515d586f (patch)
tree1def545c678be9e60719bf38f9632e93f0f0919e
parent41f4d8942449992cf950f3f00e19b32e87d440b7 (diff)
downloadstrace-48ee2b32b1c799a1d44a809e6566d6f0515d586f.tar.gz
Move kernel_dirent64 definition to kernel_dirent.h
... and rename kernel_dirent64 type to kernel_dirent64_t * tests/getdents64.c: Include "kernel_dirent.h", rename kernel_dirent64 to kernel_dirent64_t. (kernel_dirent64_t): Move ... * kernel_dirent.h: ... here.
-rw-r--r--kernel_dirent.h8
-rw-r--r--tests/getdents64.c17
2 files changed, 13 insertions, 12 deletions
diff --git a/kernel_dirent.h b/kernel_dirent.h
index 49487592c..0c0ad762c 100644
--- a/kernel_dirent.h
+++ b/kernel_dirent.h
@@ -18,4 +18,12 @@ typedef struct {
char d_name[1];
} kernel_dirent_t;
+typedef struct {
+ uint64_t d_ino;
+ uint64_t d_off;
+ unsigned short d_reclen;
+ unsigned char d_type;
+ char d_name[1];
+} kernel_dirent64_t;
+
#endif /* !STRACE_KERNEL_DIRENT_H */
diff --git a/tests/getdents64.c b/tests/getdents64.c
index 4e0a524ca..85c645372 100644
--- a/tests/getdents64.c
+++ b/tests/getdents64.c
@@ -19,6 +19,7 @@
# include <stdio.h>
# include <sys/stat.h>
# include <unistd.h>
+# include "kernel_dirent.h"
static const char fname[] =
"A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n"
@@ -39,14 +40,6 @@ static const char qname[] =
"A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n"
"A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nZ";
-typedef struct {
- uint64_t d_ino;
- uint64_t d_off;
- unsigned short d_reclen;
- unsigned char d_type;
- char d_name[256];
-} kernel_dirent64;
-
static char buf[8192];
static const char *
@@ -62,9 +55,9 @@ str_d_type(const unsigned char d_type)
}
}
static void
-print_dirent(const kernel_dirent64 *d)
+print_dirent(const kernel_dirent64_t *d)
{
- const unsigned int d_name_offset = offsetof(kernel_dirent64, d_name);
+ const unsigned int d_name_offset = offsetof(kernel_dirent64_t, d_name);
int d_name_len = d->d_reclen - d_name_offset;
assert(d_name_len > 0);
@@ -98,14 +91,14 @@ main(void)
count = (unsigned long) 0xfacefeed00000000ULL | sizeof(buf);
while ((rc = syscall(__NR_getdents64, 0, buf, count))) {
- kernel_dirent64 *d;
+ kernel_dirent64_t *d;
long i;
if (rc < 0)
perror_msg_and_skip("getdents64");
printf("getdents64(0, [");
for (i = 0; i < rc; i += d->d_reclen) {
- d = (kernel_dirent64 *) &buf[i];
+ d = (kernel_dirent64_t *) &buf[i];
if (i)
printf(", ");
print_dirent(d);