X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fkern%2Fsem.c;h=53ef4cc16cdfec19f33b7bf193a5b0efbee4b6cc;hb=98e7de7538535f1bffea3c7bc9ef175a9b990794;hp=7d07f4d6f61585b928e1361186857c0071cca5fd;hpb=b0ba66e728f0885d53e7836898ea60902c818aa8;p=bertos.git diff --git a/bertos/kern/sem.c b/bertos/kern/sem.c index 7d07f4d6..53ef4cc1 100644 --- a/bertos/kern/sem.c +++ b/bertos/kern/sem.c @@ -37,11 +37,13 @@ */ #include "sem.h" +#include + #include // ASSERT_IRQ_DISABLED() + #include #include #include -#include INLINE void sem_verify(struct Semaphore *s) { @@ -52,7 +54,6 @@ INLINE void sem_verify(struct Semaphore *s) ASSERT(s->nest_count < 128); // heuristic max } - /** * \brief Initialize a Semaphore structure. */ @@ -81,9 +82,9 @@ bool sem_attempt(struct Semaphore *s) proc_forbid(); sem_verify(s); - if ((!s->owner) || (s->owner == CurrentProcess)) + if ((!s->owner) || (s->owner == current_process)) { - s->owner = CurrentProcess; + s->owner = current_process; s->nest_count++; result = true; } @@ -116,10 +117,10 @@ void sem_obtain(struct Semaphore *s) sem_verify(s); /* Is the semaphore already locked by another process? */ - if (UNLIKELY(s->owner && (s->owner != CurrentProcess))) + if (UNLIKELY(s->owner && (s->owner != current_process))) { /* Append calling process to the wait queue */ - ADDTAIL(&s->wait_queue, (Node *)CurrentProcess); + ADDTAIL(&s->wait_queue, (Node *)current_process); /* * We will wake up only when the current owner calls @@ -134,7 +135,7 @@ void sem_obtain(struct Semaphore *s) ASSERT(LIST_EMPTY(&s->wait_queue)); /* The semaphore was free: lock it */ - s->owner = CurrentProcess; + s->owner = current_process; s->nest_count++; proc_permit(); } @@ -159,7 +160,7 @@ void sem_release(struct Semaphore *s) proc_forbid(); sem_verify(s); - ASSERT(s->owner == CurrentProcess); + ASSERT(s->owner == current_process); /* * Decrement nesting count and check if the semaphore