1*577bdc16SRobert Mustacchi.\" 2*577bdc16SRobert Mustacchi.\" This file and its contents are supplied under the terms of the 3*577bdc16SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0. 4*577bdc16SRobert Mustacchi.\" You may only use this file in accordance with the terms of version 5*577bdc16SRobert Mustacchi.\" 1.0 of the CDDL. 6*577bdc16SRobert Mustacchi.\" 7*577bdc16SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this 8*577bdc16SRobert Mustacchi.\" source. A copy of the CDDL is also available via the Internet at 9*577bdc16SRobert Mustacchi.\" http://www.illumos.org/license/CDDL. 10*577bdc16SRobert Mustacchi.\" 11*577bdc16SRobert Mustacchi.\" 12*577bdc16SRobert Mustacchi.\" Copyright 2016 Joyent, Inc. 13*577bdc16SRobert Mustacchi.\" 14*577bdc16SRobert Mustacchi.Dd January 30, 2016 15*577bdc16SRobert Mustacchi.Dt ENDIAN.H 3HEAD 16*577bdc16SRobert Mustacchi.Os 17*577bdc16SRobert Mustacchi.Sh NAME 18*577bdc16SRobert Mustacchi.Nm endian.h 19*577bdc16SRobert Mustacchi.Nd definitions for endian routines 20*577bdc16SRobert Mustacchi.Sh SYNOPSIS 21*577bdc16SRobert Mustacchi.In endian.h 22*577bdc16SRobert Mustacchi.Sh DESCRIPTION 23*577bdc16SRobert MustacchiThe 24*577bdc16SRobert Mustacchi.In endian.h 25*577bdc16SRobert Mustacchiheader defines functions and macros focused on converting data between 26*577bdc16SRobert Mustacchithe host machines native byte order and big or little-endian values. 27*577bdc16SRobert MustacchiWhile the manual page details the macros defined by 28*577bdc16SRobert Mustacchi.In endian.h , 29*577bdc16SRobert Mustacchithe functions are documented separately in 30*577bdc16SRobert Mustacchi.Xr endian 3C. 31*577bdc16SRobert MustacchiMore information on endianness and a general background on the topic can 32*577bdc16SRobert Mustacchibe found in 33*577bdc16SRobert Mustacchi.Xr byteorder 5 . 34*577bdc16SRobert Mustacchi.Pp 35*577bdc16SRobert MustacchiThe 36*577bdc16SRobert Mustacchi.In endian.h 37*577bdc16SRobert Mustacchiheader defines the following macros: 38*577bdc16SRobert Mustacchi.Bl -tag -width Ds 39*577bdc16SRobert Mustacchi.It Sy LITTLE_ENDIAN 40*577bdc16SRobert MustacchiA constant used to indicate a little-endian integer. It is always 41*577bdc16SRobert Mustacchidefined, regardless of the actual endianess of the underlying platform. 42*577bdc16SRobert MustacchiThis macro should be used to compare against the 43*577bdc16SRobert Mustacchi.Sy BYTE_ORDER 44*577bdc16SRobert Mustacchimacro. 45*577bdc16SRobert Mustacchi.It Sy BIG_ENDIAN 46*577bdc16SRobert MustacchiA constant used to indicate a big-endian integer. It is always defined, 47*577bdc16SRobert Mustacchiregardless of the actual endianess of the underlying platform. This 48*577bdc16SRobert Mustacchimacro should be used to compare against the 49*577bdc16SRobert Mustacchi.Sy BYTE_ORDER 50*577bdc16SRobert Mustacchimacro. 51*577bdc16SRobert Mustacchi.It Sy PDP_ENDIAN 52*577bdc16SRobert MustacchiA constant used to indicate the endianness used for four byte values on 53*577bdc16SRobert Mustacchithe PDP-11. It is always defined, regardless of the actual endianess of 54*577bdc16SRobert Mustacchithe underlying platform. This macro should be used to compare against 55*577bdc16SRobert Mustacchithe 56*577bdc16SRobert Mustacchi.Sy BYTE_ORDER 57*577bdc16SRobert Mustacchimacro. 58*577bdc16SRobert Mustacchi.It Sy BYTE_ORDER 59*577bdc16SRobert MustacchiThe value of the 60*577bdc16SRobert Mustacchi.Sy BYTE_ORDER 61*577bdc16SRobert Mustacchimacro will be one of 62*577bdc16SRobert Mustacchi.Sy LITTLE_ENDIAN 63*577bdc16SRobert Mustacchior 64*577bdc16SRobert Mustacchi.Sy BIG_ENDIAN . 65*577bdc16SRobert MustacchiAt this time, no supported architectures use the byte order indicated by 66*577bdc16SRobert Mustacchithe 67*577bdc16SRobert Mustacchi.Sy PDP_ENDIAN 68*577bdc16SRobert Mustacchimacro. 69*577bdc16SRobert Mustacchi.Pp 70*577bdc16SRobert MustacchiTo determine the byte order of a system, one may compare the 71*577bdc16SRobert Mustacchi.Sy BYTE_ORDER 72*577bdc16SRobert Mustacchito one of the aforementioned macros. 73*577bdc16SRobert Mustacchi.El 74*577bdc16SRobert Mustacchi.Pp 75*577bdc16SRobert MustacchiIn addition to the routines provided by this header, standardized 76*577bdc16SRobert Mustacchifunctions may be found in 77*577bdc16SRobert Mustacchi.Xr byteorder 3C . 78*577bdc16SRobert MustacchiThe header 79*577bdc16SRobert Mustacchi.Xr types.h 3HEAD 80*577bdc16SRobert Mustacchialso defines additional pre-processor symbols to determine the current 81*577bdc16SRobert Mustacchiendianness of the system. 82*577bdc16SRobert Mustacchi.Sh INTERFACE STABILITY 83*577bdc16SRobert Mustacchi.Sy Committed 84*577bdc16SRobert Mustacchi.Sh SEE ALSO 85*577bdc16SRobert Mustacchi.Xr endian 3C , 86*577bdc16SRobert Mustacchi.Xr types.h 3HEAD , 87*577bdc16SRobert Mustacchi.Xr attributes 5 , 88*577bdc16SRobert Mustacchi.Xr byteorder 5 89