CDC/ECM driver for mbed, based on USBDevice by mbed-official. Uses PicoTCP to access Ethernet USB device. License: GPLv2

Dependents:   USBEthernet_TEST

Fork of USB_Ethernet by Daniele Lacamera

include/PicoCondition.h

Committer:
daniele
Date:
2013-08-03
Revision:
2:540f6e142d59

File content as of revision 2:540f6e142d59:

#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