From 78cbcfd2a16c0cf3763173ce0a14d656bede0135 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 14 Mar 2007 18:58:21 +0000 Subject: Add 8052 IRQ test; Fix places where IDLE task could try to wait on semaphores git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@61 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/sched/os_internal.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'nuttx/sched/os_internal.h') diff --git a/nuttx/sched/os_internal.h b/nuttx/sched/os_internal.h index 0fa7172b5..85dda8c96 100644 --- a/nuttx/sched/os_internal.h +++ b/nuttx/sched/os_internal.h @@ -134,8 +134,8 @@ typedef struct pidhash_s pidhash_t; struct tasklist_s { - DSEG dq_queue_t *list; /* Pointer to the task list */ - boolean prioritized; /* TRUE if the list is prioritized */ + DSEG volatile dq_queue_t *list; /* Pointer to the task list */ + boolean prioritized; /* TRUE if the list is prioritized */ }; typedef struct tasklist_s tasklist_t; @@ -159,7 +159,7 @@ typedef struct tasklist_s tasklist_t; * list is always the idle task. */ -extern dq_queue_t g_readytorun; +extern volatile dq_queue_t g_readytorun; /* This is the list of all tasks that are ready-to-run, but * cannot be placed in the g_readytorun list because: (1) They @@ -168,16 +168,16 @@ extern dq_queue_t g_readytorun; * disabled pre-emption. */ -extern dq_queue_t g_pendingtasks; +extern volatile dq_queue_t g_pendingtasks; /* This is the list of all tasks that are blocked waiting for a semaphore */ -extern dq_queue_t g_waitingforsemaphore; +extern volatile dq_queue_t g_waitingforsemaphore; /* This is the list of all tasks that are blocked waiting for a signal */ #ifndef CONFIG_DISABLE_SIGNALS -extern dq_queue_t g_waitingforsignal; +extern volatile dq_queue_t g_waitingforsignal; #endif /* This is the list of all tasks that are blocked waiting for a message @@ -185,7 +185,7 @@ extern dq_queue_t g_waitingforsignal; */ #ifndef CONFIG_DISABLE_MQUEUE -extern dq_queue_t g_waitingformqnotempty; +extern volatile dq_queue_t g_waitingformqnotempty; #endif /* This is the list of all tasks that are blocked waiting for a message @@ -193,14 +193,14 @@ extern dq_queue_t g_waitingformqnotempty; */ #ifndef CONFIG_DISABLE_MQUEUE -extern dq_queue_t g_waitingformqnotfull; +extern volatile dq_queue_t g_waitingformqnotfull; #endif /* This the list of all tasks that have been initialized, but not yet * activated. NOTE: This is the only list that is not prioritized. */ -extern dq_queue_t g_inactivetasks; +extern volatile dq_queue_t g_inactivetasks; /* This is the list of dayed memory deallocations that need to be handled * within the IDLE loop. These deallocations get queued by sched_free() @@ -208,11 +208,11 @@ extern dq_queue_t g_inactivetasks; * handler. */ -extern sq_queue_t g_delayeddeallocations; +extern volatile sq_queue_t g_delayeddeallocations; /* This is the value of the last process ID assigned to a task */ -extern pid_t g_lastpid; +extern volatile pid_t g_lastpid; /* The following hash table is used for two things: * -- cgit v1.2.3