summaryrefslogtreecommitdiff
path: root/static/freebsd/man9/byteorder.9 4.html
blob: 84a05bb1cbfcdc82b0aa60f1bbdf0f7d1f4babd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<table class="head">
  <tr>
    <td class="head-ltitle">BYTEORDER(9)</td>
    <td class="head-vol">Kernel Developer's Manual</td>
    <td class="head-rtitle">BYTEORDER(9)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">bswap16</code>, <code class="Nm">bswap32</code>,
    <code class="Nm">bswap64</code>, <code class="Nm">be16toh</code>,
    <code class="Nm">be32toh</code>, <code class="Nm">be64toh</code>,
    <code class="Nm">htobe16</code>, <code class="Nm">htobe32</code>,
    <code class="Nm">htobe64</code>, <code class="Nm">htole16</code>,
    <code class="Nm">htole32</code>, <code class="Nm">htole64</code>,
    <code class="Nm">le16toh</code>, <code class="Nm">le32toh</code>,
    <code class="Nm">le64toh</code>, <code class="Nm">be16enc</code>,
    <code class="Nm">be16dec</code>, <code class="Nm">be32enc</code>,
    <code class="Nm">be32dec</code>, <code class="Nm">be64enc</code>,
    <code class="Nm">be64dec</code>, <code class="Nm">le16enc</code>,
    <code class="Nm">le16dec</code>, <code class="Nm">le32enc</code>,
    <code class="Nm">le32dec</code>, <code class="Nm">le64enc</code>,
    <code class="Nm">le64dec</code> &#x2014; <span class="Nd">byte order
    operations</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp"><code class="In">#include
    &lt;<a class="In">sys/endian.h</a>&gt;</code></p>
<p class="Pp"><var class="Ft">uint16_t</var>
  <br/>
  <code class="Fn">bswap16</code>(<var class="Fa" style="white-space: nowrap;">uint16_t
    int16</var>);</p>
<p class="Pp"><var class="Ft">uint32_t</var>
  <br/>
  <code class="Fn">bswap32</code>(<var class="Fa" style="white-space: nowrap;">uint32_t
    int32</var>);</p>
<p class="Pp"><var class="Ft">uint64_t</var>
  <br/>
  <code class="Fn">bswap64</code>(<var class="Fa" style="white-space: nowrap;">uint64_t
    int64</var>);</p>
<p class="Pp"><var class="Ft">uint16_t</var>
  <br/>
  <code class="Fn">be16toh</code>(<var class="Fa" style="white-space: nowrap;">uint16_t
    big16</var>);</p>
<p class="Pp"><var class="Ft">uint32_t</var>
  <br/>
  <code class="Fn">be32toh</code>(<var class="Fa" style="white-space: nowrap;">uint32_t
    big32</var>);</p>
<p class="Pp"><var class="Ft">uint64_t</var>
  <br/>
  <code class="Fn">be64toh</code>(<var class="Fa" style="white-space: nowrap;">uint64_t
    big64</var>);</p>
<p class="Pp"><var class="Ft">uint16_t</var>
  <br/>
  <code class="Fn">htobe16</code>(<var class="Fa" style="white-space: nowrap;">uint16_t
    host16</var>);</p>
<p class="Pp"><var class="Ft">uint32_t</var>
  <br/>
  <code class="Fn">htobe32</code>(<var class="Fa" style="white-space: nowrap;">uint32_t
    host32</var>);</p>
<p class="Pp"><var class="Ft">uint64_t</var>
  <br/>
  <code class="Fn">htobe64</code>(<var class="Fa" style="white-space: nowrap;">uint64_t
    host64</var>);</p>
<p class="Pp"><var class="Ft">uint16_t</var>
  <br/>
  <code class="Fn">htole16</code>(<var class="Fa" style="white-space: nowrap;">uint16_t
    host16</var>);</p>
<p class="Pp"><var class="Ft">uint32_t</var>
  <br/>
  <code class="Fn">htole32</code>(<var class="Fa" style="white-space: nowrap;">uint32_t
    host32</var>);</p>
