URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
[/] [openrisc/] [trunk/] [gnu-src/] [newlib-1.17.0/] [newlib/] [libc/] [string/] [swab.c] - Rev 312
Go to most recent revision | Compare with Previous | Blame | View Log
/* FUNCTION <<swab>>---swap adjacent bytes ANSI_SYNOPSIS #include <unistd.h> void swab(const void *<[in]>, void *<[out]>, ssize_t <[n]>); TRAD_SYNOPSIS void swab(<[in]>, <[out]>, <[n]> void *<[in]>; void *<[out]>; ssize_t <[n]>; DESCRIPTION This function copies <[n]> bytes from the memory region pointed to by <[in]> to the memory region pointed to by <[out]>, exchanging adjacent even and odd bytes. PORTABILITY <<swab>> requires no supporting OS subroutines. */ #include <unistd.h> void _DEFUN (swab, (b1, b2, length), _CONST void *b1 _AND void *b2 _AND ssize_t length) { const char *from = b1; char *to = b2; ssize_t ptr; for (ptr = 1; ptr < length; ptr += 2) { char p = from[ptr]; char q = from[ptr-1]; to[ptr-1] = p; to[ptr ] = q; } if (ptr == length) /* I.e., if length is odd, */ to[ptr-1] = 0; /* then pad with a NUL. */ }
Go to most recent revision | Compare with Previous | Blame | View Log