17dc9a163SRobert Mustacchi.\"
27dc9a163SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
37dc9a163SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
47dc9a163SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
57dc9a163SRobert Mustacchi.\" 1.0 of the CDDL.
67dc9a163SRobert Mustacchi.\"
77dc9a163SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
87dc9a163SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
97dc9a163SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
107dc9a163SRobert Mustacchi.\"
117dc9a163SRobert Mustacchi.\"
127dc9a163SRobert Mustacchi.\" Copyright 2016 Joyent, Inc.
137dc9a163SRobert Mustacchi.\"
14cc581a18SYuri Pankov.Dd August 2, 2018
157dc9a163SRobert Mustacchi.Dt ENDIAN.H 3HEAD
167dc9a163SRobert Mustacchi.Os
177dc9a163SRobert Mustacchi.Sh NAME
187dc9a163SRobert Mustacchi.Nm endian.h
197dc9a163SRobert Mustacchi.Nd definitions for endian routines
207dc9a163SRobert Mustacchi.Sh SYNOPSIS
217dc9a163SRobert Mustacchi.In endian.h
227dc9a163SRobert Mustacchi.Sh DESCRIPTION
237dc9a163SRobert MustacchiThe
247dc9a163SRobert Mustacchi.In endian.h
257dc9a163SRobert Mustacchiheader defines functions and macros focused on converting data between
267dc9a163SRobert Mustacchithe host machines native byte order and big or little-endian values.
277dc9a163SRobert MustacchiWhile the manual page details the macros defined by
287dc9a163SRobert Mustacchi.In endian.h ,
297dc9a163SRobert Mustacchithe functions are documented separately in
309f17ecf0SPeter Tribble.Xr endian 3C .
317dc9a163SRobert MustacchiMore information on endianness and a general background on the topic can
327dc9a163SRobert Mustacchibe found in
33*bbf21555SRichard Lowe.Xr byteorder 7 .
347dc9a163SRobert Mustacchi.Pp
357dc9a163SRobert MustacchiThe
367dc9a163SRobert Mustacchi.In endian.h
377dc9a163SRobert Mustacchiheader defines the following macros:
387dc9a163SRobert Mustacchi.Bl -tag -width Ds
397dc9a163SRobert Mustacchi.It Sy LITTLE_ENDIAN
4072d3dbb9SYuri PankovA constant used to indicate a little-endian integer.
4172d3dbb9SYuri PankovIt is always defined, regardless of the actual endianess of the underlying
4272d3dbb9SYuri Pankovplatform.
437dc9a163SRobert MustacchiThis macro should be used to compare against the
447dc9a163SRobert Mustacchi.Sy BYTE_ORDER
457dc9a163SRobert Mustacchimacro.
467dc9a163SRobert Mustacchi.It Sy BIG_ENDIAN
4772d3dbb9SYuri PankovA constant used to indicate a big-endian integer.
4872d3dbb9SYuri PankovIt is always defined, regardless of the actual endianess of the underlying
4972d3dbb9SYuri Pankovplatform.
5072d3dbb9SYuri PankovThis macro should be used to compare against the
517dc9a163SRobert Mustacchi.Sy BYTE_ORDER
527dc9a163SRobert Mustacchimacro.
537dc9a163SRobert Mustacchi.It Sy PDP_ENDIAN
547dc9a163SRobert MustacchiA constant used to indicate the endianness used for four byte values on
5572d3dbb9SYuri Pankovthe PDP-11.
5672d3dbb9SYuri PankovIt is always defined, regardless of the actual endianess of the underlying
5772d3dbb9SYuri Pankovplatform.
5872d3dbb9SYuri PankovThis macro should be used to compare against the
597dc9a163SRobert Mustacchi.Sy BYTE_ORDER
607dc9a163SRobert Mustacchimacro.
617dc9a163SRobert Mustacchi.It Sy BYTE_ORDER
627dc9a163SRobert MustacchiThe value of the
637dc9a163SRobert Mustacchi.Sy BYTE_ORDER
647dc9a163SRobert Mustacchimacro will be one of
657dc9a163SRobert Mustacchi.Sy LITTLE_ENDIAN
667dc9a163SRobert Mustacchior
677dc9a163SRobert Mustacchi.Sy BIG_ENDIAN .
687dc9a163SRobert MustacchiAt this time, no supported architectures use the byte order indicated by
697dc9a163SRobert Mustacchithe
707dc9a163SRobert Mustacchi.Sy PDP_ENDIAN
717dc9a163SRobert Mustacchimacro.
727dc9a163SRobert Mustacchi.Pp
737dc9a163SRobert MustacchiTo determine the byte order of a system, one may compare the
747dc9a163SRobert Mustacchi.Sy BYTE_ORDER
757dc9a163SRobert Mustacchito one of the aforementioned macros.
767dc9a163SRobert Mustacchi.El
777dc9a163SRobert Mustacchi.Pp
787dc9a163SRobert MustacchiIn addition to the routines provided by this header, standardized
797dc9a163SRobert Mustacchifunctions may be found in
80cc581a18SYuri Pankov.Xr byteorder 3C .
817dc9a163SRobert MustacchiThe header
827dc9a163SRobert Mustacchi.Xr types.h 3HEAD
837dc9a163SRobert Mustacchialso defines additional pre-processor symbols to determine the current
847dc9a163SRobert Mustacchiendianness of the system.
857dc9a163SRobert Mustacchi.Sh INTERFACE STABILITY
867dc9a163SRobert Mustacchi.Sy Committed
877dc9a163SRobert Mustacchi.Sh SEE ALSO
88cc581a18SYuri Pankov.Xr byteorder 3C ,
897dc9a163SRobert Mustacchi.Xr endian 3C ,
907dc9a163SRobert Mustacchi.Xr types.h 3HEAD ,
91*bbf21555SRichard Lowe.Xr attributes 7 ,
92*bbf21555SRichard Lowe.Xr byteorder 7
93