Re: [PATCH 1/4] rust: sizes: add SZ_4G constant

From: Alvin Sun

Date: Fri Apr 17 2026 - 07:59:36 EST


Hi Alexandre,

On 4/17/26 11:18, Alexandre Courbot wrote:
Hi Alvin,

On Fri Apr 17, 2026 at 10:05 AM JST, Alvin Sun wrote:
Add SZ_4G constant defined as SZ_2G * 2. This constant will be used by
the Tyr driver for calculating user and kernel VA layout.

Signed-off-by: Alvin Sun <alvin.sun@xxxxxxxxx>
---
rust/kernel/sizes.rs | 2 ++
1 file changed, 2 insertions(+)

diff --git a/rust/kernel/sizes.rs b/rust/kernel/sizes.rs
index 661e680d93306..872f5bb181ecf 100644
--- a/rust/kernel/sizes.rs
+++ b/rust/kernel/sizes.rs
@@ -48,3 +48,5 @@
pub const SZ_1G: usize = bindings::SZ_1G as usize;
/// 0x80000000
pub const SZ_2G: usize = bindings::SZ_2G as usize;
+/// 0x100000000
+pub const SZ_4G: usize = SZ_2G * 2;
Note that the way size constants are defined has changed in `master` -
you will probably want to update this patch accordingly.
I just noticed that my development baseline is based on the stable
repository.

Also there is a `SZ_4G` define in `include/linux/sizes.h`; I am not sure
why it is not in the bindings, but we should probably add it and get our
value from that.
SZ_4G is a complex macro that internally uses the _AC macro, which bindgen
cannot handle by default. I found a similar issue that Miguel replied to in
October 2025 [1], where adding --clang-macro-fallback to bindgen can solve
this problem.

I tried adding this parameter to bindgen_parameters, but SZ_4G still
doesn't appear in bindings_generated.rs. However, when using
--clang-macro-fallback with just sizes.h alone, I can successfully generate
the bindings.

Finally, maybe I missed something but the new value doesn't appear to be
used by this series?
This patchset is a prerequisite for the Tyr ioctls patchset [2] that I'm
currently developing, which hasn't been submitted to the list yet.
[1]: https://lore.kernel.org/rust-for-linux/CANiq72m20pom+B9EmWO+91E8fjbMEob3JmvHRQ6UaXe_JmatfA@xxxxxxxxxxxxxx/
[2]: https://gitlab.freedesktop.org/panfrost/linux/-/merge_requests/64