<p class="Pp"><var class="Ft">uint64_t</var>
  <br/>
  <code class="Fn">htole64</code>(<var class="Fa" style="white-space: nowrap;">uint64_t
    host64</var>);</p>
<p class="Pp"><var class="Ft">uint16_t</var>
  <br/>
  <code class="Fn">le16toh</code>(<var class="Fa" style="white-space: nowrap;">uint16_t
    little16</var>);</p>
<p class="Pp"><var class="Ft">uint32_t</var>
  <br/>
  <code class="Fn">le32toh</code>(<var class="Fa" style="white-space: nowrap;">uint32_t
    little32</var>);</p>
<p class="Pp"><var class="Ft">uint64_t</var>
  <br/>
  <code class="Fn">le64toh</code>(<var class="Fa" style="white-space: nowrap;">uint64_t
    little64</var>);</p>
<p class="Pp"><var class="Ft">uint16_t</var>
  <br/>
  <code class="Fn">be16dec</code>(<var class="Fa" style="white-space: nowrap;">const
    void *</var>);</p>
<p class="Pp"><var class="Ft">uint32_t</var>
  <br/>
  <code class="Fn">be32dec</code>(<var class="Fa" style="white-space: nowrap;">const
    void *</var>);</p>
<p class="Pp"><var class="Ft">uint64_t</var>
  <br/>
  <code class="Fn">be64dec</code>(<var class="Fa" style="white-space: nowrap;">const
    void *</var>);</p>
<p class="Pp"><var class="Ft">uint16_t</var>
  <br/>
  <code class="Fn">le16dec</code>(<var class="Fa" style="white-space: nowrap;">const
    void *</var>);</p>
<p class="Pp"><var class="Ft">uint32_t</var>
  <br/>
  <code class="Fn">le32dec</code>(<var class="Fa" style="white-space: nowrap;">const
    void *</var>);</p>
<p class="Pp"><var class="Ft">uint64_t</var>
  <br/>
  <code class="Fn">le64dec</code>(<var class="Fa" style="white-space: nowrap;">const
    void *</var>);</p>
<p class="Pp"><var class="Ft">void</var>
  <br/>
  <code class="Fn">be16enc</code>(<var class="Fa" style="white-space: nowrap;">void
    *</var>, <var class="Fa" style="white-space: nowrap;">uint16_t</var>);</p>
<p class="Pp"><var class="Ft">void</var>
  <br/>
  <code class="Fn">be32enc</code>(<var class="Fa" style="white-space: nowrap;">void
    *</var>, <var class="Fa" style="white-space: nowrap;">uint32_t</var>);</p>
<p class="Pp"><var class="Ft">void</var>
  <br/>
  <code class="Fn">be64enc</code>(<var class="Fa" style="white-space: nowrap;">void
    *</var>, <var class="Fa" style="white-space: nowrap;">uint64_t</var>);</p>
<p class="Pp"><var class="Ft">void</var>
  <br/>
  <code class="Fn">le16enc</code>(<var class="Fa" style="white-space: nowrap;">void
    *</var>, <var class="Fa" style="white-space: nowrap;">uint16_t</var>);</p>
<p class="Pp"><var class="Ft">void</var>
  <br/>
  <code class="Fn">le32enc</code>(<var class="Fa" style="white-space: nowrap;">void
    *</var>, <var class="Fa" style="white-space: nowrap;">uint32_t</var>);</p>
<p class="Pp"><var class="Ft">void</var>
  <br/>
  <code class="Fn">le64enc</code>(<var class="Fa" style="white-space: nowrap;">void
    *</var>, <var class="Fa" style="white-space: nowrap;">uint64_t</var>);</p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The
    <a class="permalink" href="#bswap16"><code class="Fn" id="bswap16">bswap16</code></a>(),
    <a class="permalink" href="#bswap32"><code class="Fn" id="bswap32">bswap32</code></a>(),
    and
    <a class="permalink" href="#bswap64"><code class="Fn" id="bswap64">bswap64</code></a>()
    functions return a byte order swapped integer. On big endian systems, the
    number is converted to little endian byte order. On little endian systems,
    the number is converted to big endian byte order.</p>
