This commit is contained in:
刘可亮
2025-01-08 19:12:06 +08:00
parent 3b8c04c942
commit 724d6bf65e
4315 changed files with 214394 additions and 1235797 deletions

View File

@@ -453,34 +453,57 @@ static inline int aicos_queue_empty(aicos_queue_t queue)
//--------------------------------------------------------------------+
// Wait Queue API
//--------------------------------------------------------------------+
typedef struct
{
unsigned int set;
aicos_event_t event;
}osal_wqueue_def_t;
typedef osal_wqueue_def_t* osal_wqueue_t;
static inline aicos_wqueue_t aicos_wqueue_create(void)
{
aicos_event_t event = aicos_event_create();
osal_wqueue_t wqueue;
return (aicos_wqueue_t)event;
wqueue = aicos_malloc(0, sizeof(osal_wqueue_t));
if (NULL == wqueue)
return NULL;
wqueue->event = aicos_event_create();
wqueue->set = 0;
return (aicos_wqueue_t)wqueue;
}
static inline void aicos_wqueue_delete(aicos_wqueue_t wqueue)
{
aicos_event_t event = (aicos_event_t)wqueue;
osal_wqueue_t wq = (osal_wqueue_t)wqueue;
aicos_event_t event = (aicos_event_t)wq->event;
aicos_event_delete(event);
aicos_free(0, wq);
}
static inline void aicos_wqueue_wakeup(aicos_wqueue_t wqueue)
{
aicos_event_t event = (aicos_event_t)wqueue;
uint32_t recved;
osal_wqueue_t wq = (osal_wqueue_t)wqueue;
aicos_event_t event = (aicos_event_t)wq->event;
aicos_event_recv(event, 0x1, &recved, 100);
if (wq->set != 1)
return;
wq->set = 0;
aicos_event_send(event, 0x1);
}
static inline int aicos_wqueue_wait(aicos_wqueue_t wqueue, uint32_t msec)
{
aicos_event_t event = (aicos_event_t)wqueue;
osal_wqueue_t wq = (osal_wqueue_t)wqueue;
aicos_event_t event = (aicos_event_t)wq->event;
uint32_t recved;
return aicos_event_send(event, 0x1);
wq->set = 1;
return aicos_event_recv(event, 0x1, &recved, 100);
}
//--------------------------------------------------------------------+