summaryrefslogtreecommitdiff
path: root/static/netbsd/man3/OPENSSL_load_u16_le.3
blob: 426c9fccb28ed4af02303bb370e43754dcd7ee27 (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
.\"	$NetBSD: OPENSSL_load_u16_le.3,v 1.5 2026/04/08 17:06:45 christos Exp $
.\"
.\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
.    if \nF \{\
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{\
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" Required to disable full justification in groff 1.23.0.
.if n .ds AD l
.\" ========================================================================
.\"
.IX Title "OPENSSL_load_u16_le 3"
.TH OPENSSL_load_u16_le 3 2026-04-07 3.5.6 OpenSSL
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH NAME
OPENSSL_load_u16_le, OPENSSL_load_u16_be, OPENSSL_load_u32_le,
OPENSSL_load_u32_be, OPENSSL_load_u64_le, OPENSSL_load_u64_be,
OPENSSL_store_u16_le, OPENSSL_store_u16_be,
OPENSSL_store_u32_le, OPENSSL_store_u32_be,
OPENSSL_store_u64_le, OPENSSL_store_u64_be \-
Read and write unsigned 16, 32 and 64\-bit integers in a specific byte order
.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 1
\&    #include <openssl/byteorder.h>
\&
\&    static ossl_inline unsigned char *OPENSSL_store_u16_le(
\&        unsigned char *out, uint16_t val);
\&    static ossl_inline unsigned char *OPENSSL_store_u16_be(
\&        unsigned char *out, uint16_t val);
\&    static ossl_inline unsigned char *OPENSSL_store_u32_le(
\&        unsigned char *out, uint32_t val);
\&    static ossl_inline unsigned char *OPENSSL_store_u32_be(
\&        unsigned char *out, uint32_t val);
\&    static ossl_inline unsigned char *OPENSSL_store_u64_le(
\&        unsigned char *out, uint64_t val);
\&    static ossl_inline unsigned char *OPENSSL_store_u64_be(
\&        unsigned char *out, uint64_t val);
\&    static ossl_inline const unsigned char *OPENSSL_load_u16_le(
\&        uint16_t *val, const unsigned char *in);
\&    static ossl_inline const unsigned char *OPENSSL_load_u16_be(
\&        uint16_t *val, const unsigned char *in);
\&    static ossl_inline const unsigned char *OPENSSL_load_u32_le(
\&        uint32_t *val, const unsigned char *in);
\&    static ossl_inline const unsigned char *OPENSSL_load_u32_be(
\&        uint32_t *val, const unsigned char *in);
\&    static ossl_inline const unsigned char *OPENSSL_load_u64_le(
\&        uint64_t *val, const unsigned char *in);
\&    static ossl_inline const unsigned char *OPENSSL_load_u64_be(
\&        uint64_t *val, const unsigned char *in);
.Ve
.SH DESCRIPTION
.IX Header "DESCRIPTION"
These functions read and write 16, 32 and 64 bit unsigned integers in a
specified byte order.
The \f(CW\*(C`_be\*(C'\fR functions use big\-endian byte order, while the \f(CW\*(C`_le\*(C'\fR functions use
little\-endian byte order.
They\*(Aqre implemented directly in the header file, and declared static.  When the
compiler supports inline functions, they\*(Aqre also declared inline.
An optimising compiler will often convert these to just one or two machine
instructions: a load or store with a possible byte swap.
.PP
The \f(CW\*(C`load\*(C'\fR functions write the decoded integer value at the address pointed to
by \fIval\fR, which must be a valid (possibly suitably aligned) address of an
object of the appropriate type.
The \f(CW\*(C`store\*(C'\fR functions write the encoding of \fIval\fR at the address pointed to
by \fIout\fR.
.PP
For convenience, these functions return the updated input or output pointer,
making it easy to continue reading or writing more data at the next memory
location.
.PP
No bounds checks are performed, the caller is responsible for making sure that
the input or output buffers are sufficiently large for the requested read or
write.
.SH "RETURN VALUES"
.IX Header "RETURN VALUES"
All these functions return the next memory address following the last byte
written or read.
.SH HISTORY
.IX Header "HISTORY"
These functions were added in OpenSSL 3.5.
.SH COPYRIGHT
.IX Header "COPYRIGHT"
Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
.PP
Licensed under the Apache License 2.0 (the "License").  You may not use
this file except in compliance with the License.  You can obtain a copy
in the file LICENSE in the source distribution or at
<https://www.openssl.org/source/license.html>.