From 6c68adad4db7f6112990764eafe6a3bd5f8759a5 Mon Sep 17 00:00:00 2001 From: LiteOS2021 Date: Tue, 15 Feb 2022 16:10:15 +0800 Subject: [PATCH] feat: synchronous los_hwicreate interface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BREAKING CHANGE: 涉及接口修改: LOS_HwiCreate LOS_HwiDelete 改动内容: 中断处理函数参数类型由HWI_ARG_T统一改为HwiIrqParam,封装原有arg参数及riscv部分实际使用变量pDevId, 这样一方面统一LiteOS接口,也统一了中断处理函数的arg参数 同步LOS_HwiDelete接口入参,新增HWI_IRQ_PARAM_S *irqParam参数,为后续共享中断功能的添加预留 Signed-off-by: LiteOS2021 --- arch/arm/arm9/gcc/los_interrupt.c | 30 ++++++++++------- arch/arm/cortex-m3/keil/los_interrupt.c | 30 ++++++++++------- arch/arm/cortex-m33/gcc/NTZ/los_interrupt.c | 30 ++++++++++------- .../gcc/TZ/non_secure/los_interrupt.c | 30 ++++++++++------- arch/arm/cortex-m33/iar/NTZ/los_interrupt.c | 30 ++++++++++------- .../iar/TZ/non_secure/los_interrupt.c | 30 ++++++++++------- arch/arm/cortex-m4/gcc/los_interrupt.c | 30 ++++++++++------- arch/arm/cortex-m4/iar/los_interrupt.c | 30 ++++++++++------- arch/arm/cortex-m55/gcc/NTZ/los_interrupt.c | 30 ++++++++++------- arch/arm/cortex-m7/gcc/los_interrupt.c | 30 ++++++++++------- arch/arm/cortex-m7/iar/los_interrupt.c | 30 ++++++++++------- arch/csky/v2/gcc/los_interrupt.c | 30 ++++++++++------- arch/include/los_interrupt.h | 15 ++++++--- arch/risc-v/nuclei/gcc/los_interrupt.c | 32 ++++++++++--------- arch/risc-v/riscv32/gcc/los_interrupt.c | 13 +++++--- arch/risc-v/riscv32/gcc/los_timer.c | 5 ++- arch/xtensa/lx6/gcc/los_interrupt.c | 30 ++++++++++------- .../Src/task_sample.c | 7 +++- testsuites/include/osTest.h | 2 +- testsuites/sample/kernel/hwi/it_los_hwi_001.c | 8 +++-- testsuites/sample/kernel/hwi/it_los_hwi_002.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_003.c | 12 ++++--- testsuites/sample/kernel/hwi/it_los_hwi_004.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_005.c | 12 ++++--- testsuites/sample/kernel/hwi/it_los_hwi_006.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_007.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_008.c | 10 +++--- testsuites/sample/kernel/hwi/it_los_hwi_009.c | 10 +++--- testsuites/sample/kernel/hwi/it_los_hwi_010.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_011.c | 10 +++--- testsuites/sample/kernel/hwi/it_los_hwi_012.c | 10 +++--- testsuites/sample/kernel/hwi/it_los_hwi_013.c | 10 +++--- testsuites/sample/kernel/hwi/it_los_hwi_014.c | 10 +++--- testsuites/sample/kernel/hwi/it_los_hwi_015.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_016.c | 7 ++-- testsuites/sample/kernel/hwi/it_los_hwi_017.c | 12 ++++--- testsuites/sample/kernel/hwi/it_los_hwi_018.c | 7 ++-- testsuites/sample/kernel/hwi/it_los_hwi_019.c | 7 ++-- testsuites/sample/kernel/hwi/it_los_hwi_020.c | 9 ++++-- testsuites/sample/kernel/hwi/it_los_hwi_021.c | 7 ++-- testsuites/sample/kernel/hwi/it_los_hwi_022.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_023.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_024.c | 7 ++-- testsuites/sample/kernel/hwi/it_los_hwi_025.c | 12 ++++--- testsuites/sample/kernel/hwi/it_los_hwi_026.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_027.c | 8 +++-- testsuites/sample/kernel/hwi/it_los_hwi_028.c | 11 ++++--- testsuites/sample/kernel/hwi/it_los_hwi_029.c | 10 +++--- testsuites/sample/kernel/hwi/it_los_hwi_030.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_031.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_032.c | 10 +++--- testsuites/sample/kernel/hwi/it_los_hwi_033.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_034.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_039.c | 6 ++-- testsuites/sample/kernel/hwi/it_los_hwi_040.c | 15 +++++---- .../sample/kernel/hwi/llt_los_hwi_035.c | 17 ++++++---- .../sample/kernel/queue/It_los_queue_004.c | 5 +++ .../sample/kernel/swtmr/It_los_swtmr_039.c | 8 +++-- .../sample/kernel/swtmr/It_los_swtmr_040.c | 8 +++-- .../sample/kernel/swtmr/It_los_swtmr_041.c | 11 ++++--- .../sample/kernel/swtmr/It_los_swtmr_064.c | 6 ++-- .../sample/kernel/swtmr/It_los_swtmr_065.c | 6 ++-- .../sample/kernel/swtmr/It_los_swtmr_080.c | 27 +++++++++------- .../sample/kernel/task/It_los_task_080.c | 6 ++-- .../sample/kernel/task/It_los_task_114.c | 6 ++-- .../sample/kernel/task/It_los_task_117.c | 6 ++-- testsuites/src/osTest.c | 2 +- 67 files changed, 541 insertions(+), 329 deletions(-) diff --git a/arch/arm/arm9/gcc/los_interrupt.c b/arch/arm/arm9/gcc/los_interrupt.c index aeba62f9..7d25b4ad 100644 --- a/arch/arm/arm9/gcc/los_interrupt.c +++ b/arch/arm/arm9/gcc/los_interrupt.c @@ -233,22 +233,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINT32 intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -262,10 +262,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask(hwiNum); LOS_IntRestore(intSave); @@ -277,11 +281,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/arm/cortex-m3/keil/los_interrupt.c b/arch/arm/cortex-m3/keil/los_interrupt.c index 8a40b1d8..0f0d2d42 100644 --- a/arch/arm/cortex-m3/keil/los_interrupt.c +++ b/arch/arm/cortex-m3/keil/los_interrupt.c @@ -268,22 +268,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINT32 intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -301,10 +301,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask((IRQn_Type)hwiNum); HwiSetPriority((IRQn_Type)hwiNum, hwiPrio); @@ -318,11 +322,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/arm/cortex-m33/gcc/NTZ/los_interrupt.c b/arch/arm/cortex-m33/gcc/NTZ/los_interrupt.c index e4288895..a09a1c9b 100755 --- a/arch/arm/cortex-m33/gcc/NTZ/los_interrupt.c +++ b/arch/arm/cortex-m33/gcc/NTZ/los_interrupt.c @@ -259,22 +259,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINT32 intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -292,10 +292,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask((IRQn_Type)hwiNum); HwiSetPriority((IRQn_Type)hwiNum, hwiPrio); @@ -309,11 +313,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/arm/cortex-m33/gcc/TZ/non_secure/los_interrupt.c b/arch/arm/cortex-m33/gcc/TZ/non_secure/los_interrupt.c index f4b84c84..6db5e6b7 100755 --- a/arch/arm/cortex-m33/gcc/TZ/non_secure/los_interrupt.c +++ b/arch/arm/cortex-m33/gcc/TZ/non_secure/los_interrupt.c @@ -259,22 +259,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINT32 intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -292,10 +292,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask((IRQn_Type)hwiNum); HwiSetPriority((IRQn_Type)hwiNum, hwiPrio); @@ -309,11 +313,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/arm/cortex-m33/iar/NTZ/los_interrupt.c b/arch/arm/cortex-m33/iar/NTZ/los_interrupt.c index 1e59f920..a61ec0b7 100644 --- a/arch/arm/cortex-m33/iar/NTZ/los_interrupt.c +++ b/arch/arm/cortex-m33/iar/NTZ/los_interrupt.c @@ -267,22 +267,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINTPTR intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -300,10 +300,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask((IRQn_Type)hwiNum); HwiSetPriority((IRQn_Type)hwiNum, hwiPrio); @@ -317,11 +321,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/arm/cortex-m33/iar/TZ/non_secure/los_interrupt.c b/arch/arm/cortex-m33/iar/TZ/non_secure/los_interrupt.c index 1e59f920..a61ec0b7 100644 --- a/arch/arm/cortex-m33/iar/TZ/non_secure/los_interrupt.c +++ b/arch/arm/cortex-m33/iar/TZ/non_secure/los_interrupt.c @@ -267,22 +267,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINTPTR intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -300,10 +300,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask((IRQn_Type)hwiNum); HwiSetPriority((IRQn_Type)hwiNum, hwiPrio); @@ -317,11 +321,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/arm/cortex-m4/gcc/los_interrupt.c b/arch/arm/cortex-m4/gcc/los_interrupt.c index cf225389..d1b5c3e6 100644 --- a/arch/arm/cortex-m4/gcc/los_interrupt.c +++ b/arch/arm/cortex-m4/gcc/los_interrupt.c @@ -263,22 +263,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINT32 intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -296,10 +296,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask((IRQn_Type)hwiNum); HwiSetPriority((IRQn_Type)hwiNum, hwiPrio); @@ -313,11 +317,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/arm/cortex-m4/iar/los_interrupt.c b/arch/arm/cortex-m4/iar/los_interrupt.c index 6c542400..a1944dbc 100644 --- a/arch/arm/cortex-m4/iar/los_interrupt.c +++ b/arch/arm/cortex-m4/iar/los_interrupt.c @@ -269,22 +269,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINT32 intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -302,10 +302,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask((IRQn_Type)hwiNum); HwiSetPriority((IRQn_Type)hwiNum, hwiPrio); @@ -319,11 +323,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/arm/cortex-m55/gcc/NTZ/los_interrupt.c b/arch/arm/cortex-m55/gcc/NTZ/los_interrupt.c index 820d435a..f2e8f6b7 100755 --- a/arch/arm/cortex-m55/gcc/NTZ/los_interrupt.c +++ b/arch/arm/cortex-m55/gcc/NTZ/los_interrupt.c @@ -263,22 +263,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINT32 intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -296,10 +296,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask((IRQn_Type)hwiNum); HwiSetPriority((IRQn_Type)hwiNum, hwiPrio); @@ -313,11 +317,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/arm/cortex-m7/gcc/los_interrupt.c b/arch/arm/cortex-m7/gcc/los_interrupt.c index ca7b9960..eb26b1ea 100644 --- a/arch/arm/cortex-m7/gcc/los_interrupt.c +++ b/arch/arm/cortex-m7/gcc/los_interrupt.c @@ -258,22 +258,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINT32 intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -291,10 +291,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask((IRQn_Type)hwiNum); HwiSetPriority((IRQn_Type)hwiNum, hwiPrio); @@ -308,11 +312,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/arm/cortex-m7/iar/los_interrupt.c b/arch/arm/cortex-m7/iar/los_interrupt.c index f2d754a6..412b9d10 100644 --- a/arch/arm/cortex-m7/iar/los_interrupt.c +++ b/arch/arm/cortex-m7/iar/los_interrupt.c @@ -265,22 +265,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINT32 intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -298,10 +298,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask((IRQn_Type)hwiNum); HwiSetPriority((IRQn_Type)hwiNum, hwiPrio); @@ -315,11 +319,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/csky/v2/gcc/los_interrupt.c b/arch/csky/v2/gcc/los_interrupt.c index c62273a9..19ff5ac9 100644 --- a/arch/csky/v2/gcc/los_interrupt.c +++ b/arch/csky/v2/gcc/los_interrupt.c @@ -344,22 +344,22 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINT32 intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } if (hwiNum >= OS_HWI_MAX_NUM) { @@ -376,10 +376,14 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, } intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask(hwiNum); (VOID)HwiSetPriority(hwiNum, (UINT8)hwiPrio); @@ -392,11 +396,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/include/los_interrupt.h b/arch/include/los_interrupt.h index 49cf57c8..80e9e018 100644 --- a/arch/include/los_interrupt.h +++ b/arch/include/los_interrupt.h @@ -53,6 +53,11 @@ typedef VOID (*HWI_PROC_FUNC)(VOID *parm); #else typedef VOID (*HWI_PROC_FUNC)(void); #endif +typedef struct tagIrqParam { + int swIrq; /**< The interrupt number */ + VOID *pDevId; /**< The pointer to the device ID that launches the interrupt */ + const CHAR *pName; /**< The interrupt name */ +} HwiIrqParam; typedef struct { UINT32 (*triggerIrq)(HWI_HANDLE_T hwiNum); @@ -109,14 +114,15 @@ UINT32 ArchIntUnLock(VOID); * * * @param hwiNum [IN] Type#HWI_HANDLE_T: hardware interrupt number. The value range applicable for a Cortex-A7 platform is [32,95]. - * + * @param irqParam [IN] Type #HwiIrqParam *. ID of hardware interrupt which will base on + * when delete the hardware interrupt. * @retval #OS_ERRNO_HWI_NUM_INVALID 0x02000900: Invalid interrupt number. * @retval #LOS_OK 0 : The interrupt is successfully delete. * @par Dependency: * * @see None. */ -UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum); +UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam); /** * @ingroup los_interrupt @@ -137,7 +143,8 @@ UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum); * @param hwiPrio [IN] Type#HWI_PRIOR_T: hardware interrupt priority. Ignore this parameter temporarily. * @param mode [IN] Type#HWI_MODE_T: hardware interrupt mode. Ignore this parameter temporarily. * @param handler [IN] Type#HWI_PROC_FUNC: interrupt handler used when a hardware interrupt is triggered. - * @param arg [IN] Type#HWI_ARG_T: input parameter of the interrupt handler used when a hardware interrupt is triggered. + * @param irqParam [IN] Type#HwiIrqParam: input parameter of the interrupt + * handler used when a hardware interrupt is triggered. * * @retval #OS_ERRNO_HWI_PROC_FUNC_NULL 0x02000901: Null hardware interrupt handling function. * @retval #OS_ERRNO_HWI_NUM_INVALID 0x02000900: Invalid interrupt number. @@ -152,7 +159,7 @@ UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, HWI_MODE_T mode, HWI_PROC_FUNC handler, - HWI_ARG_T arg); + HwiIrqParam *irqParam); STATIC INLINE UINT32 ArchIntTrigger(HWI_HANDLE_T hwiNum) { diff --git a/arch/risc-v/nuclei/gcc/los_interrupt.c b/arch/risc-v/nuclei/gcc/los_interrupt.c index 1644ace0..591e17db 100644 --- a/arch/risc-v/nuclei/gcc/los_interrupt.c +++ b/arch/risc-v/nuclei/gcc/los_interrupt.c @@ -86,9 +86,9 @@ LITE_OS_SEC_TEXT_INIT VOID HalHwiInit(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- hwi interrupt mode, between vector or non-vector - handler --- hwi handler - arg --- set trig mode of the hwi handler + hwiMode --- hwi interrupt hwiMode, between vector or non-vector + hwiHandler --- hwi handler + irqParam --- set trig hwiMode of the hwi handler Level Triggerred = 0 Postive/Rising Edge Triggered = 1 Negtive/Falling Edge Triggered = 3 @@ -97,24 +97,24 @@ LITE_OS_SEC_TEXT_INIT VOID HalHwiInit(VOID) *****************************************************************************/ UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { if (hwiNum > SOC_INT_MAX) { return OS_ERRNO_HWI_NUM_INVALID; } - if (mode > ECLIC_VECTOR_INTERRUPT) { + if (hwiMode > ECLIC_VECTOR_INTERRUPT) { return OS_ERRNO_HWI_MODE_INVALID; } - if (arg > ECLIC_NEGTIVE_EDGE_TRIGGER) { + if ((irqParam == NULL) || (irqParam->pDevId > ECLIC_NEGTIVE_EDGE_TRIGGER)) { return OS_ERRNO_HWI_ARG_INVALID; } - /* set interrupt vector mode */ - ECLIC_SetShvIRQ(hwiNum, mode); - /* set interrupt trigger mode and polarity */ - ECLIC_SetTrigIRQ(hwiNum, arg); + /* set interrupt vector hwiMode */ + ECLIC_SetShvIRQ(hwiNum, hwiMode); + /* set interrupt trigger hwiMode and polarity */ + ECLIC_SetTrigIRQ(hwiNum, irqParam->pDevId); /* set interrupt level */ // default to 0 ECLIC_SetLevelIRQ(hwiNum, 0); @@ -124,9 +124,9 @@ UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, /* set interrupt priority */ // low 16 bit for priority ECLIC_SetPriorityIRQ(hwiNum, (hwiPrio & 0xffff)); - if (handler != NULL) { + if (hwiHandler != NULL) { /* set interrupt handler entry to vector table */ - ECLIC_SetVector(hwiNum, (rv_csr_t)handler); + ECLIC_SetVector(hwiNum, (rv_csr_t)hwiHandler); } /* enable interrupt */ HwiUnmask(hwiNum); @@ -137,10 +137,12 @@ UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Return : LOS_OK on success or error code on failure *****************************************************************************/ -LITE_OS_SEC_TEXT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; // change func to default func ECLIC_SetVector(hwiNum, (rv_csr_t)HalHwiDefaultHandler); // disable interrupt diff --git a/arch/risc-v/riscv32/gcc/los_interrupt.c b/arch/risc-v/riscv32/gcc/los_interrupt.c index 1ab8b882..fa05051a 100644 --- a/arch/risc-v/riscv32/gcc/los_interrupt.c +++ b/arch/risc-v/riscv32/gcc/los_interrupt.c @@ -165,7 +165,7 @@ LITE_OS_SEC_TEXT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, HWI_MODE_T hwiMode, HWI_PROC_FUNC hwiHandler, - HWI_ARG_T irqParam) + HwiIrqParam *irqParam) { UINT32 intSave; @@ -186,8 +186,11 @@ LITE_OS_SEC_TEXT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); g_hwiForm[hwiNum].pfnHook = hwiHandler; - g_hwiForm[hwiNum].uwParam = (VOID *)irqParam; - + if (irqParam != NULL) { + g_hwiForm[hwiNum].uwParam = (VOID *)irqParam->pDevId; + } else { + g_hwiForm[hwiNum].uwParam = NULL; + } if (hwiNum >= OS_RISCV_SYS_VECTOR_CNT) { HalSetLocalInterPri(hwiNum, hwiPrio); } @@ -201,10 +204,12 @@ LITE_OS_SEC_TEXT UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Return : LOS_OK on success or error code on failure *****************************************************************************/ -LITE_OS_SEC_TEXT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/arch/risc-v/riscv32/gcc/los_timer.c b/arch/risc-v/riscv32/gcc/los_timer.c index 87ad2310..cd0a1b23 100644 --- a/arch/risc-v/riscv32/gcc/los_timer.c +++ b/arch/risc-v/riscv32/gcc/los_timer.c @@ -61,7 +61,10 @@ STATIC UINT32 SysTickStart(HWI_PROC_FUNC handler) ArchTickTimer *tick = &g_archTickTimer; UINT32 period = (UINT32)LOSCFG_BASE_CORE_TICK_RESPONSE_MAX; - UINT32 ret = LOS_HwiCreate(RISCV_MACH_TIMER_IRQ, 0x1, 0, handler, period); + HwiIrqParam irqParam; + irqParam.pDevId = (VOID *)period; + + UINT32 ret = LOS_HwiCreate(RISCV_MACH_TIMER_IRQ, 0x1, 0, handler, &irqParam); if (ret != LOS_OK) { return ret; } diff --git a/arch/xtensa/lx6/gcc/los_interrupt.c b/arch/xtensa/lx6/gcc/los_interrupt.c index 38a3d580..c4c1e726 100644 --- a/arch/xtensa/lx6/gcc/los_interrupt.c +++ b/arch/xtensa/lx6/gcc/los_interrupt.c @@ -314,22 +314,22 @@ VOID HalInterrupt(VOID) Description : create hardware interrupt Input : hwiNum --- hwi num to create hwiPrio --- priority of the hwi - mode --- unused - handler --- hwi handler - arg --- param of the hwi handler + hwiMode --- unused + hwiHandler --- hwi handler + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, HWI_PRIOR_T hwiPrio, - HWI_MODE_T mode, - HWI_PROC_FUNC handler, - HWI_ARG_T arg) + HWI_MODE_T hwiMode, + HWI_PROC_FUNC hwiHandler, + HwiIrqParam *irqParam) { - (VOID)mode; + (VOID)hwiMode; UINT32 intSave; - if (handler == NULL) { + if (hwiHandler == NULL) { return OS_ERRNO_HWI_PROC_FUNC_NULL; } @@ -347,10 +347,14 @@ UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, intSave = LOS_IntLock(); #if (LOSCFG_PLATFORM_HWI_WITH_ARG == 1) - OsSetVector(hwiNum, handler, arg); + if (irqParam != NULL) { + OsSetVector(hwiNum, hwiHandler, irqParam->pDevId); + } else { + OsSetVector(hwiNum, hwiHandler, NULL); + } #else - (VOID)arg; - OsSetVector(hwiNum, handler); + (VOID)irqParam; + OsSetVector(hwiNum, hwiHandler); #endif HwiUnmask(hwiNum); @@ -363,11 +367,13 @@ UINT32 ArchHwiCreate(HWI_HANDLE_T hwiNum, Function : ArchHwiDelete Description : Delete hardware interrupt Input : hwiNum --- hwi num to delete + irqParam --- param of the hwi handler Output : None Return : LOS_OK on success or error code on failure **************************************************************************** */ -LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum) +LITE_OS_SEC_TEXT_INIT UINT32 ArchHwiDelete(HWI_HANDLE_T hwiNum, HwiIrqParam *irqParam) { + (VOID)irqParam; UINT32 intSave; if (hwiNum >= OS_HWI_MAX_NUM) { diff --git a/targets/riscv_nuclei_gd32vf103_soc_gcc/Src/task_sample.c b/targets/riscv_nuclei_gd32vf103_soc_gcc/Src/task_sample.c index 4951992a..28a57001 100644 --- a/targets/riscv_nuclei_gd32vf103_soc_gcc/Src/task_sample.c +++ b/targets/riscv_nuclei_gd32vf103_soc_gcc/Src/task_sample.c @@ -47,6 +47,8 @@ extern "C" { #endif /* __cplusplus */ #endif /* __cplusplus */ +#define EXIT0_IRQ 9 + UINT8 __attribute__ ((aligned (8))) g_memStart[OS_SYS_MEM_SIZE]; VOID TaskSampleEntry2(VOID) @@ -81,6 +83,9 @@ VOID TaskSample(VOID) UINT32 taskID1; UINT32 taskID2; TSK_INIT_PARAM_S stTask = {0}; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = (VOID *)ECLIC_LEVEL_TRIGGER; stTask.pfnTaskEntry = (TSK_ENTRY_FUNC)TaskSampleEntry1; stTask.uwStackSize = 0x0800; @@ -101,7 +106,7 @@ VOID TaskSample(VOID) } LOS_HwiInit(); - LOS_HwiCreate(EXTI0_IRQn, 9, ECLIC_NON_VECTOR_INTERRUPT, EXTI0_IRQHandler, ECLIC_LEVEL_TRIGGER); + LOS_HwiCreate(EXTI0_IRQn, EXIT0_IRQ, ECLIC_NON_VECTOR_INTERRUPT, EXTI0_IRQHandler, &irqParam); } VOID RunTaskSample(VOID) diff --git a/testsuites/include/osTest.h b/testsuites/include/osTest.h index 23e6eace..b9cdacd5 100644 --- a/testsuites/include/osTest.h +++ b/testsuites/include/osTest.h @@ -330,7 +330,7 @@ typedef struct tagHwiHandleForm { UINT32 uwPrioMask; } HWI_HANDLE_FORM_S; #endif -#define TEST_HwiCreate(ID, prio, mode, Func, arg) LOS_HwiCreate(ID, prio, mode, Func, arg) +#define TEST_HwiCreate(ID, prio, mode, Func, irqParam) LOS_HwiCreate(ID, prio, mode, Func, irqParam) #define uart_printf_func printf extern VOID ItSuiteLosTask(void); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_001.c b/testsuites/sample/kernel/hwi/it_los_hwi_001.c index 4658dbbb..38f23736 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_001.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_001.c @@ -28,7 +28,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - + #include "osTest.h" #include "it_los_hwi.h" @@ -43,9 +43,11 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); TestHwiDelete(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_002.c b/testsuites/sample/kernel/hwi/it_los_hwi_002.c index 8f03620b..62d4d200 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_002.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_002.c @@ -38,9 +38,11 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, NULL, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, NULL, &irqParam); ICUNIT_ASSERT_EQUAL(ret, OS_ERRNO_HWI_PROC_FUNC_NULL, ret); return LOS_OK; diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_003.c b/testsuites/sample/kernel/hwi/it_los_hwi_003.c index 1de76ec5..eaff0770 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_003.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_003.c @@ -44,21 +44,23 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); hwiPrio = 2; // 2, set new hwi priority - ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); hwiPrio = 6; // 6, set new hwi priority - ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT2); hwiPrio = 7; // 7, set new hwi priority - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, OS_ERRNO_HWI_ALREADY_CREATED, ret, EXIT3); TestHwiDelete(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_004.c b/testsuites/sample/kernel/hwi/it_los_hwi_004.c index 55fa0ad1..159f5c5a 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_004.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_004.c @@ -43,9 +43,11 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = OS_HWI_PRIO_LOWEST; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); TestHwiDelete(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_005.c b/testsuites/sample/kernel/hwi/it_los_hwi_005.c index 799a760d..23c6ecd1 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_005.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_005.c @@ -49,18 +49,20 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST2, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST2, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); - ret = LOS_HwiCreate(HWI_NUM_INT1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_INT1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT2); - ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT3); TestHwiDelete(HWI_NUM_TEST1); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_006.c b/testsuites/sample/kernel/hwi/it_los_hwi_006.c index 92333eb2..330e530e 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_006.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_006.c @@ -44,9 +44,11 @@ static UINT32 Testcase(VOID) HWI_HANDLE_T hwiNum = 241; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; - ret = LOS_HwiCreate(hwiNum, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(hwiNum, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, OS_ERRNO_HWI_NUM_INVALID, ret); return LOS_OK; diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_007.c b/testsuites/sample/kernel/hwi/it_los_hwi_007.c index e4c8cc5a..f90e4a31 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_007.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_007.c @@ -44,12 +44,14 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; UINT32 intSave; g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); intSave = LOS_IntLock(); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_008.c b/testsuites/sample/kernel/hwi/it_los_hwi_008.c index 4c06f2a5..4057c16b 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_008.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_008.c @@ -43,15 +43,17 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, OS_ERRNO_HWI_ALREADY_CREATED, ret, EXIT); - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, OS_ERRNO_HWI_ALREADY_CREATED, ret, EXIT); EXIT: diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_009.c b/testsuites/sample/kernel/hwi/it_los_hwi_009.c index 92096378..4cb0baea 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_009.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_009.c @@ -66,17 +66,19 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); - ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); - ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT2); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_010.c b/testsuites/sample/kernel/hwi/it_los_hwi_010.c index f5cf6309..c8d3ccc4 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_010.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_010.c @@ -44,13 +44,15 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; UINT32 intSave1; UINT32 intSave2; g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); intSave1 = LOS_IntLock(); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_011.c b/testsuites/sample/kernel/hwi/it_los_hwi_011.c index e1984223..ae2855c8 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_011.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_011.c @@ -79,19 +79,21 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); hwiPrio = 2; // 2, set new hwi priority - ret = LOS_HwiCreate(HWI_NUM_TEST2, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST2, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); hwiPrio = 1; - ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT2); TestHwiTrigger(HWI_NUM_TEST3); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_012.c b/testsuites/sample/kernel/hwi/it_los_hwi_012.c index 9edd365d..6a474b92 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_012.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_012.c @@ -79,19 +79,21 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); hwiPrio = 2; // set new hwi priority is 2 - ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); hwiPrio = 3; // set new hwi priority is 3 - ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT2); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_013.c b/testsuites/sample/kernel/hwi/it_los_hwi_013.c index d9249c6d..a8775bad 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_013.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_013.c @@ -67,16 +67,18 @@ static UINT32 Testcase(VOID) HWI_PRIOR_T hwiPrio = 1; #endif HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; UINT32 intSave; g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); hwiPrio = 2; // set new hwi priority is 2 - ret = LOS_HwiCreate(HWI_NUM_TEST2, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST2, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); #ifdef __RISC_V__ @@ -84,7 +86,7 @@ static UINT32 Testcase(VOID) #else hwiPrio = 3; // set new hwi priority is 3 #endif - ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT2); intSave = LOS_IntLock(); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_014.c b/testsuites/sample/kernel/hwi/it_los_hwi_014.c index 0edfc29a..19510d90 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_014.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_014.c @@ -63,18 +63,20 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; UINT32 intSave; g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); - ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); - ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT2); intSave = LOS_IntLock(); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_015.c b/testsuites/sample/kernel/hwi/it_los_hwi_015.c index 826bd683..51702f28 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_015.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_015.c @@ -64,7 +64,9 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; TSK_INIT_PARAM_S task; task.pfnTaskEntry = (TSK_ENTRY_FUNC)TaskF01; @@ -75,7 +77,7 @@ static UINT32 Testcase(VOID) g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); ret = LOS_TaskCreate(&g_testTaskID01, &task); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_016.c b/testsuites/sample/kernel/hwi/it_los_hwi_016.c index 3866919e..77471f83 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_016.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_016.c @@ -98,7 +98,10 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; + TSK_INIT_PARAM_S task; task.pfnTaskEntry = (TSK_ENTRY_FUNC)TaskF01; @@ -132,7 +135,7 @@ static UINT32 Testcase(VOID) ret = LOS_TaskCreate(&g_testTaskID03, &task); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT2); - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT3); LOS_TaskUnlock(); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_017.c b/testsuites/sample/kernel/hwi/it_los_hwi_017.c index 9c1ebf69..01b1fd49 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_017.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_017.c @@ -44,14 +44,16 @@ static VOID TaskF01(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; ICUNIT_GOTO_EQUAL(g_testCount, 1, g_testCount, EXIT); g_testCount++; TestHwiDelete(HWI_NUM_TEST); - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); EXIT: @@ -86,11 +88,13 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = OS_HWI_PRIO_LOWEST; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_018.c b/testsuites/sample/kernel/hwi/it_los_hwi_018.c index 6b28b622..0e91c539 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_018.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_018.c @@ -69,7 +69,10 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = OS_HWI_PRIO_LOWEST; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; + TSK_INIT_PARAM_S task; task.pfnTaskEntry = (TSK_ENTRY_FUNC)TaskF01; @@ -80,7 +83,7 @@ static UINT32 Testcase(VOID) g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); ret = LOS_TaskCreate(&g_testTaskID01, &task); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_019.c b/testsuites/sample/kernel/hwi/it_los_hwi_019.c index 4b4d8e3e..9a9ce57f 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_019.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_019.c @@ -78,7 +78,10 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = OS_HWI_PRIO_LOWEST; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; + TSK_INIT_PARAM_S task; task.pfnTaskEntry = (TSK_ENTRY_FUNC)TaskF01; @@ -89,7 +92,7 @@ static UINT32 Testcase(VOID) g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); ret = LOS_TaskCreate(&g_testTaskID01, &task); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_020.c b/testsuites/sample/kernel/hwi/it_los_hwi_020.c index 0bb09106..a526f08a 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_020.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_020.c @@ -28,7 +28,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - + #include "osTest.h" #include "it_los_hwi.h" @@ -96,7 +96,10 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = OS_HWI_PRIO_LOWEST; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; + TSK_INIT_PARAM_S task; task.pfnTaskEntry = (TSK_ENTRY_FUNC)TaskF01; @@ -107,7 +110,7 @@ static UINT32 Testcase(VOID) g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); ret = LOS_TaskCreate(&g_testTaskID01, &task); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_021.c b/testsuites/sample/kernel/hwi/it_los_hwi_021.c index e4c714fe..0e36d0be 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_021.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_021.c @@ -88,7 +88,10 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = OS_HWI_PRIO_LOWEST; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; + TSK_INIT_PARAM_S task; task.pfnTaskEntry = (TSK_ENTRY_FUNC)TaskF01; @@ -99,7 +102,7 @@ static UINT32 Testcase(VOID) g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); ret = LOS_TaskCreate(&g_testTaskID01, &task); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_022.c b/testsuites/sample/kernel/hwi/it_los_hwi_022.c index a2c39a45..7640ddcd 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_022.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_022.c @@ -55,12 +55,14 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; ret = LOS_EventInit(&g_exampleEvent); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_023.c b/testsuites/sample/kernel/hwi/it_los_hwi_023.c index 16ccf75d..3244f1ed 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_023.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_023.c @@ -71,11 +71,13 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_024.c b/testsuites/sample/kernel/hwi/it_los_hwi_024.c index 4842ed5e..16ab3ff4 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_024.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_024.c @@ -82,7 +82,10 @@ static UINT32 Testcase(VOID) UINT32 semCount = 1; HWI_PRIOR_T hwiPrio = OS_HWI_PRIO_LOWEST; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; + TSK_INIT_PARAM_S task; task.pfnTaskEntry = (TSK_ENTRY_FUNC)TaskF01; @@ -99,7 +102,7 @@ static UINT32 Testcase(VOID) ret = LOS_SemPend(g_usSemID, LOS_NO_WAIT); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); ret = LOS_TaskCreate(&g_testTaskID01, &task); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_025.c b/testsuites/sample/kernel/hwi/it_los_hwi_025.c index cc94d1e2..6f05227e 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_025.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_025.c @@ -29,7 +29,7 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "osTest.h" +#include "osTest.h" #include "it_los_hwi.h" @@ -59,12 +59,14 @@ static UINT32 Testcase(VOID) UINT32 semCount = 1; HWI_PRIOR_T hwiPrio = 7; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; ret = LOS_SemCreate(semCount, &g_usSemID); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); TestHwiTrigger(HWI_NUM_TEST); @@ -86,5 +88,5 @@ Testcase brief in English VOID ItLosHwi025(VOID) // IT_Layer_ModuleORFeature_No { TEST_ADD_CASE("ItLosHwi025", Testcase, TEST_LOS, TEST_HWI, TEST_LEVEL2, TEST_FUNCTION); -} - +} + diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_026.c b/testsuites/sample/kernel/hwi/it_los_hwi_026.c index 59f59ed5..23f5b44b 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_026.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_026.c @@ -45,9 +45,11 @@ static VOID SwtmrF01(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL_VOID(ret, LOS_OK, ret); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_027.c b/testsuites/sample/kernel/hwi/it_los_hwi_027.c index 2c61806c..65810c0b 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_027.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_027.c @@ -45,14 +45,16 @@ static UINT32 Testcase(VOID) UINT32 loop; HWI_PRIOR_T hwiPrio = OS_HWI_PRIO_LOWEST; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; for (loop = 0; loop < HWI_LOOP_NUM; loop++) { - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); for (index = 0; index < HWI_LOOP_NUM; index++) { - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, OS_ERRNO_HWI_ALREADY_CREATED, ret, EXIT); } TestHwiDelete(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_028.c b/testsuites/sample/kernel/hwi/it_los_hwi_028.c index 8e65191e..90931c10 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_028.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_028.c @@ -58,20 +58,23 @@ static UINT32 Testcase(VOID) UINT32 loop; HWI_PRIOR_T hwiPrio = OS_HWI_PRIO_LOWEST; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; + UINT32 intSave1; UINT32 intSave2; UINT32 intSave3; for (loop = 0; loop < HWI_LOOP_NUM; loop++) { g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); - ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); - ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT2); intSave1 = LOS_IntLock(); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_029.c b/testsuites/sample/kernel/hwi/it_los_hwi_029.c index c3a20692..ded7dc2f 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_029.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_029.c @@ -74,17 +74,19 @@ static UINT32 Testcase(VOID) UINT32 loop; HWI_PRIOR_T hwiPrio = 2; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; for (loop = 0; loop < HWI_LOOP_NUM; loop++) { g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); - ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST3, hwiPrio, mode, (HWI_PROC_FUNC)HwiF02, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); - ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST1, hwiPrio, mode, (HWI_PROC_FUNC)HwiF03, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT2); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_030.c b/testsuites/sample/kernel/hwi/it_los_hwi_030.c index 8322636f..1ba038c5 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_030.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_030.c @@ -48,12 +48,14 @@ static UINT32 Testcase(VOID) UINT32 loop; HWI_PRIOR_T hwiPrio = 2; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; UINT32 intSave; for (loop = 0; loop < HWI_LOOP_NUM; loop++) { g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); intSave = LOS_IntLock(); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_031.c b/testsuites/sample/kernel/hwi/it_los_hwi_031.c index 44be1cad..2467bb86 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_031.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_031.c @@ -48,12 +48,14 @@ static UINT32 Testcase(VOID) UINT32 loop; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount = 0; for (loop = 0; loop < HWI_LOOP_NUM; loop++) { - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_032.c b/testsuites/sample/kernel/hwi/it_los_hwi_032.c index fba1c8d1..d9197314 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_032.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_032.c @@ -28,7 +28,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - + #include "osTest.h" #if (LOS_KERNEL_MULTI_HWI_TEST == 1) @@ -63,13 +63,15 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = OS_HWI_PRIO_LOWEST; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount = 0; /* Creates 3 interrupts in a row with interrupt number */ for (g_uwIndex = 0; g_uwIndex < 3; g_uwIndex++) { - ret = LOS_HwiCreate(HWI_NUM_INT0 + g_uwIndex, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_INT0 + g_uwIndex, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); TestHwiTrigger(HWI_NUM_INT0 + g_uwIndex); } @@ -78,7 +80,7 @@ static UINT32 Testcase(VOID) for (g_uwIndex = 4; g_uwIndex < TEST_MAX_NUMBER_HWI; g_uwIndex++) { /* if interrupt number is not HWI_NUM_INT0 + 5 */ if (g_uwIndex != 5) { - ret = LOS_HwiCreate(HWI_NUM_INT0 + g_uwIndex, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_INT0 + g_uwIndex, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); TestHwiTrigger(HWI_NUM_INT0 + g_uwIndex); } diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_033.c b/testsuites/sample/kernel/hwi/it_los_hwi_033.c index 3fea4975..cd07c0fc 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_033.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_033.c @@ -51,13 +51,15 @@ static UINT32 Testcase(VOID) UINT32 loop; HWI_PRIOR_T hwiPrio = OS_HWI_PRIO_LOWEST; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; for (loop = 0; loop < HWI_LOOP_NUM; loop++) { for (index = 0; index < OS_HWI_MAX_USED_NUM; index++) { /* if not Interrupt number HWI_NUM_TEST1 + 3\4\32\35\36. */ if ((index != 3) && (index != 4) && (index != 32) && (index != 35) && (index != 36)) { - ret = LOS_HwiCreate(HWI_NUM_TEST1 + index, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST1 + index, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); } diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_034.c b/testsuites/sample/kernel/hwi/it_los_hwi_034.c index 8bfba4f9..e774709b 100644 --- a/testsuites/sample/kernel/hwi/it_los_hwi_034.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_034.c @@ -47,11 +47,13 @@ static UINT32 Testcase(VOID) UINT32 loop; HWI_PRIOR_T hwiPrio = 2; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; for (loop = 0; loop < HWI_LOOP_NUM; loop++) { g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_039.c b/testsuites/sample/kernel/hwi/it_los_hwi_039.c index d0b929f3..6672675d 100755 --- a/testsuites/sample/kernel/hwi/it_los_hwi_039.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_039.c @@ -45,10 +45,12 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 2; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); LOS_HwiDisable(HWI_NUM_TEST); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/hwi/it_los_hwi_040.c b/testsuites/sample/kernel/hwi/it_los_hwi_040.c index 79e54c19..8ef483cc 100755 --- a/testsuites/sample/kernel/hwi/it_los_hwi_040.c +++ b/testsuites/sample/kernel/hwi/it_los_hwi_040.c @@ -86,7 +86,10 @@ static UINT32 Testcase(VOID) UINT32 irqNum = 0; HWI_PRIOR_T hwiPrio = 2; // 2, Set hwi priority. HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; + HwiControllerOps *ops = NULL; HwiControllerOps *opsBac = (HwiControllerOps *)malloc(sizeof(HwiControllerOps)); if (opsBac == NULL) { @@ -97,19 +100,19 @@ static UINT32 Testcase(VOID) (VOID)memset_s(opsBac, sizeof(HwiControllerOps), 0, sizeof(HwiControllerOps)); g_testCount = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); ret = LOS_HwiTrigger(LOSCFG_PLATFORM_HWI_LIMIT + 1); ICUNIT_ASSERT_EQUAL(ret, OS_ERRNO_HWI_NUM_INVALID, ret); - ret = LOS_HwiEnable(LOSCFG_PLATFORM_HWI_LIMIT + 1); + ret = LOS_HwiEnable(OS_HWI_MAX_NUM + 1); ICUNIT_ASSERT_EQUAL(ret, OS_ERRNO_HWI_NUM_INVALID, ret); - ret = LOS_HwiDisable(LOSCFG_PLATFORM_HWI_LIMIT + 1); + ret = LOS_HwiDisable(OS_HWI_MAX_NUM + 1); ICUNIT_ASSERT_EQUAL(ret, OS_ERRNO_HWI_NUM_INVALID, ret); - ret = LOS_HwiClear(LOSCFG_PLATFORM_HWI_LIMIT + 1); + ret = LOS_HwiClear(OS_HWI_MAX_NUM + 1); ICUNIT_ASSERT_EQUAL(ret, OS_ERRNO_HWI_NUM_INVALID, ret); hwiPrio = 3; // 3, Set hwi priority. - ret = LOS_HwiSetPriority(LOSCFG_PLATFORM_HWI_LIMIT + 1, hwiPrio); + ret = LOS_HwiSetPriority(OS_HWI_MAX_NUM + 1, hwiPrio); ICUNIT_ASSERT_NOT_EQUAL(ret, LOS_OK, ret); ops = LOS_HwiOpsGet(); diff --git a/testsuites/sample/kernel/hwi/llt_los_hwi_035.c b/testsuites/sample/kernel/hwi/llt_los_hwi_035.c index dc4bc0c3..6da5a92c 100644 --- a/testsuites/sample/kernel/hwi/llt_los_hwi_035.c +++ b/testsuites/sample/kernel/hwi/llt_los_hwi_035.c @@ -29,14 +29,14 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "osTest.h" +#include "osTest.h" #include "it_los_hwi.h" static VOID TaskF01(VOID) { } - + VOID ItHwiM3B001F001() { return; @@ -49,7 +49,10 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 2; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; + TSK_INIT_PARAM_S task1 = {0}; task1.pfnTaskEntry = (TSK_ENTRY_FUNC)TaskF01; @@ -61,8 +64,8 @@ static UINT32 Testcase(VOID) ret = LOS_TaskCreate(&g_testTaskIdHwi, &task1); ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); - ret = LOS_HwiCreate(HWI_NUM_INT0, hwiPrio, mode, (HWI_PROC_FUNC)ItHwiM3B001F001, arg); - ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); + ret = LOS_HwiCreate(HWI_NUM_INT0, hwiPrio, mode, (HWI_PROC_FUNC)ItHwiM3B001F001, &irqParam); + ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret); return LOS_OK; @@ -80,5 +83,5 @@ Testcase brief in English VOID LltLosHwi035(VOID) // IT_Layer_ModuleORFeature_No { TEST_ADD_CASE("LltLosHwi035", Testcase, TEST_LOS, TEST_HWI, TEST_LEVEL3, TEST_PRESSURE); -} - +} + diff --git a/testsuites/sample/kernel/queue/It_los_queue_004.c b/testsuites/sample/kernel/queue/It_los_queue_004.c index 2e984e8d..dc32fde6 100644 --- a/testsuites/sample/kernel/queue/It_los_queue_004.c +++ b/testsuites/sample/kernel/queue/It_los_queue_004.c @@ -44,8 +44,13 @@ static UINT32 Testcase(VOID) ret = LOS_QueueCreate("Q1", 1, &g_testQueueID01, 0, 0xFFFE); ICUNIT_GOTO_EQUAL(ret, LOS_ERRNO_QUEUE_SIZE_TOO_BIG, ret, EXIT); +#ifdef __CSKY_V2__ + // CB2201 Board is low memory device, set max message size 0x4000. + ret = LOS_QueueCreate("Q1", 1, &g_testQueueID01, 0, 0x4000); +#else // 0x8000, is the middle number. ret = LOS_QueueCreate("Q1", 1, &g_testQueueID01, 0, 0x8000); +#endif ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); ret = LOS_QueueWrite(g_testQueueID01 + 1, &buff1, QUEUE_BASE_MSGSIZE, 0); diff --git a/testsuites/sample/kernel/swtmr/It_los_swtmr_039.c b/testsuites/sample/kernel/swtmr/It_los_swtmr_039.c index 9444ab2d..50adaae7 100644 --- a/testsuites/sample/kernel/swtmr/It_los_swtmr_039.c +++ b/testsuites/sample/kernel/swtmr/It_los_swtmr_039.c @@ -63,18 +63,20 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T hwiMode; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount1 = 0; // 1, Timeout interval of a periodic software timer. - ret = LOS_SwtmrCreate(1, LOS_SWTMR_MODE_ONCE, (SWTMR_PROC_FUNC)Case2, &g_swtmrId1, arg + ret = LOS_SwtmrCreate(1, LOS_SWTMR_MODE_ONCE, (SWTMR_PROC_FUNC)Case2, &g_swtmrId1, &irqParam #if (LOSCFG_BASE_CORE_SWTMR_ALIGN == 1) , OS_SWTMR_ROUSES_ALLOW, OS_SWTMR_ALIGN_INSENSITIVE #endif ); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); hwiMode = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, hwiMode, (HWI_PROC_FUNC)Case1, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, hwiMode, (HWI_PROC_FUNC)Case1, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); TestHwiTrigger(HWI_NUM_TEST); LOS_TaskDelay(5); // 5, set delay time. diff --git a/testsuites/sample/kernel/swtmr/It_los_swtmr_040.c b/testsuites/sample/kernel/swtmr/It_los_swtmr_040.c index d0377f3b..6d094ae3 100644 --- a/testsuites/sample/kernel/swtmr/It_los_swtmr_040.c +++ b/testsuites/sample/kernel/swtmr/It_los_swtmr_040.c @@ -62,11 +62,13 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T hwiMode; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount1 = 0; // 1, Timeout interval of a periodic software timer. - ret = LOS_SwtmrCreate(1, LOS_SWTMR_MODE_PERIOD, (SWTMR_PROC_FUNC)Case2, &g_swtmrId1, arg + ret = LOS_SwtmrCreate(1, LOS_SWTMR_MODE_PERIOD, (SWTMR_PROC_FUNC)Case2, &g_swtmrId1, &irqParam #if (LOSCFG_BASE_CORE_SWTMR_ALIGN == 1) , OS_SWTMR_ROUSES_ALLOW, OS_SWTMR_ALIGN_INSENSITIVE #endif @@ -74,7 +76,7 @@ static UINT32 Testcase(VOID) ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); hwiMode = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, hwiMode, (HWI_PROC_FUNC)Case1, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, hwiMode, (HWI_PROC_FUNC)Case1, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/swtmr/It_los_swtmr_041.c b/testsuites/sample/kernel/swtmr/It_los_swtmr_041.c index 4b8820d2..bb3beabe 100644 --- a/testsuites/sample/kernel/swtmr/It_los_swtmr_041.c +++ b/testsuites/sample/kernel/swtmr/It_los_swtmr_041.c @@ -74,25 +74,28 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T hwiMode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; + g_testCount1 = 0; TestHwiClear(HWI_NUM_TEST); // 10, Timeout interval of a periodic software timer. - ret = LOS_SwtmrCreate(10, LOS_SWTMR_MODE_ONCE, (SWTMR_PROC_FUNC)Case3, &g_swtmrId1, arg + ret = LOS_SwtmrCreate(10, LOS_SWTMR_MODE_ONCE, (SWTMR_PROC_FUNC)Case3, &g_swtmrId1, &irqParam #if (LOSCFG_BASE_CORE_SWTMR_ALIGN == 1) , OS_SWTMR_ROUSES_ALLOW, OS_SWTMR_ALIGN_INSENSITIVE #endif ); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); // 20, Timeout interval of a periodic software timer. - ret = LOS_SwtmrCreate(20, LOS_SWTMR_MODE_PERIOD, (SWTMR_PROC_FUNC)Case2, &g_swtmrId2, arg + ret = LOS_SwtmrCreate(20, LOS_SWTMR_MODE_PERIOD, (SWTMR_PROC_FUNC)Case2, &g_swtmrId2, &irqParam #if (LOSCFG_BASE_CORE_SWTMR_ALIGN == 1) , OS_SWTMR_ROUSES_ALLOW, OS_SWTMR_ALIGN_INSENSITIVE #endif ); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, hwiMode, (HWI_PROC_FUNC)Case1, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, hwiMode, (HWI_PROC_FUNC)Case1, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); ret = LOS_SwtmrStart(g_swtmrId2); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); diff --git a/testsuites/sample/kernel/swtmr/It_los_swtmr_064.c b/testsuites/sample/kernel/swtmr/It_los_swtmr_064.c index 478cec0e..e1ce3941 100644 --- a/testsuites/sample/kernel/swtmr/It_los_swtmr_064.c +++ b/testsuites/sample/kernel/swtmr/It_los_swtmr_064.c @@ -60,7 +60,9 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T hwiMode; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount = 0; @@ -73,7 +75,7 @@ static UINT32 Testcase(VOID) ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); hwiMode = 0; - ret = TEST_HwiCreate(HWI_NUM_TEST, hwiPrio, hwiMode, (HWI_PROC_FUNC)HwiF01, arg); + ret = TEST_HwiCreate(HWI_NUM_TEST, hwiPrio, hwiMode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); ret = LOS_SwtmrStart(g_swtmrId1); diff --git a/testsuites/sample/kernel/swtmr/It_los_swtmr_065.c b/testsuites/sample/kernel/swtmr/It_los_swtmr_065.c index 0d565ec8..26698683 100644 --- a/testsuites/sample/kernel/swtmr/It_los_swtmr_065.c +++ b/testsuites/sample/kernel/swtmr/It_los_swtmr_065.c @@ -58,7 +58,9 @@ static UINT32 Testcase(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 1; HWI_MODE_T hwiMode; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; g_testCount = 0; ret = LOS_SwtmrCreate(TIMER_LOS_EXPIRATION1, LOS_SWTMR_MODE_PERIOD, (SWTMR_PROC_FUNC)SwtmrF01, &g_swtmrId1, @@ -70,7 +72,7 @@ static UINT32 Testcase(VOID) ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); hwiMode = 0; - ret = TEST_HwiCreate(HWI_NUM_TEST, hwiPrio, hwiMode, (HWI_PROC_FUNC)HwiF01, arg); + ret = TEST_HwiCreate(HWI_NUM_TEST, hwiPrio, hwiMode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT1); ret = LOS_SwtmrStart(g_swtmrId1); diff --git a/testsuites/sample/kernel/swtmr/It_los_swtmr_080.c b/testsuites/sample/kernel/swtmr/It_los_swtmr_080.c index 8933e2af..c4a7deb7 100644 --- a/testsuites/sample/kernel/swtmr/It_los_swtmr_080.c +++ b/testsuites/sample/kernel/swtmr/It_los_swtmr_080.c @@ -32,6 +32,8 @@ #include "osTest.h" #include "It_los_swtmr.h" +#define SWTMR_PERIOD 4 // 4, Timeout interval of a periodic software timer ticks. + static UINT32 g_testCount1 = 0; static VOID Case1(UINT32 arg) { @@ -41,15 +43,15 @@ static VOID Case1(UINT32 arg) static UINT32 Testcase(VOID) { - UINT32 ret; + UINT32 ret = LOS_NOK; g_testCount1 = 0; UINT64 tickRecord; UINT64 tickUpdate; UINT64 delayTicks; - const UINT64 delayMs = 10; // delay 10 MS + const UINT64 delayMs = 80; // delay 80 ms. + delayTicks = delayMs * LOSCFG_BASE_CORE_TICK_PER_SECOND / OS_SYS_MS_PER_SECOND; - // 4, Timeout interval of a periodic software timer. - ret = LOS_SwtmrCreate(4, LOS_SWTMR_MODE_PERIOD, Case1, &g_swtmrId1, 0xffff + ret = LOS_SwtmrCreate(SWTMR_PERIOD, LOS_SWTMR_MODE_PERIOD, Case1, &g_swtmrId1, 0xffff #if (LOSCFG_BASE_CORE_SWTMR_ALIGN == 1) , OS_SWTMR_ROUSES_ALLOW, OS_SWTMR_ALIGN_INSENSITIVE #endif @@ -63,18 +65,21 @@ static UINT32 Testcase(VOID) LOS_MDelay(delayMs); tickUpdate = LOS_TickCountGet(); - // 0, Here, assert that g_testCount is equal to this. - ICUNIT_ASSERT_EQUAL(g_testCount1, 0, g_testCount); + if ((g_testCount1 >= delayTicks / SWTMR_PERIOD - 1) + || (g_testCount1 <= delayTicks / SWTMR_PERIOD + 1)) { + ret = LOS_OK; + } + + ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); - delayTicks = delayMs * LOSCFG_BASE_CORE_TICK_PER_SECOND / OS_SYS_MS_PER_SECOND; ICUNIT_ASSERT_WITHIN_EQUAL(delayTicks, tickUpdate - tickRecord - 1, tickUpdate - tickRecord + 1, delayTicks); // 10, set task delay time. LOS_TaskDelay(10); - - // 2, Here, assert that g_testCount is equal to this. - ICUNIT_ASSERT_EQUAL(g_testCount1, 2, g_testCount); - + + // delayTicks / SWTMR_PERIOD + 2, Here, g_testCount1 is equal to this. + ICUNIT_GOTO_EQUAL(g_testCount1, delayTicks / SWTMR_PERIOD + 2, g_testCount1, EXIT); + EXIT: LOS_SwtmrDelete(g_swtmrId1); return LOS_OK; diff --git a/testsuites/sample/kernel/task/It_los_task_080.c b/testsuites/sample/kernel/task/It_los_task_080.c index 5dd48a77..536b9cff 100644 --- a/testsuites/sample/kernel/task/It_los_task_080.c +++ b/testsuites/sample/kernel/task/It_los_task_080.c @@ -68,7 +68,9 @@ static VOID TaskF01(VOID) HWI_PRIOR_T hwiPrio = 3; // Set reasonable priority for interrupt. HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; ret = LOS_TaskCreate(&g_testTaskID02, &task1); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); @@ -76,7 +78,7 @@ static VOID TaskF01(VOID) ICUNIT_GOTO_EQUAL(g_testCount, 0, g_testCount, EXIT); g_testCount++; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL_VOID(ret, LOS_OK, ret); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/task/It_los_task_114.c b/testsuites/sample/kernel/task/It_los_task_114.c index 824702dd..3a097563 100644 --- a/testsuites/sample/kernel/task/It_los_task_114.c +++ b/testsuites/sample/kernel/task/It_los_task_114.c @@ -48,9 +48,11 @@ static VOID TaskF01(VOID) UINT32 ret; HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL_VOID(ret, LOS_OK, ret); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/sample/kernel/task/It_los_task_117.c b/testsuites/sample/kernel/task/It_los_task_117.c index 448bba40..0676fec6 100644 --- a/testsuites/sample/kernel/task/It_los_task_117.c +++ b/testsuites/sample/kernel/task/It_los_task_117.c @@ -63,7 +63,9 @@ static VOID TaskF01(VOID) HWI_PRIOR_T hwiPrio = 3; HWI_MODE_T mode = 0; - HWI_ARG_T arg = 0; + HwiIrqParam irqParam; + (void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam)); + irqParam.pDevId = 0; ret = LOS_TaskCreate(&g_testTaskID02, &task1); ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT); @@ -71,7 +73,7 @@ static VOID TaskF01(VOID) ICUNIT_GOTO_EQUAL(g_testCount, 0, g_testCount, EXIT); g_testCount++; - ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, arg); + ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam); ICUNIT_ASSERT_EQUAL_VOID(ret, LOS_OK, ret); TestHwiTrigger(HWI_NUM_TEST); diff --git a/testsuites/src/osTest.c b/testsuites/src/osTest.c index 801c81ea..a524672c 100644 --- a/testsuites/src/osTest.c +++ b/testsuites/src/osTest.c @@ -317,7 +317,7 @@ VOID TestHwiUnTrigger(UINT32 hwiNum) UINT32 TestHwiDelete(UINT32 hwiNum) { - UINT32 ret = LOS_HwiDelete(hwiNum); + UINT32 ret = LOS_HwiDelete(hwiNum, NULL); if (ret != LOS_OK) { return LOS_NOK; }