|
@@ -734,13 +734,13 @@ pub use bpf_printk;
|
|
|
/// Argument ready to be passed to `printk` BPF helper.
|
|
|
#[repr(transparent)]
|
|
|
#[derive(Copy, Clone)]
|
|
|
-pub struct PrintkArg(u64);
|
|
|
+pub struct PrintkArg([u8; 8]);
|
|
|
|
|
|
impl PrintkArg {
|
|
|
/// Manually construct a `printk` BPF helper argument.
|
|
|
#[inline]
|
|
|
pub fn from_raw(x: u64) -> Self {
|
|
|
- Self(x)
|
|
|
+ Self(x.to_ne_bytes())
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -750,31 +750,31 @@ macro_rules! impl_integer_promotion {
|
|
|
impl From<$ty> for PrintkArg {
|
|
|
#[inline]
|
|
|
fn from(x: $ty) -> PrintkArg {
|
|
|
- PrintkArg(x as $via as u64)
|
|
|
+ PrintkArg((x as $via).to_ne_bytes())
|
|
|
}
|
|
|
}
|
|
|
)*}
|
|
|
}
|
|
|
|
|
|
impl_integer_promotion!(
|
|
|
- char: via u64,
|
|
|
- u8: via u64,
|
|
|
- u16: via u64,
|
|
|
- u32: via u64,
|
|
|
- u64: via u64,
|
|
|
- usize: via u64,
|
|
|
- i8: via i64,
|
|
|
- i16: via i64,
|
|
|
- i32: via i64,
|
|
|
- i64: via i64,
|
|
|
- isize: via i64,
|
|
|
+ char: via usize,
|
|
|
+ u8: via usize,
|
|
|
+ u16: via usize,
|
|
|
+ u32: via usize,
|
|
|
+ u64: via usize,
|
|
|
+ usize: via usize,
|
|
|
+ i8: via isize,
|
|
|
+ i16: via isize,
|
|
|
+ i32: via isize,
|
|
|
+ i64: via isize,
|
|
|
+ isize: via isize,
|
|
|
);
|
|
|
|
|
|
/// Construct `printk` BPF helper arguments from constant pointers.
|
|
|
impl<T> From<*const T> for PrintkArg {
|
|
|
#[inline]
|
|
|
fn from(x: *const T) -> Self {
|
|
|
- PrintkArg(x as usize as u64)
|
|
|
+ PrintkArg((x as usize).to_ne_bytes())
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -782,7 +782,7 @@ impl<T> From<*const T> for PrintkArg {
|
|
|
impl<T> From<*mut T> for PrintkArg {
|
|
|
#[inline]
|
|
|
fn from(x: *mut T) -> Self {
|
|
|
- PrintkArg(x as usize as u64)
|
|
|
+ PrintkArg((x as usize).to_ne_bytes())
|
|
|
}
|
|
|
}
|
|
|
|