esp_async_memcpy.c 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include "esp_check.h"
  7. #include "esp_async_memcpy.h"
  8. #include "esp_async_memcpy_priv.h"
  9. static const char *TAG = "async_mcp";
  10. esp_err_t esp_async_memcpy_uninstall(async_memcpy_handle_t asmcp)
  11. {
  12. ESP_RETURN_ON_FALSE(asmcp, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
  13. return asmcp->del(asmcp);
  14. }
  15. esp_err_t esp_async_memcpy(async_memcpy_handle_t asmcp, void *dst, void *src, size_t n, async_memcpy_isr_cb_t cb_isr, void *cb_args)
  16. {
  17. ESP_RETURN_ON_FALSE(asmcp && dst && src && n, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
  18. return asmcp->memcpy(asmcp, dst, src, n, cb_isr, cb_args);
  19. }
  20. #if SOC_GDMA_SUPPORT_ETM
  21. esp_err_t esp_async_memcpy_new_etm_event(async_memcpy_handle_t asmcp, async_memcpy_etm_event_t event_type, esp_etm_event_handle_t *out_event)
  22. {
  23. ESP_RETURN_ON_FALSE(asmcp && out_event, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
  24. return asmcp->new_etm_event(asmcp, event_type, out_event);
  25. }
  26. #endif