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:
*
- los_interrupt.h: the header file that contains the API declaration.
* @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;
}