<p class="Pp" id="be16toh">The
    <a class="permalink" href="#be16toh"><code class="Fn">be16toh</code></a>(),
    <a class="permalink" href="#be32toh"><code class="Fn" id="be32toh">be32toh</code></a>(),
    and
    <a class="permalink" href="#be64toh"><code class="Fn" id="be64toh">be64toh</code></a>()
    functions return a big endian byte ordered integer converted to the system's
    native byte order. The return value will be the same as the argument on big
    endian systems.</p>
<p class="Pp" id="le16toh">The
    <a class="permalink" href="#le16toh"><code class="Fn">le16toh</code></a>(),
    <a class="permalink" href="#le32toh"><code class="Fn" id="le32toh">le32toh</code></a>(),
    and
    <a class="permalink" href="#le64toh"><code class="Fn" id="le64toh">le64toh</code></a>()
    functions return a little endian byte ordered integer converted to the
    system's native byte order. The return value will be the same as the
    argument on little endian systems.</p>
<p class="Pp" id="htobe16">The
    <a class="permalink" href="#htobe16"><code class="Fn">htobe16</code></a>(),
    <a class="permalink" href="#htobe32"><code class="Fn" id="htobe32">htobe32</code></a>(),
    and
    <a class="permalink" href="#htobe64"><code class="Fn" id="htobe64">htobe64</code></a>()
    functions return an integer in the system's native byte order converted to
    big endian byte order. The return value will be the same as the argument on
    big endian systems.</p>
<p class="Pp" id="htole16">The
    <a class="permalink" href="#htole16"><code class="Fn">htole16</code></a>(),
    <a class="permalink" href="#htole32"><code class="Fn" id="htole32">htole32</code></a>(),
    and
    <a class="permalink" href="#htole64"><code class="Fn" id="htole64">htole64</code></a>()
    functions return a integer in the system's native byte order converted to
    little endian byte order. The return value will be the same as the argument
    on little endian systems.</p>
<p class="Pp" id="be16enc">The
    <a class="permalink" href="#be16enc"><code class="Fn">be16enc</code></a>(),
    <a class="permalink" href="#be16dec"><code class="Fn" id="be16dec">be16dec</code></a>(),
    <a class="permalink" href="#be32enc"><code class="Fn" id="be32enc">be32enc</code></a>(),
    <a class="permalink" href="#be32dec"><code class="Fn" id="be32dec">be32dec</code></a>(),
    <a class="permalink" href="#be64enc"><code class="Fn" id="be64enc">be64enc</code></a>(),
    <a class="permalink" href="#be64dec"><code class="Fn" id="be64dec">be64dec</code></a>(),
    <a class="permalink" href="#le16enc"><code class="Fn" id="le16enc">le16enc</code></a>(),
    <a class="permalink" href="#le16dec"><code class="Fn" id="le16dec">le16dec</code></a>(),
    <a class="permalink" href="#le32enc"><code class="Fn" id="le32enc">le32enc</code></a>(),
    <a class="permalink" href="#le32dec"><code class="Fn" id="le32dec">le32dec</code></a>(),
    <a class="permalink" href="#le64enc"><code class="Fn" id="le64enc">le64enc</code></a>(),
    and
    <a class="permalink" href="#le64dec"><code class="Fn" id="le64dec">le64dec</code></a>()
    functions encode and decode integers to/from byte strings on any alignment
    in big/little endian format.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<p class="Pp"><a class="Xr">byteorder(3)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">The <code class="Fn">hto*</code>() and
    <code class="Fn">*toh</code>() functions first appeared in
    <span class="Ux">FreeBSD 5.0</span>, and were originally developed by the
    <span class="Ux">NetBSD</span> project.</p>
<p class="Pp">The encode/decode functions first appeared in
    <span class="Ux">FreeBSD 5.1</span>.</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">April 29, 2002</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>