aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kerrisk <mtk.manpages@gmail.com>2016-04-21 13:07:01 +0200
committerMichael Kerrisk <mtk.manpages@gmail.com>2016-07-24 21:53:46 +0200
commit9f0b7bd6b0a1389e5bcff74952551ab49f21b462 (patch)
treea31468c02e88515fb764e54b5fdc6bea54807b60
parent110039c1dae0146a427c6406a9d0d36daf6635e0 (diff)
downloadman-pages-9f0b7bd6b0a1389e5bcff74952551ab49f21b462.tar.gz
bswap.3: New page documenting bswap_16(), bswap_32(), and bswap_64()
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
-rw-r--r--man3/bswap.383
1 files changed, 83 insertions, 0 deletions
diff --git a/man3/bswap.3 b/man3/bswap.3
new file mode 100644
index 0000000000..f01b28fa56
--- /dev/null
+++ b/man3/bswap.3
@@ -0,0 +1,83 @@
+.\" Copyright (C) 2016 Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" %%%LICENSE_START(VERBATIM)
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
+.\"
+.TH BSWAP 3 2016-04-21 "Linux" "Linux Programmer's Manual"
+.SH NAME
+bswap_16, bswap_32, bswap_64 \- reverse order of bytes
+.SH SYNOPSIS
+.nf
+.B #include <byteswap.h>
+
+.BI bswap_16( x );
+.BI bswap_32( x );
+.BI bswap_64( x );
+.fi
+.SH DESCRIPTION
+These macros return a value in which the order of the bytes
+in their 2-, 4-, or 8-byte arguments is reversed.
+.SH RETURN VALUE
+These macros return the value of their argument with the bytes reversed.
+.SH ERRORS
+These macros always succeed.
+.SH CONFORMING TO
+These macros are GNU extensions.
+.SH EXAMPLE
+The program below swaps the bytes of the 8-byte integer supplied as
+its command-line argument.
+The following shell session demonstrates the use of the program:
+
+.nf
+.in +4n
+$ \fB./a.out 0x0123456789abcdef\fP
+0x123456789abcdef ==> 0xefcdab8967452301
+.in
+.fi
+.SS Program source
+\&
+.nf
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <inttypes.h>
+#include <byteswap.h>
+
+int
+main(int argc, char *argv[])
+{
+ uint64_t x;
+
+ if (argc != 2) {
+ fprintf(stderr, "Usage: %s <num>\\n", argv[0]);
+ exit(EXIT_FAILURE);
+ }
+
+ x = strtoul(argv[1], NULL, 0);
+ printf("0x%" PRIx64 " ==> 0x%" PRIx64 "\\n", x, bswap_64(x));
+
+ exit(EXIT_SUCCESS);
+}
+.fi
+.SH SEE ALSO
+.BR byteorder (3),
+.BR endian (3)