/* * Copyright (c) 2017 Actions Semiconductor Co., Ltd * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include #include #include #include #include #include K_MUTEX_DEFINE(se_lock); /**************************************************************************** * Name: se_memcpy * * Description: * copy data from src to dst according to memory type. * ****************************************************************************/ void se_memcpy(void *out, const void *in, size_t size, uint8_t direct) { size_t i; size_t wcount = size / 4; if (direct == CPY_MEMU8_TO_FIFO) { for (i = 0; i < size; i++) { *(uint32_t *)out = *(uint8_t *)in; in = (uint8_t *)in + 1; } } else if (direct == CPY_MEM_TO_FIFO) { for (i = 0; i < wcount; i++) { *(uint32_t *)out = *(uint32_t *)in; in = (uint8_t *)in + 4; } } else if (direct == CPY_FIFO_TO_MEM) { for (i = 0; i < wcount; i++) { *(uint32_t *)out = *(uint32_t *)in; out = (uint8_t *)out + 4; } } else { for (i = 0; i < wcount; i++) { *(uint32_t *)out = *(uint32_t *)in; in = (uint8_t *)in + 4; out = (uint8_t *)out + 4; } } }