summaryrefslogtreecommitdiff
path: root/lib/libc/unistd/swab.c
blob: 5e4e7e3b48fdf13cc0b751aeed326259b8abbfdc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <unistd.h>

void swab(const void *restrict src, void *restrict dest, ssize_t nbytes)
{
	const char *s = src;
	char *d = dest;

	if (nbytes <= 0)
		return;

	ssize_t n = nbytes & ~1;

	for (ssize_t i = 0; i < n; i += 2) {
		d[i] = s[i + 1];
		d[i + 1] = s[i];
	}
}