!769 feature:支持queue地址外部部署共功能及queue名字设置
Merge pull request !769 from xuxinyu/static_by_id
This commit is contained in:
@@ -1238,14 +1238,40 @@ osMessageQueueId_t osMessageQueueNew(uint32_t msg_count, uint32_t msg_size, cons
|
||||
{
|
||||
UINT32 queueId;
|
||||
UINT32 ret;
|
||||
UNUSED(attr);
|
||||
osMessageQueueId_t handle;
|
||||
const char *queueName = NULL;
|
||||
|
||||
#if (LOSCFG_BASE_IPC_QUEUE_STATIC == 1)
|
||||
UINT32 queueSize = 0;
|
||||
UINT8 *staticMem = NULL;
|
||||
#endif
|
||||
|
||||
if ((msg_count == 0) || (msg_size == 0) || OS_INT_ACTIVE) {
|
||||
return (osMessageQueueId_t)NULL;
|
||||
}
|
||||
|
||||
ret = LOS_QueueCreate((char *)NULL, (UINT16)msg_count, &queueId, 0, (UINT16)msg_size);
|
||||
if (attr != NULL) {
|
||||
queueName = attr->name;
|
||||
#if (LOSCFG_BASE_IPC_QUEUE_STATIC == 1)
|
||||
queueSize = attr->mq_size;
|
||||
staticMem = attr->mq_mem;
|
||||
if ((queueSize == 0 || staticMem == NULL)) {
|
||||
return (osMessageQueueId_t)NULL;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if (LOSCFG_BASE_IPC_QUEUE_STATIC == 1)
|
||||
if (staticMem != NULL) {
|
||||
ret = LOS_QueueCreateStatic((const CHAR *)queueName, (UINT16)msg_count, &queueId, \
|
||||
(UINT8 *)staticMem, 0, (UINT16)queueSize / msg_count);
|
||||
} else {
|
||||
ret = LOS_QueueCreate((const CHAR *)queueName, (UINT16)msg_count, &queueId, 0, (UINT16)msg_size);
|
||||
}
|
||||
#else
|
||||
ret = LOS_QueueCreate((const CHAR *)queueName, (UINT16)msg_count, &queueId, 0, (UINT16)msg_size);
|
||||
#endif
|
||||
|
||||
if (ret == LOS_OK) {
|
||||
handle = (osMessageQueueId_t)(GET_QUEUE_HANDLE(queueId));
|
||||
} else {
|
||||
@@ -1373,8 +1399,13 @@ osStatus_t osMessageQueueDelete(osMessageQueueId_t mq_id)
|
||||
|
||||
const char *osMessageQueueGetName(osMessageQueueId_t mq_id)
|
||||
{
|
||||
UNUSED(mq_id);
|
||||
return NULL;
|
||||
if (mq_id == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
LosQueueCB *pstQueue = (LosQueueCB *)mq_id;
|
||||
|
||||
return (const char *)pstQueue->queueName;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user