xref: /titanic_44/usr/src/man/man3head/endian.h.3head (revision 577bdc16588431dcec0742144b1ba2ef4b0581fe)
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