!769 feature:支持queue地址外部部署共功能及queue名字设置

Merge pull request !769 from xuxinyu/static_by_id
This commit is contained in:
openharmony_ci
2022-08-08 15:34:36 +00:00
committed by Gitee
12 changed files with 263 additions and 43 deletions

View File

@@ -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