Skip to content

Add the missing FIEMAP ioctl constants for loongarch64 - #195

Open
wszqkzqk wants to merge 1 commit into
sunfishcode:mainfrom
wszqkzqk:loongarch-ioctls
Open

Add the missing FIEMAP ioctl constants for loongarch64#195
wszqkzqk wants to merge 1 commit into
sunfishcode:mainfrom
wszqkzqk:loongarch-ioctls

Conversation

@wszqkzqk

Copy link
Copy Markdown

The pre-generated loongarch-ioctls.txt list is missing the FIEMAP constants that list.c emits for the other architectures, so the generated loongarch64 bindings lack FIEMAP_MAX_OFFSET, FIEMAP_FLAG_*, and all the FIEMAP_EXTENT_* flags. This breaks downstream users of these constants on loongarch64, found on building uv 0.12.5's uv-fs crate.

The added values are the arch-independent UAPI constants from include/uapi/linux/fiemap.h.

See also bytecodealliance/rustix#1664

Signed-off-by: Zhou Qiankang <wszqkzqk@qq.com>
wszqkzqk added a commit to wszqkzqk/loongarch-packages that referenced this pull request Aug 25, 2026
* linux-raw-sys 0.12.1 does not generate the FIEMAP extent flags in its loongarch64 bindings
* define them locally
* see also: sunfishcode/linux-raw-sys#195

Signed-off-by: Zhou Qiankang <wszqkzqk@qq.com>
wszqkzqk added a commit to lcpu-club/loongarch-packages that referenced this pull request Aug 26, 2026
* linux-raw-sys 0.12.1 does not generate the FIEMAP extent flags in its
loongarch64 bindings
* define them locally
* see also: sunfishcode/linux-raw-sys#195

Signed-off-by: Zhou Qiankang <wszqkzqk@qq.com>
@k0tran

k0tran commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Hi! I'm interested getting this merged too! Though it seems that the current changes only modify generated part and miss the generator. I would suggest adding something like this:

--- a/src/loongarch64/ioctl.rs
+++ b/src/loongarch64/ioctl.rs
@@ -104,6 +104,22 @@ pub const BLKDISCARDZEROES: u32 = 4732;
 pub const BLKSECDISCARD: u32 = 4733;
 pub const BLKROTATIONAL: u32 = 4734;
 pub const BLKZEROOUT: u32 = 4735;
+pub const FIEMAP_MAX_OFFSET: u32 = 18446744073709551615;
+pub const FIEMAP_FLAG_SYNC: u32 = 1;
+pub const FIEMAP_FLAG_XATTR: u32 = 2;
+pub const FIEMAP_FLAG_CACHE: u32 = 4;
+pub const FIEMAP_FLAGS_COMPAT: u32 = 3;
+pub const FIEMAP_EXTENT_LAST: u32 = 1;
+pub const FIEMAP_EXTENT_UNKNOWN: u32 = 2;
+pub const FIEMAP_EXTENT_DELALLOC: u32 = 4;
+pub const FIEMAP_EXTENT_ENCODED: u32 = 8;
+pub const FIEMAP_EXTENT_DATA_ENCRYPTED: u32 = 128;
+pub const FIEMAP_EXTENT_NOT_ALIGNED: u32 = 256;
+pub const FIEMAP_EXTENT_DATA_INLINE: u32 = 512;
+pub const FIEMAP_EXTENT_DATA_TAIL: u32 = 1024;
+pub const FIEMAP_EXTENT_UNWRITTEN: u32 = 2048;
+pub const FIEMAP_EXTENT_MERGED: u32 = 4096;
+pub const FIEMAP_EXTENT_SHARED: u32 = 8192;
 pub const UFFDIO_REGISTER: u32 = 3223366144;
 pub const UFFDIO_UNREGISTER: u32 = 2148575745;
 pub const UFFDIO_WAKE: u32 = 2148575746;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants