Branch data Line data Source code
1 : : /******************************************************************************
2 : : * Copyright (c) 2004, 2008 IBM Corporation
3 : : * All rights reserved.
4 : : * This program and the accompanying materials
5 : : * are made available under the terms of the BSD License
6 : : * which accompanies this distribution, and is available at
7 : : * http://www.opensource.org/licenses/bsd-license.php
8 : : *
9 : : * Contributors:
10 : : * IBM Corporation - initial implementation
11 : : *****************************************************************************/
12 : :
13 : : #include <stddef.h>
14 : : #include <ccan/short_types/short_types.h>
15 : :
16 : : void *memcpy(void *dest, const void *src, size_t n);
17 : 10 : void *memcpy(void *dest, const void *src, size_t n)
18 : : {
19 : 10 : void *ret = dest;
20 : :
21 : 15 : while (n >= 8) {
22 : 5 : *(uint64_t *)dest = *(uint64_t *)src;
23 : 5 : dest += 8;
24 : 5 : src += 8;
25 : 5 : n -= 8;
26 : : }
27 : :
28 : 65 : while (n > 0) {
29 : 55 : *(uint8_t *)dest = *(uint8_t *)src;
30 : 55 : dest += 1;
31 : 55 : src += 1;
32 : 55 : n -= 1;
33 : : }
34 : :
35 : 10 : return ret;
36 : : }
|