| * Copyright (c) 2013-2023, Arm Limited and Contributors. All rights reserved. |
| * Copyright (c) 2023, Intel Corporation. All rights reserved. |
| * SPDX-License-Identifier: BSD-3-Clause |
| int memcpy_s(void *dst, size_t dsize, void *src, size_t ssize) |
| unsigned int *s = (unsigned int *)src; |
| unsigned int *d = (unsigned int *)dst; |
| * Check source and destination size is NULL |
| if ((dst == NULL) || (src == NULL)) { |
| * Check source and destination size validity |
| if ((dsize == 0) || (ssize == 0)) { |
| * Check both source and destination size range |
| if ((ssize > dsize) || (dsize > ssize)) { |
| * Check both source and destination address overlapping |
| * When (s > d < s + ssize) |
| * Start copy process when there is no error |