mirror of
https://github.com/apache/nuttx.git
synced 2026-06-04 14:53:47 +08:00
os init_state: add new state OSINIT_IDLELOOP
This is for distinguish we are in init idle or idle loop. Use for assertion for sem_trywait & sem_wait Signed-off-by: ligd <liguiding1@xiaomi.com>
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <nuttx/init.h>
|
||||
#include <nuttx/irq.h>
|
||||
#include <nuttx/arch.h>
|
||||
|
||||
@@ -69,9 +70,10 @@ int nxsem_trywait(FAR sem_t *sem)
|
||||
irqstate_t flags;
|
||||
int ret;
|
||||
|
||||
/* This API should not be called from interrupt handlers */
|
||||
/* This API should not be called from interrupt handlers & idleloop */
|
||||
|
||||
DEBUGASSERT(sem != NULL && up_interrupt_context() == false);
|
||||
DEBUGASSERT(!OSINIT_IDLELOOP() || !sched_idletask());
|
||||
|
||||
if (sem != NULL)
|
||||
{
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <errno.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include <nuttx/init.h>
|
||||
#include <nuttx/irq.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/cancelpt.h>
|
||||
@@ -73,9 +74,10 @@ int nxsem_wait(FAR sem_t *sem)
|
||||
irqstate_t flags;
|
||||
int ret = -EINVAL;
|
||||
|
||||
/* This API should not be called from interrupt handlers */
|
||||
/* This API should not be called from interrupt handlers & idleloop */
|
||||
|
||||
DEBUGASSERT(sem != NULL && up_interrupt_context() == false);
|
||||
DEBUGASSERT(!OSINIT_IDLELOOP() || !sched_idletask());
|
||||
|
||||
/* The following operations must be performed with interrupts
|
||||
* disabled because nxsem_post() may be called from an interrupt
|
||||
|
||||
Reference in New Issue
Block a user