cregit-Linux how code gets into the kernel

Release 4.14 arch/m68k/lib/memmove.c

Directory: arch/m68k/lib
/*
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file COPYING in the main directory of this archive
 * for more details.
 */

#include <linux/module.h>
#include <linux/string.h>


void *memmove(void *dest, const void *src, size_t n) { void *xdest = dest; size_t temp; if (!n) return xdest; if (dest < src) { if ((long)dest & 1) { char *cdest = dest; const char *csrc = src; *cdest++ = *csrc++; dest = cdest; src = csrc; n--; } if (n > 2 && (long)dest & 2) { short *sdest = dest; const short *ssrc = src; *sdest++ = *ssrc++; dest = sdest; src = ssrc; n -= 2; } temp = n >> 2; if (temp) { long *ldest = dest; const long *lsrc = src; temp--; do *ldest++ = *lsrc++; while (temp--); dest = ldest; src = lsrc; } if (n & 2) { short *sdest = dest; const short *ssrc = src; *sdest++ = *ssrc++; dest = sdest; src = ssrc; } if (n & 1) { char *cdest = dest; const char *csrc = src; *cdest = *csrc; } } else { dest = (char *)dest + n; src = (const char *)src + n; if ((long)dest & 1) { char *cdest = dest; const char *csrc = src; *--cdest = *--csrc; dest = cdest; src = csrc; n--; } if (n > 2 && (long)dest & 2) { short *sdest = dest; const short *ssrc = src; *--sdest = *--ssrc; dest = sdest; src = ssrc; n -= 2; } temp = n >> 2; if (temp) { long *ldest = dest; const long *lsrc = src; temp--; do *--ldest = *--lsrc; while (temp--); dest = ldest; src = lsrc; } if (n & 2) { short *sdest = dest; const short *ssrc = src; *--sdest = *--ssrc; dest = sdest; src = ssrc; } if (n & 1) { char *cdest = dest; const char *csrc = src; *--cdest = *--csrc; } } return xdest; }

Contributors

PersonTokensPropCommitsCommitProp
Greg Ungerer484100.00%1100.00%
Total484100.00%1100.00%

EXPORT_SYMBOL(memmove);

Overall Contributors

PersonTokensPropCommitsCommitProp
Greg Ungerer496100.00%1100.00%
Total496100.00%1100.00%
Directory: arch/m68k/lib
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.