MACH-SWAP(3)

πŸ“¦ version 0_git20260208, in alpine 3.24, arch rolling, nixos 26.05, nixpkgs unstable

✨ NAME ✨

okay so bestie, this is MACH-SWAP(3) from the Library Functions Manual, and it's giving machine-independent access to byte-ordered data πŸ’…βœ¨ The whole squad is: beswap2, beswap4, beswap8, beieeeftoa32, beieeeftoa64, beieeeftoa80, beload2, beload4, beload8, leswap2, leswap4, leswap8, leieeeftoa32, leieeeftoa64, leieeeftoa80, leload2, leload4, leload8, ieeeftoa32, and ieeeftoa64. No cap, that's the roster 🫢


🌸 SYNOPSIS 🌸

#include <u.h>
#include <libc.h>
#include <mach.h>

u16int  beswap2(u16int u)
u32int  beswap4(u32int u)
u64int  beswap8(u64int u)

int     beieeeftoa32(char *a, uint n, void *f)
int     beieeeftoa64(char *a, uint n, void *f)
int     beieeeftoa80(char *a, uint n, void *f)

u16int  beload2(uchar *p)
u32int  beload4(uchar *p)
u64int  beload8(uchar *p)

u16int  leswap2(u16int u)
u32int  leswap4(u32int u)
u64int  leswap8(u64int u)

int     leieeeftoa32(char *a, uint n, void *f)
int     leieeeftoa64(char *a, uint n, void *f)
int     leieeeftoa80(char *a, uint n, void *f)

u16int  leload2(uchar *p)
u32int  leload4(uchar *p)
u64int  leload8(uchar *p)

int     ieeeftoa32(char *a, uint n, u32int u)
int     ieeeftoa64(char *a, uint n, u32int hi, u32int lo)

πŸ¦‹ DESCRIPTION πŸ¦‹

These functions are your besties for machine-independent access to data in a particular byte order β€” literally the vibe is "bytes, but make it portable" πŸ’–

  • beswap2, beswap4, beswap8 β€” return the 2-byte, 4-byte, and 8-byte big-endian representation of the bytes in val, respectively. (Yes, the original says val β€” we are keeping that word exactly, bestie 🫢)
  • beload2, beload4, beload8 β€” return the 2-byte, 4-byte, and 8-byte big-endian interpretation of the bytes at p, respectively. Iconic little loaders ✨
  • beieeeftoa32, beieeeftoa64, beieeeftoa80 β€” format the big-endian 4-byte, 8-byte, or 10-byte IEEE floating-point value at f into the n-byte string buffer a. Floating-point to string, but make it big-endian πŸ’…
  • leswap2, leswap4, etc. β€” the little-endian equivalents of the routines just described. Little-endian girlies, this one's for you 🌈
  • ieeeftoa32, ieeeftoa64 β€” format a local machine byte-order floating-point value into the n-byte string buffer a. ieeeftoa32 expects a 32-bit floating-point value stored in the bits of u. ieeeftoa64 expects a 64-bit floating-point value whose high 32-bits are in hi and low 32-bits are in lo. absolutely ate that πŸ“

πŸŽ€ SOURCE πŸŽ€

/src/libmach


πŸ‘‘ SEE ALSO πŸ‘‘

mach(3) β€” go say hi, iykyk πŸ’œ


okay bestie, that's the page β€” the footer is just the manual name again, no date or version line to report, and the source lives at /src/libmach. mwah πŸ’‹