(addr: UserPtr<sockaddr>, addrlen: &mut socklen_t, data: &[u8])
| 41 | unsafe { core::slice::from_raw_parts(value as *const T as *const u8, size_of::<T>()) } |
| 42 | } |
| 43 | fn fill_addr(addr: UserPtr<sockaddr>, addrlen: &mut socklen_t, data: &[u8]) -> AxResult<()> { |
| 44 | let len = (*addrlen as usize).min(data.len()); |
| 45 | addr.cast::<u8>() |
| 46 | .get_as_mut_slice(len)? |
| 47 | .copy_from_slice(&data[..len]); |
| 48 | *addrlen = data.len() as _; |
| 49 | Ok(()) |
| 50 | } |
| 51 | |
| 52 | impl SocketAddrExt for SocketAddr { |
| 53 | fn read_from_user(addr: UserConstPtr<sockaddr>, addrlen: socklen_t) -> AxResult<Self> { |
no test coverage detected