CDC/ECM driver for mbed, based on USBDevice by mbed-official. Uses PicoTCP to access Ethernet USB device. License: GPLv2
Fork of USB_Ethernet by
Diff: include/PicoCondition.h
- Revision:
- 2:540f6e142d59
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/PicoCondition.h Sat Aug 03 13:16:14 2013 +0000 @@ -0,0 +1,45 @@ +#ifndef __PICOMUTEX__ +#define __PICOMUTEX__ +/* +* Cross-Threading Mutex Class +*/ + +#include "mbed.h" +#include "rtos.h" +#include "Queue.h" + +class PicoCondition +{ + private: + Queue <int,1> * queue; + public: + PicoCondition() + { + queue = new Queue<int,1>(); + } + + ~PicoCondition() + { + if(queue) + { + delete queue; + queue = NULL; + } + } + + bool unlock(uint32_t millisec=0,int * ptr=NULL) + { + osStatus status; + status = queue->put(ptr, millisec); + return (status == osEventMessage || status == osOK); + } + + bool lock(uint32_t millisec=osWaitForever) + { + osEvent event = queue->get(millisec); + return (event.status == osEventMessage || event.status == osOK); + } +}; + + +#endif \ No newline at end of file