aboutsummaryrefslogtreecommitdiff
path: root/include/util
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-04-10 16:36:12 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-04-12 20:41:34 +0200
commit72674fc880fa3a5e121e07f9dcdf6f79437a3011 (patch)
treebceed63ef051bffc68808ffd19df03ab17085a2e /include/util
parent58c9982e75c1b23b9c3ff9aad8295035866a67f0 (diff)
Split out Windows directory iteration code to a dir_iterator_t type
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include/util')
-rw-r--r--include/util/dir_iterator.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/include/util/dir_iterator.h b/include/util/dir_iterator.h
new file mode 100644
index 0000000..66c13f3
--- /dev/null
+++ b/include/util/dir_iterator.h
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: LGPL-3.0-or-later */
+/*
+ * dir_iterator.h
+ *
+ * Copyright (C) 2023 David Oberhollenzer <goliath@infraroot.at>
+ */
+#ifndef UTIL_DIR_ITERATOR_H
+#define UTIL_DIR_ITERATOR_H
+
+#include "sqfs/predef.h"
+
+typedef struct {
+ sqfs_s64 mtime;
+ sqfs_u64 dev;
+ sqfs_u64 rdev;
+ sqfs_u32 uid;
+ sqfs_u32 gid;
+ sqfs_u16 mode;
+
+ char name[];
+} dir_entry_t;
+
+typedef struct dir_iterator_t {
+ sqfs_object_t obj;
+
+ int (*next)(struct dir_iterator_t *it,
+ dir_entry_t **out);
+} dir_iterator_t;
+
+dir_iterator_t *dir_iterator_create(const char *path);
+
+#endif /* UTIL_DIR_ITERATOR_H */