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