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