Deleted Added
sdiff udiff text old ( 102639 ) new ( 138659 )
full compact
1/*
2 * Copyright (c) 1988, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Jeffrey Mogul.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 24 unchanged lines hidden (view full) ---

33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 */
36
37#if defined(LIBC_SCCS) && !defined(lint)
38static char sccsid[] = "@(#)swab.c 8.1 (Berkeley) 6/4/93";
39#endif /* LIBC_SCCS and not lint */
40#include <sys/cdefs.h>
41__FBSDID("$FreeBSD: head/lib/libc/string/swab.c 102639 2002-08-30 20:33:05Z robert $");
42
43#include <string.h>
44
45void
46swab(const void * __restrict from, void * __restrict to, size_t len)
47{
48 unsigned long temp;
49 int n;
50 char *fp, *tp;
51
52 n = len >> 1;
53 fp = (char *)from;
54 tp = (char *)to;
55#define STEP temp = *fp++,*tp++ = *fp++,*tp++ = temp
56 /* round to multiple of 8 */
57 for (; n & 0x7; --n)
58 STEP;
59 for (n >>= 3; n > 0; --n) {
60 STEP; STEP; STEP; STEP;
61 STEP; STEP; STEP; STEP;
62 }
63}