relibc/header/bits_arpainet/mod.rs
1use crate::platform::types::{uint16_t, uint32_t};
2
3/// See <https://pubs.opengroup.org/onlinepubs/9799919799/functions/htonl.html>.
4///
5/// Converts `hostlong` from host byte order to network byte order.
6#[unsafe(no_mangle)]
7pub extern "C" fn htonl(hostlong: uint32_t) -> uint32_t {
8 hostlong.to_be()
9}
10
11/// See <https://pubs.opengroup.org/onlinepubs/9799919799/functions/htonl.html>.
12///
13/// Converts `hostshort` from host byte order to network byte order.
14#[unsafe(no_mangle)]
15pub extern "C" fn htons(hostshort: uint16_t) -> uint16_t {
16 hostshort.to_be()
17}
18
19/// See <https://pubs.opengroup.org/onlinepubs/9799919799/functions/htonl.html>.
20///
21/// Converts `netlong` from network byte order to host byte order.
22#[unsafe(no_mangle)]
23pub extern "C" fn ntohl(netlong: uint32_t) -> uint32_t {
24 u32::from_be(netlong)
25}
26
27/// See <https://pubs.opengroup.org/onlinepubs/9799919799/functions/htonl.html>.
28///
29/// Converts `netshort` from network byte order to host byte order.
30#[unsafe(no_mangle)]
31pub extern "C" fn ntohs(netshort: uint16_t) -> uint16_t {
32 u16::from_be(netshort)
33}