| [1] | 1 | /* | 
|---|
|  | 2 | * memcpy.c - architecture independent memory copy functions definition. | 
|---|
|  | 3 | * | 
|---|
|  | 4 | * Author ALain Greiner (2016) | 
|---|
|  | 5 | * | 
|---|
|  | 6 | * Copyright (c) UPMC Sorbonne Universites | 
|---|
|  | 7 | * | 
|---|
|  | 8 | * This file is part of ALMOS-MKH. | 
|---|
|  | 9 | * | 
|---|
|  | 10 | * ALMOS-MKH is free software; you can redistribute it and/or modify it | 
|---|
|  | 11 | * under the terms of the GNU General Public License as published by | 
|---|
|  | 12 | * the Free Software Foundation; version 2.0 of the License. | 
|---|
|  | 13 | * | 
|---|
|  | 14 | * ALMOS-MKH is distributed in the hope that it will be useful, but | 
|---|
|  | 15 | * WITHOUT ANY WARRANTY; without even the implied warranty of | 
|---|
|  | 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|---|
|  | 17 | * General Public License for more details. | 
|---|
|  | 18 | * | 
|---|
|  | 19 | * You should have received a copy of the GNU General Public License | 
|---|
|  | 20 | * along with ALMOS-MKH; if not, write to the Free Software Foundation, | 
|---|
|  | 21 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 
|---|
|  | 22 | */ | 
|---|
|  | 23 |  | 
|---|
| [457] | 24 | #include <hal_kernel_types.h> | 
|---|
| [1] | 25 |  | 
|---|
|  | 26 |  | 
|---|
|  | 27 | /******************************************************************************************* | 
|---|
|  | 28 | * This function copies a source buffer to a destination buffer. | 
|---|
| [113] | 29 | * There is no alignment constraint, but the performance is improved if the buffers | 
|---|
|  | 30 | * are both aligned on a 32 bits word boundary. | 
|---|
| [1] | 31 | ******************************************************************************************* | 
|---|
|  | 32 | * @ dst     : pointer on destination buffer. | 
|---|
|  | 33 | * @ src     : pointer on source buffer. | 
|---|
|  | 34 | * @ size    : number of bytes. | 
|---|
|  | 35 | * @ return pointer on destination buffer. | 
|---|
|  | 36 | ******************************************************************************************/ | 
|---|
| [11] | 37 | void * memcpy( void       * dst, | 
|---|
|  | 38 | const void * src, | 
|---|
| [113] | 39 | uint32_t     size ); | 
|---|
| [1] | 40 |  | 
|---|
|  | 41 | /******************************************************************************************* | 
|---|
| [113] | 42 | * This function sets a constant value in each byte of a target buffer. | 
|---|
| [1] | 43 | ******************************************************************************************* | 
|---|
|  | 44 | * @ dst     : pointer on destination buffer. | 
|---|
| [113] | 45 | * @ val     : constant value (cast to uint8_t). | 
|---|
| [1] | 46 | * @ size    : number of bytes. | 
|---|
|  | 47 | * @ return pointer on destination buffer. | 
|---|
|  | 48 | ******************************************************************************************/ | 
|---|
| [113] | 49 | void * memset( void     * dst, | 
|---|
| [11] | 50 | uint32_t   val, | 
|---|
| [113] | 51 | uint32_t size); | 
|---|
| [1] | 52 |  | 
|---|
| [113] | 53 | /******************************************************************************************* | 
|---|
| [512] | 54 | * This function compares two buffers bytewise. | 
|---|
|  | 55 | ******************************************************************************************* | 
|---|
|  | 56 | * @s1     : pointer on a buffer | 
|---|
|  | 57 | * @s2     : pointer on another buffer to compare with @s1 | 
|---|
|  | 58 | * @n      : number of bytes to compare | 
|---|
|  | 59 | * @return : = 0 if s1   == s2 means structural or physical equality between @s1 and @s2. | 
|---|
|  | 60 | *           < 0 if s1[i] < s2[i] means @s1[i] is lesser than @s2[i] current one | 
|---|
|  | 61 | *           > 0 if s1[i] > s2[i] means @s1[i] is greater than @s2[i] current one. | 
|---|
|  | 62 | * Note: i is an index to the current byte of the buffer. | 
|---|
| [113] | 63 | ******************************************************************************************/ | 
|---|
|  | 64 | int memcmp( const void * s1, | 
|---|
|  | 65 | const void * s2, | 
|---|
|  | 66 | uint32_t     n); | 
|---|
|  | 67 |  | 
|---|