summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-12-28 19:01:53 +0100
committerLennart Poettering <lennart@poettering.net>2019-12-04 11:01:31 +0100
commit24a0b2c0abc0ac1320d743eeac28832e14602604 (patch)
treea98759cd8b9f9929c6ea78f52be203c92aab125a
parentc0dd3269535b346f7d803d6816631af0784bd5bd (diff)
downloadsystemd-24a0b2c0abc0ac1320d743eeac28832e14602604.tar.gz
missing: add XFS magic
-rw-r--r--src/basic/missing_magic.h5
-rw-r--r--src/basic/missing_xfs.h42
2 files changed, 47 insertions, 0 deletions
diff --git a/src/basic/missing_magic.h b/src/basic/missing_magic.h
index 4910cd368f..a05b5b5c3c 100644
--- a/src/basic/missing_magic.h
+++ b/src/basic/missing_magic.h
@@ -32,3 +32,8 @@
#ifndef MQUEUE_MAGIC
#define MQUEUE_MAGIC 0x19800202
#endif
+
+/* Not exposed yet (as of Linux 5.4). Defined in fs/xfs/libxfs/xfs_format.h */
+#ifndef XFS_SB_MAGIC
+#define XFS_SB_MAGIC 0x58465342
+#endif
diff --git a/src/basic/missing_xfs.h b/src/basic/missing_xfs.h
new file mode 100644
index 0000000000..9eac76dd67
--- /dev/null
+++ b/src/basic/missing_xfs.h
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: LGPL-2.1+ */
+#pragma once
+
+/* This is currently not exported in the public kernel headers, but the libxfs library code part of xfsprogs
+ * defines it as public header */
+
+#ifndef XFS_IOC_FSGEOMETRY
+#define XFS_IOC_FSGEOMETRY _IOR ('X', 124, struct xfs_fsop_geom)
+
+typedef struct xfs_fsop_geom {
+ uint32_t blocksize;
+ uint32_t rtextsize;
+ uint32_t agblocks;
+ uint32_t agcount;
+ uint32_t logblocks;
+ uint32_t sectsize;
+ uint32_t inodesize;
+ uint32_t imaxpct;
+ uint64_t datablocks;
+ uint64_t rtblocks;
+ uint64_t rtextents;
+ uint64_t logstart;
+ unsigned char uuid[16];
+ uint32_t sunit;
+ uint32_t swidth;
+ int32_t version;
+ uint32_t flags;
+ uint32_t logsectsize;
+ uint32_t rtsectsize;
+ uint32_t dirblocksize;
+ uint32_t logsunit;
+} xfs_fsop_geom_t;
+#endif
+
+#ifndef XFS_IOC_FSGROWFSDATA
+#define XFS_IOC_FSGROWFSDATA _IOW ('X', 110, struct xfs_growfs_data)
+
+typedef struct xfs_growfs_data {
+ uint64_t newblocks;
+ uint32_t imaxpct;
+} xfs_growfs_data_t;
+#endif