Lines Matching defs:mqueueCB
131 STATIC INT32 DoMqueueDelete(struct mqarray *mqueueCB)
135 if (mqueueCB->mq_name != NULL) {
136 LOS_MemFree(OS_SYS_MEM_ADDR, mqueueCB->mq_name);
137 mqueueCB->mq_name = NULL;
140 mqueueCB->mqcb = NULL;
142 ret = LOS_QueueDelete(mqueueCB->mq_id);
158 STATIC int SaveMqueueName(const CHAR *mqName, struct mqarray *mqueueCB)
163 mqueueCB->mq_name = (char *)LOS_MemAlloc(OS_SYS_MEM_ADDR, nameLen + 1);
164 if (mqueueCB->mq_name == NULL) {
169 if (strncpy_s(mqueueCB->mq_name, (nameLen + 1), mqName, nameLen) != EOK) {
170 LOS_MemFree(OS_SYS_MEM_ADDR, mqueueCB->mq_name);
171 mqueueCB->mq_name = NULL;
175 mqueueCB->mq_name[nameLen] = '\0';
181 struct mqarray *mqueueCB = NULL;
190 mqueueCB = &(g_queueTable[GET_QUEUE_INDEX(mqueueID)]);
191 mqueueCB->mq_id = mqueueID;
194 if (mqueueCB == NULL) {
199 if (SaveMqueueName(mqName, mqueueCB) != LOS_OK) {
203 if (GetMqueueCBByID(mqueueCB->mq_id, &(mqueueCB->mqcb)) != LOS_OK) {
208 mqueueCB->mq_personal = (struct mqpersonal *)LOS_MemAlloc(OS_SYS_MEM_ADDR, sizeof(struct mqpersonal));
209 if (mqueueCB->mq_personal == NULL) {
210 (VOID)LOS_QueueDelete(mqueueCB->mq_id);
211 mqueueCB->mqcb->queue = NULL;
212 mqueueCB->mqcb = NULL;
217 mqueueCB->unlinkflag = FALSE;
218 mqueueCB->mq_personal->mq_status = MQ_USE_MAGIC;
219 mqueueCB->mq_personal->mq_next = NULL;
220 mqueueCB->mq_personal->mq_posixdes = mqueueCB;
221 mqueueCB->mq_personal->mq_flags = (INT32)((UINT32)openFlag | ((UINT32)attr->mq_flags & (UINT32)FNONBLOCK));
223 return mqueueCB->mq_personal;
226 if ((mqueueCB != NULL) && (mqueueCB->mq_name != NULL)) {
227 LOS_MemFree(OS_SYS_MEM_ADDR, mqueueCB->mq_name);
228 mqueueCB->mq_name = NULL;
233 STATIC struct mqpersonal *DoMqueueOpen(struct mqarray *mqueueCB, INT32 openFlag)
238 if (mqueueCB->unlinkflag == TRUE) {
249 privateMqPersonal->mq_next = mqueueCB->mq_personal;
250 mqueueCB->mq_personal = privateMqPersonal;
252 privateMqPersonal->mq_posixdes = mqueueCB;
264 struct mqarray *mqueueCB = NULL;
276 mqueueCB = GetMqueueCBByName(mqName);
278 if (mqueueCB != NULL) {
283 privateMqPersonal = DoMqueueOpen(mqueueCB, openFlag);
301 if (mqueueCB == NULL) {
305 privateMqPersonal = DoMqueueOpen(mqueueCB, openFlag);
316 struct mqarray *mqueueCB = NULL;
332 mqueueCB = privateMqPersonal->mq_posixdes;
333 if (mqueueCB->mq_personal == NULL) {
339 if (mqueueCB->mq_personal == privateMqPersonal) {
340 mqueueCB->mq_personal = privateMqPersonal->mq_next;
342 for (tmp = mqueueCB->mq_personal; tmp->mq_next != NULL; tmp = tmp->mq_next) {
364 if ((mqueueCB->unlinkflag == TRUE) && (mqueueCB->mq_personal == NULL)) {
365 ret = DoMqueueDelete(mqueueCB);
374 struct mqarray *mqueueCB = NULL;
390 mqueueCB = privateMqPersonal->mq_posixdes;
391 mqAttr->mq_maxmsg = mqueueCB->mqcb->queueLen;
392 mqAttr->mq_msgsize = mqueueCB->mqcb->queueSize - sizeof(UINT32);
393 mqAttr->mq_curmsgs = mqueueCB->mqcb->readWriteableCnt[OS_QUEUE_READ];
461 struct mqarray *mqueueCB = NULL;
468 mqueueCB = GetMqueueCBByName(mqName);
469 if (mqueueCB == NULL) {
474 if (mqueueCB->mq_personal != NULL) {
476 mqueueCB->unlinkflag = TRUE;
479 ret = DoMqueueDelete(mqueueCB);
539 struct mqarray *mqueueCB = NULL;
550 mqueueCB = privateMqPersonal->mq_posixdes;
551 OS_MQ_GOTO_ERROUT_UNLOCK_IF(msgLen > (size_t)(mqueueCB->mqcb->queueSize - sizeof(UINT32)), EMSGSIZE);
558 mqueueID = mqueueCB->mq_id;
578 struct mqarray *mqueueCB = NULL;
596 mqueueCB = privateMqPersonal->mq_posixdes;
597 if (msgLen < (size_t)(mqueueCB->mqcb->queueSize - sizeof(UINT32))) {
612 mqueueID = mqueueCB->mq_id;