Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
65
sdk/osal/csky/msgqueue.c
Normal file
65
sdk/osal/csky/msgqueue.c
Normal file
@@ -0,0 +1,65 @@
|
||||
#include "typesdef.h"
|
||||
#include "errno.h"
|
||||
#include "list.h"
|
||||
#include "osal/string.h"
|
||||
#include "osal/msgqueue.h"
|
||||
|
||||
#ifdef CSKY_OS
|
||||
#include "csi_kernel.h"
|
||||
|
||||
#define MSGQ_MAGIC (0x4a8b1c9d)
|
||||
|
||||
int32 os_msgq_init(os_msgqueue_t *msgq, int32 size)
|
||||
{
|
||||
if(msgq->magic == MSGQ_MAGIC){
|
||||
os_printf(KERN_WARNING"msgq repeat initialization ????\r\n");
|
||||
}
|
||||
|
||||
msgq->hdl = csi_kernel_msgq_new(size, sizeof(uint32));
|
||||
if(msgq->hdl) msgq->magic = MSGQ_MAGIC;
|
||||
return (msgq->hdl ? RET_OK : RET_ERR);
|
||||
}
|
||||
|
||||
uint32 os_msgq_get(os_msgqueue_t *msgq, int32 tmo_ms)
|
||||
{
|
||||
uint32 val = 0;
|
||||
ASSERT(msgq->hdl);
|
||||
csi_kernel_msgq_get(msgq->hdl, &val, csi_kernel_ms2tick(tmo_ms));
|
||||
return val;
|
||||
}
|
||||
|
||||
uint32 os_msgq_get2(struct os_msgqueue *msgq, int32 tmo_ms, int32 *err)
|
||||
{
|
||||
uint32 val = 0;
|
||||
k_status_t ret = csi_kernel_msgq_get(msgq->hdl, &val, csi_kernel_ms2tick(tmo_ms));
|
||||
if(err) *err = ret;
|
||||
return val;
|
||||
}
|
||||
|
||||
int32 os_msgq_put(os_msgqueue_t *msgq, uint32 data, int32 tmo_ms)
|
||||
{
|
||||
ASSERT(msgq->hdl);
|
||||
return csi_kernel_msgq_put(msgq->hdl, &data, 0, csi_kernel_ms2tick(tmo_ms));
|
||||
}
|
||||
|
||||
int32 os_msgq_put_head(os_msgqueue_t *msgq, uint32 data, int32 tmo_ms)
|
||||
{
|
||||
ASSERT(msgq->hdl);
|
||||
return csi_kernel_msgq_put(msgq->hdl, &data, 0, csi_kernel_ms2tick(tmo_ms));
|
||||
}
|
||||
|
||||
int32 os_msgq_del(os_msgqueue_t *msgq)
|
||||
{
|
||||
ASSERT(msgq->hdl);
|
||||
csi_kernel_msgq_del(msgq->hdl);
|
||||
msgq->hdl = NULL;
|
||||
msgq->magic = 0;
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int32 os_msgq_cnt(os_msgqueue_t *msgq)
|
||||
{
|
||||
return csi_kernel_msgq_get_count(msgq->hdl);
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user