include/nuttx/semaphore.h: Fix broken macros

This commit is contained in:
Gregory Nutt 2016-11-03 12:49:44 -06:00
parent 1da3a5fa61
commit 4c8ec0d2ca
6 changed files with 17 additions and 26 deletions

View File

@ -160,11 +160,7 @@ int sem_reset(FAR sem_t *sem, int16_t count);
*
****************************************************************************/
#ifdef CONFIG_PRIORITY_INHERITANCE
int sem_getprotocol(FAR sem_t *sem, FAR int *protocol);
#else
# define sem_getprotocol(s,p) do { *(p) == SEM_PRIO_NONE); } while (0)
#endif
/****************************************************************************
* Function: sem_setprotocol
@ -202,11 +198,7 @@ int sem_getprotocol(FAR sem_t *sem, FAR int *protocol);
*
****************************************************************************/
#ifdef CONFIG_PRIORITY_INHERITANCE
int sem_setprotocol(FAR sem_t *sem, int protocol);
#else
# define sem_setprotocol(s,p) ((p) == SEM_PRIO_NONE ? 0 : -ENOSYS);
#endif
#undef EXTERN
#ifdef __cplusplus

View File

@ -35,11 +35,7 @@
# Add the semaphore C files to the build
CSRCS += sem_init.c sem_getvalue.c
ifeq ($(CONFIG_PRIORITY_INHERITANCE),y)
CSRCS += sem_getprotocol.c
endif
CSRCS += sem_init.c sem_getprotocol.c sem_getvalue.c
# Add the semaphore directory to the build

View File

@ -43,8 +43,6 @@
#include <nuttx/semaphore.h>
#ifdef CONFIG_PRIORITY_INHERITANCE
/****************************************************************************
* Public Functions
****************************************************************************/
@ -71,14 +69,19 @@ int sem_getprotocol(FAR sem_t *sem, FAR int *protocol)
{
DEBUGASSERT(sem != NULL && protocol != NULL);
#ifdef CONFIG_PRIORITY_INHERITANCE
if ((sem->flags & PRIOINHERIT_FLAGS_DISABLE) != 0)
{
return SEM_PRIO_NONE;
*protocol = SEM_PRIO_NONE;
}
else
{
return SEM_PRIO_INHERIT;
*protocol = SEM_PRIO_INHERIT;
}
}
#endif /* CONFIG_PRIORITY_INHERITANCE */
#else
*protocol = SEM_PRIO_NONE;
#endif
return OK;
}

View File

@ -37,10 +37,10 @@
CSRCS += sem_destroy.c sem_wait.c sem_trywait.c sem_tickwait.c
CSRCS += sem_timedwait.c sem_timeout.c sem_post.c sem_recover.c
CSRCS += sem_reset.c sem_waitirq.c
CSRCS += sem_reset.c sem_setprotocol.c sem_waitirq.c
ifeq ($(CONFIG_PRIORITY_INHERITANCE),y)
CSRCS += sem_initialize.c sem_holder.c sem_setprotocol.c
CSRCS += sem_initialize.c sem_holder.c
endif
ifeq ($(CONFIG_SPINLOCK),y)

View File

@ -46,8 +46,6 @@
#include "semaphore/semaphore.h"
#ifdef CONFIG_PRIORITY_INHERITANCE
/****************************************************************************
* Public Functions
****************************************************************************/
@ -97,6 +95,7 @@ int sem_setprotocol(FAR sem_t *sem, int protocol)
switch (protocol)
{
case SEM_PRIO_NONE:
#ifdef CONFIG_PRIORITY_INHERITANCE
/* Disable priority inheritance */
sem->flags |= PRIOINHERIT_FLAGS_DISABLE;
@ -104,13 +103,16 @@ int sem_setprotocol(FAR sem_t *sem, int protocol)
/* Remove any current holders */
sem_destroyholder(sem);
#endif
return OK;
case SEM_PRIO_INHERIT:
#ifdef CONFIG_PRIORITY_INHERITANCE
/* Enable priority inheritance (dangerous) */
sem->flags &= ~PRIOINHERIT_FLAGS_DISABLE;
return OK;
#endif
case SEM_PRIO_PROTECT:
/* Not yet supported */
@ -126,5 +128,3 @@ int sem_setprotocol(FAR sem_t *sem, int protocol)
set_errno(errcode);
return ERROR;
}
#endif /* CONFIG_PRIORITY_INHERITANCE */

View File

@ -118,7 +118,7 @@
"sem_destroy","semaphore.h","","int","FAR sem_t*"
"sem_open","semaphore.h","defined(CONFIG_FS_NAMED_SEMAPHORES)","FAR sem_t*","FAR const char*","int","..."
"sem_post","semaphore.h","","int","FAR sem_t*"
"sem_setprotocol","nuttx/semaphore.h","defined(CONFIG_PRIORITY_INHERITANCE)","int","FAR sem_t*","int"
"sem_setprotocol","nuttx/semaphore.h","","int","FAR sem_t*","int"
"sem_timedwait","semaphore.h","","int","FAR sem_t*","FAR const struct timespec *"
"sem_trywait","semaphore.h","","int","FAR sem_t*"
"sem_unlink","semaphore.h","defined(CONFIG_FS_NAMED_SEMAPHORES)","int","FAR const char*"

Can't render this file because it has a wrong number of fields in line 2.