Skip to content
Snippets Groups Projects
  1. Dec 16, 2024
    • Gary Guo's avatar
      rust: map `long` to `isize` and `char` to `u8` · 1bae8729
      Gary Guo authored
      
      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: default avatarGary Guo <gary@garyguo.net>
      Reviewed-by: default avatarAlice Ryhl <aliceryhl@google.com>
      Link: https://lore.kernel.org/r/20240913213041.395655-5-gary@garyguo.net
      
      
      [ Moved `uaccess` changes from the next commit, since they were
        irrefutable patterns that Rust >= 1.82.0 warns about. Reworded
        slightly and reformatted a few documentation comments. Rebased on
        top of `rust-next`. Added the removal of two casts to avoid Clippy
        warnings. - Miguel ]
      Signed-off-by: default avatarMiguel Ojeda <ojeda@kernel.org>
      1bae8729
  2. Oct 03, 2024
  3. Jul 31, 2024
  4. Jul 10, 2024
  5. Jun 20, 2024
  6. Jun 18, 2024
Loading