| MACH-SWAP(3) | MACH-SWAP(3)

NAME

| beswap2, beswap4, beswap8, beieeeftoa32, beieeeftoa64, beieeeftoa80, beload2, beload4, beload8, leswap2, leswap4, leswap8, leieeeftoa32, leieeeftoa64, leieeeftoa80, leload2, leload4, leload8, ieeeftoa32, ieeeftoa64 – machine-independent access to byte-ordered data

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 provide machine-independent access to data in a particular byte order.

Beswap2, beswap4, and beswap8 return the 2-byte, 4-byte, and 8-byte big-endian representation of the bytes in val, respectively.

Beload2, beload4, and beload8 return the 2-byte, 4-byte, and 8-byte big-endian interpretation of the bytes at p, respectively.

Beieeeftoa32, beieeeftoa64, and 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.

Leswap2, leswap4, etc. are the little-endian equivalents of the routines just described.

Ieeeftoa32 and 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.

SOURCE

| `/usr/local/plan9/src/libmach`

SEE ALSO

| mach(3)