Re: [PATCH 4/5] rust: map `long` to `isize` and `char` to `u8`

From: Alice Ryhl
Date: Mon Sep 23 2024 - 05:20:44 EST


On Fri, Sep 13, 2024 at 11:33 PM Gary Guo <gary@xxxxxxxxxxx> wrote:
>
> The following FFI types are replaced compared to `core::ffi`:
>
> 1. `char` type is now always mapped to `u8`, since kernel uses
> `-funsigned-char` on the C code. `core::ffi` maps it to platform
> default ABI, which can be either signed or unsigned.
>
> 2. `long` is now always mapped to `isize`. It's very common in the
> kernel to use `long` to represent a pointer-sized integer, and in
> fact `intptr_t` is a typedef of `long` in the kernel. Enforce this
> mapping rather than mapping to `i32/i64` depending on platform can
> save us a lot of unnecessary casts.
>
> Signed-off-by: Gary Guo <gary@xxxxxxxxxxx>

Reviewed-by: Alice Ryhl <aliceryhl@xxxxxxxxxx>