MCPcopy Create free account
hub / github.com/Starry-OS/StarryOS / fill_addr

Function fill_addr

api/src/socket.rs:43–50  ·  view source on GitHub ↗
(addr: UserPtr<sockaddr>, addrlen: &mut socklen_t, data: &[u8])

Source from the content-addressed store, hash-verified

41 unsafe { core::slice::from_raw_parts(value as *const T as *const u8, size_of::<T>()) }
42}
43fn 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
52impl SocketAddrExt for SocketAddr {
53 fn read_from_user(addr: UserConstPtr<sockaddr>, addrlen: socklen_t) -> AxResult<Self> {

Callers 1

write_to_userMethod · 0.85

Calls 2

get_as_mut_sliceMethod · 0.80
lenMethod · 0.45

Tested by

no test coverage detected