Umut Aradağ / Mbed 2 deprecated Semaphores

Dependencies:   mbed

Committer:
umutaradag
Date:
Sat Aug 06 04:40:56 2011 +0000
Revision:
3:cf23d5c2ef90
Parent:
0:3b35413050ff

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
umutaradag 0:3b35413050ff 1 #include "mbed.h"
umutaradag 0:3b35413050ff 2 #include "semaphore.h"
umutaradag 0:3b35413050ff 3
umutaradag 0:3b35413050ff 4
umutaradag 0:3b35413050ff 5 void semInit(semaphore* s, int initVal)
umutaradag 0:3b35413050ff 6 {
umutaradag 3:cf23d5c2ef90 7 s->count = initVal;
umutaradag 0:3b35413050ff 8 }
umutaradag 0:3b35413050ff 9 void semPost(semaphore* s)
umutaradag 0:3b35413050ff 10 {
umutaradag 0:3b35413050ff 11 __disable_irq();
umutaradag 3:cf23d5c2ef90 12 s->count++;
umutaradag 0:3b35413050ff 13 //printf("sem released %d\n",*s);
umutaradag 0:3b35413050ff 14 __enable_irq();
umutaradag 0:3b35413050ff 15 }
umutaradag 3:cf23d5c2ef90 16 int semPend(semaphore* s, int maxNumOfTrials)
umutaradag 0:3b35413050ff 17 {
umutaradag 3:cf23d5c2ef90 18 s->trials = 0;
umutaradag 0:3b35413050ff 19 do
umutaradag 0:3b35413050ff 20 {
umutaradag 0:3b35413050ff 21 __disable_irq();
umutaradag 0:3b35413050ff 22 //printf("sem testing %d\n",*s);
umutaradag 3:cf23d5c2ef90 23 if(s->count > 0)
umutaradag 0:3b35413050ff 24 {
umutaradag 3:cf23d5c2ef90 25 s->count--;
umutaradag 0:3b35413050ff 26 __enable_irq();
umutaradag 0:3b35413050ff 27 //printf("sem acquired\n");
umutaradag 0:3b35413050ff 28 return SEM_OK;
umutaradag 0:3b35413050ff 29 }
umutaradag 0:3b35413050ff 30 __enable_irq();
umutaradag 3:cf23d5c2ef90 31 }while(maxNumOfTrials > s->trials++);
umutaradag 0:3b35413050ff 32 return SEM_ERR;
umutaradag 3:cf23d5c2ef90 33 }
umutaradag 3:cf23d5c2ef90 34 void semSet(semaphore* s, int val)
umutaradag 3:cf23d5c2ef90 35 {
umutaradag 3:cf23d5c2ef90 36 s->count = val;
umutaradag 0:3b35413050ff 37 }