13b4b8bdaSRobert Mustacchi.\"
23b4b8bdaSRobert Mustacchi.\" This file and its contents are supplied under the terms of the
33b4b8bdaSRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
43b4b8bdaSRobert Mustacchi.\" You may only use this file in accordance with the terms of version
53b4b8bdaSRobert Mustacchi.\" 1.0 of the CDDL.
63b4b8bdaSRobert Mustacchi.\"
73b4b8bdaSRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
83b4b8bdaSRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
93b4b8bdaSRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
103b4b8bdaSRobert Mustacchi.\"
113b4b8bdaSRobert Mustacchi.\"
123b4b8bdaSRobert Mustacchi.\" Copyright 2016 Joyent, Inc.
133b4b8bdaSRobert Mustacchi.\"
143b4b8bdaSRobert Mustacchi.Dd January 30, 2016
153b4b8bdaSRobert Mustacchi.Dt ENDIAN 3C
163b4b8bdaSRobert Mustacchi.Os
173b4b8bdaSRobert Mustacchi.Sh NAME
183b4b8bdaSRobert Mustacchi.Nm endian ,
193b4b8bdaSRobert Mustacchi.Nm be16toh ,
203b4b8bdaSRobert Mustacchi.Nm be32toh ,
213b4b8bdaSRobert Mustacchi.Nm be64toh ,
223b4b8bdaSRobert Mustacchi.Nm betoh16 ,
233b4b8bdaSRobert Mustacchi.Nm betoh32 ,
243b4b8bdaSRobert Mustacchi.Nm betoh64 ,
253b4b8bdaSRobert Mustacchi.Nm htobe16 ,
263b4b8bdaSRobert Mustacchi.Nm htobe32 ,
273b4b8bdaSRobert Mustacchi.Nm htobe64 ,
283b4b8bdaSRobert Mustacchi.Nm htole16 ,
293b4b8bdaSRobert Mustacchi.Nm htole32 ,
303b4b8bdaSRobert Mustacchi.Nm htole64 ,
313b4b8bdaSRobert Mustacchi.Nm le16toh ,
323b4b8bdaSRobert Mustacchi.Nm le32toh ,
333b4b8bdaSRobert Mustacchi.Nm le64toh ,
343b4b8bdaSRobert Mustacchi.Nm letoh16 ,
353b4b8bdaSRobert Mustacchi.Nm letoh32 ,
363b4b8bdaSRobert Mustacchi.Nm letoh64
373b4b8bdaSRobert Mustacchi.Nd convert between big and little endian byte order
383b4b8bdaSRobert Mustacchi.Sh SYNOPSIS
393b4b8bdaSRobert Mustacchi.In endian.h
403b4b8bdaSRobert Mustacchi.Ft uint16_t
413b4b8bdaSRobert Mustacchi.Fo be16toh
423b4b8bdaSRobert Mustacchi.Fa "uint16_t be16"
433b4b8bdaSRobert Mustacchi.Fc
443b4b8bdaSRobert Mustacchi.Ft uint32_t
453b4b8bdaSRobert Mustacchi.Fo be32toh
463b4b8bdaSRobert Mustacchi.Fa "uint32_t be32"
473b4b8bdaSRobert Mustacchi.Fc
483b4b8bdaSRobert Mustacchi.Ft uint64_t
493b4b8bdaSRobert Mustacchi.Fo betoh64
503b4b8bdaSRobert Mustacchi.Fa "uint64_t be64"
513b4b8bdaSRobert Mustacchi.Fc
523b4b8bdaSRobert Mustacchi.Ft uint16_t
533b4b8bdaSRobert Mustacchi.Fo betoh16
543b4b8bdaSRobert Mustacchi.Fa "uint16_t be16"
553b4b8bdaSRobert Mustacchi.Fc
563b4b8bdaSRobert Mustacchi.Ft uint32_t
573b4b8bdaSRobert Mustacchi.Fo betoh32
583b4b8bdaSRobert Mustacchi.Fa "uint32_t be32"
593b4b8bdaSRobert Mustacchi.Fc
603b4b8bdaSRobert Mustacchi.Ft uint64_t
613b4b8bdaSRobert Mustacchi.Fo be64toh
623b4b8bdaSRobert Mustacchi.Fa "uint64_t be64"
633b4b8bdaSRobert Mustacchi.Fc
643b4b8bdaSRobert Mustacchi.Ft uint16_t
653b4b8bdaSRobert Mustacchi.Fo htobe16
663b4b8bdaSRobert Mustacchi.Fa "uint16_t host16"
673b4b8bdaSRobert Mustacchi.Fc
683b4b8bdaSRobert Mustacchi.Ft uint32_t
693b4b8bdaSRobert Mustacchi.Fo htobe32
703b4b8bdaSRobert Mustacchi.Fa "uint32_t host32"
713b4b8bdaSRobert Mustacchi.Fc
723b4b8bdaSRobert Mustacchi.Ft uint64_t
733b4b8bdaSRobert Mustacchi.Fo htobe64
743b4b8bdaSRobert Mustacchi.Fa "uint64_t host64"
753b4b8bdaSRobert Mustacchi.Fc
763b4b8bdaSRobert Mustacchi.Ft uint16_t
773b4b8bdaSRobert Mustacchi.Fo htole16
783b4b8bdaSRobert Mustacchi.Fa "uint16_t host16"
793b4b8bdaSRobert Mustacchi.Fc
803b4b8bdaSRobert Mustacchi.Ft uint32_t
813b4b8bdaSRobert Mustacchi.Fo htole32
823b4b8bdaSRobert Mustacchi.Fa "uint32_t host32"
833b4b8bdaSRobert Mustacchi.Fc
843b4b8bdaSRobert Mustacchi.Ft uint64_t
853b4b8bdaSRobert Mustacchi.Fo htole64
863b4b8bdaSRobert Mustacchi.Fa "uint64_t host64"
873b4b8bdaSRobert Mustacchi.Fc
883b4b8bdaSRobert Mustacchi.Ft uint16_t
893b4b8bdaSRobert Mustacchi.Fo le16toh
903b4b8bdaSRobert Mustacchi.Fa "uint16_t le16"
913b4b8bdaSRobert Mustacchi.Fc
923b4b8bdaSRobert Mustacchi.Ft uint32_t
933b4b8bdaSRobert Mustacchi.Fo le32toh
943b4b8bdaSRobert Mustacchi.Fa "uint32_t le32"
953b4b8bdaSRobert Mustacchi.Fc
963b4b8bdaSRobert Mustacchi.Ft uint64_t
973b4b8bdaSRobert Mustacchi.Fo le64toh
983b4b8bdaSRobert Mustacchi.Fa "uint64_t le64"
993b4b8bdaSRobert Mustacchi.Fc
1003b4b8bdaSRobert Mustacchi.Ft uint16_t
1013b4b8bdaSRobert Mustacchi.Fo letoh16
1023b4b8bdaSRobert Mustacchi.Fa "uint16_t le16"
1033b4b8bdaSRobert Mustacchi.Fc
1043b4b8bdaSRobert Mustacchi.Ft uint32_t
1053b4b8bdaSRobert Mustacchi.Fo letoh32
1063b4b8bdaSRobert Mustacchi.Fa "uint32_t le32"
1073b4b8bdaSRobert Mustacchi.Fc
1083b4b8bdaSRobert Mustacchi.Ft uint64_t
1093b4b8bdaSRobert Mustacchi.Fo letoh64
1103b4b8bdaSRobert Mustacchi.Fa "uint64_t le64"
1113b4b8bdaSRobert Mustacchi.Fc
1123b4b8bdaSRobert Mustacchi.Sh DESCRIPTION
1133b4b8bdaSRobert MustacchiThe
1143b4b8bdaSRobert Mustacchi.Nm
1153b4b8bdaSRobert Mustacchifamily of functions convert 16, 32, and 64-bit values between the host's
1163b4b8bdaSRobert Mustacchinative byte order and big- or little-endian. All of the functions in
1173b4b8bdaSRobert Mustacchithis family simply return their input when the host's native byte order
1183b4b8bdaSRobert Mustacchiis the same as the desired order. For more information on
1193b4b8bdaSRobert Mustacchiendianness, see
1203b4b8bdaSRobert Mustacchi.Xr byteorder 5 .
1213b4b8bdaSRobert Mustacchi.Pp
1223b4b8bdaSRobert MustacchiThe
1233b4b8bdaSRobert Mustacchi.Fn betoh16 ,
1243b4b8bdaSRobert Mustacchi.Fn betoh32 ,
1253b4b8bdaSRobert Mustacchiand
1263b4b8bdaSRobert Mustacchi.Fn betoh64
1273b4b8bdaSRobert Mustacchifunctions take a 16-bit, 32-bit, or 64-bit value and convert it from
1283b4b8bdaSRobert Mustacchibig-endian to the host's native endianness, swapping bytes as required.
1293b4b8bdaSRobert Mustacchi.Pp
1303b4b8bdaSRobert MustacchiThe
1313b4b8bdaSRobert Mustacchi.Fn letoh16 ,
1323b4b8bdaSRobert Mustacchi.Fn letoh32 ,
1333b4b8bdaSRobert Mustacchiand
1343b4b8bdaSRobert Mustacchi.Fn letoh64
1353b4b8bdaSRobert Mustacchifunctions take a 16-bit, 32-bit, or 64-bit value and convert it from
1363b4b8bdaSRobert Mustacchilittle-endian to the host's native endianness, swapping bytes as
1373b4b8bdaSRobert Mustacchirequired.
1383b4b8bdaSRobert Mustacchi.Pp
1393b4b8bdaSRobert MustacchiThe
1403b4b8bdaSRobert Mustacchi.Fn htobe16 ,
1413b4b8bdaSRobert Mustacchi.Fn htobe32 ,
1423b4b8bdaSRobert Mustacchiand
1433b4b8bdaSRobert Mustacchi.Fn htobe64
1443b4b8bdaSRobert Mustacchifunctions take a 16-bit, 32-bit, or 64-bit value and convert it from
1453b4b8bdaSRobert Mustacchithe host's native endianness to big-endian, swapping bytes as required.
1463b4b8bdaSRobert Mustacchi.Pp
1473b4b8bdaSRobert MustacchiThe
1483b4b8bdaSRobert Mustacchi.Fn htole16 ,
1493b4b8bdaSRobert Mustacchi.Fn htole32 ,
1503b4b8bdaSRobert Mustacchiand
1513b4b8bdaSRobert Mustacchi.Fn htole64
1523b4b8bdaSRobert Mustacchifunctions take a 16-bit, 32-bit, or 64-bit value and convert it from
1533b4b8bdaSRobert Mustacchithe host's native endianness to little-endian, swapping bytes as
1543b4b8bdaSRobert Mustacchirequired.
1553b4b8bdaSRobert Mustacchi.Pp
1563b4b8bdaSRobert MustacchiThe functions
1573b4b8bdaSRobert Mustacchi.Fn be16toh ,
1583b4b8bdaSRobert Mustacchi.Fn be32toh ,
1593b4b8bdaSRobert Mustacchi.Fn be64toh ,
1603b4b8bdaSRobert Mustacchi.Fn le16toh ,
1613b4b8bdaSRobert Mustacchi.Fn le32toh ,
1623b4b8bdaSRobert Mustacchiand
1633b4b8bdaSRobert Mustacchi.Fn le64toh ,
1643b4b8bdaSRobert Mustacchiare the same as
1653b4b8bdaSRobert Mustacchi.Fn betoh16 ,
1663b4b8bdaSRobert Mustacchi.Fn betoh32 ,
1673b4b8bdaSRobert Mustacchi.Fn betoh64 ,
1683b4b8bdaSRobert Mustacchi.Fn letoh16 ,
1693b4b8bdaSRobert Mustacchi.Fn letoh32 ,
1703b4b8bdaSRobert Mustacchiand
1713b4b8bdaSRobert Mustacchi.Fn letoh64
1723b4b8bdaSRobert Mustacchirespectively. Historically, different platforms have diverged on the
1733b4b8bdaSRobert Mustacchinaming of these functions. To better support extant software, both are
1743b4b8bdaSRobert Mustacchiprovided.
1753b4b8bdaSRobert Mustacchi.Pp
1763b4b8bdaSRobert MustacchiWhile these functions are common across multiple platforms, they have
1773b4b8bdaSRobert Mustacchinot been standardized. Portable applications should instead use the
1783b4b8bdaSRobert Mustacchifunctions defined in
1793b4b8bdaSRobert Mustacchi.Xr byteorder 3C .
1803b4b8bdaSRobert Mustacchi.Sh RETURN VALUES
1813b4b8bdaSRobert MustacchiThe functions always succeed and return a value that has been properly
1823b4b8bdaSRobert Mustacchiconverted.
1833b4b8bdaSRobert Mustacchi.Sh INTERFACE STABILITY
1843b4b8bdaSRobert Mustacchi.Sy Committed
1853b4b8bdaSRobert Mustacchi.Sh MT-LEVEL
1863b4b8bdaSRobert Mustacchi.Sy MT-Safe
1873b4b8bdaSRobert Mustacchi.Sh SEE ALSO
1883b4b8bdaSRobert Mustacchi.Xr byteorder 3C ,
1893b4b8bdaSRobert Mustacchi.Xr endian.h 3HEAD ,
1903b4b8bdaSRobert Mustacchi.Xr attributes 5 ,
1913b4b8bdaSRobert Mustacchi.Xr byteorder 5
192