1e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/* Copyright (c) 2011, The Linux Foundation. All rights reserved. 2e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * 3e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * Redistribution and use in source and binary forms, with or without 4e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * modification, are permitted provided that the following conditions are 5e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * met: 6e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * * Redistributions of source code must retain the above copyright 7e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * notice, this list of conditions and the following disclaimer. 8e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * * Redistributions in binary form must reproduce the above 9e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * copyright notice, this list of conditions and the following 10e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * disclaimer in the documentation and/or other materials provided 11e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * with the distribution. 12e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * * Neither the name of The Linux Foundation nor the names of its 13e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * contributors may be used to endorse or promote products derived 14e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * from this software without specific prior written permission. 15e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * 16e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * 28e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti */ 29e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <linux/stat.h> 30e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <fcntl.h> 31e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 32e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <linux/types.h> 33e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 34e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include "log_util.h" 35e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include "platform_lib_includes.h" 36e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include "loc_eng_dmn_conn_glue_msg.h" 37e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include "loc_eng_dmn_conn_handler.h" 38e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 39e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/*=========================================================================== 40e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiFUNCTION loc_eng_dmn_conn_glue_msgget 41e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 42e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDESCRIPTION 43e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti This function get a message queue 44e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 45e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti q_path - name path of the message queue 46e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti mode - 47e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 48e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEPENDENCIES 49e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti None 50e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 51e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiRETURN VALUE 52e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti message queue id 53e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 54e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiSIDE EFFECTS 55e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti N/A 56e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 57e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti===========================================================================*/ 58e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_dmn_conn_glue_msgget(const char * q_path, int mode) 59e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{ 60e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int msgqid; 61e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti msgqid = loc_eng_dmn_conn_glue_pipeget(q_path, mode); 62e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return msgqid; 63e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 64e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 65e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/*=========================================================================== 66e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiFUNCTION loc_eng_dmn_conn_glue_msgremove 67e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 68e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDESCRIPTION 69e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti remove a message queue 70e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 71e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti q_path - name path of the message queue 72e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti msgqid - message queue id 73e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 74e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEPENDENCIES 75e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti None 76e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 77e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiRETURN VALUE 78e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 0: success or negative value for failure 79e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 80e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiSIDE EFFECTS 81e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti N/A 82e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 83e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti===========================================================================*/ 84e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_dmn_conn_glue_msgremove(const char * q_path, int msgqid) 85e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{ 86e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int result; 87e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti result = loc_eng_dmn_conn_glue_piperemove(q_path, msgqid); 88e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return result; 89e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 90e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 91e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/*=========================================================================== 92e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiFUNCTION loc_eng_dmn_conn_glue_msgsnd 93e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 94e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDESCRIPTION 95e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti Send a message 96e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 97e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti msgqid - message queue id 98e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti msgp - pointer to the message to be sent 99e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti msgsz - size of the message 100e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 101e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEPENDENCIES 102e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti None 103e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 104e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiRETURN VALUE 105e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti number of bytes sent out or negative value for failure 106e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 107e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiSIDE EFFECTS 108e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti N/A 109e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 110e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti===========================================================================*/ 111e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_dmn_conn_glue_msgsnd(int msgqid, const void * msgp, size_t msgsz) 112e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{ 113e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int result; 114e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti struct ctrl_msgbuf *pmsg = (struct ctrl_msgbuf *) msgp; 115e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti pmsg->msgsz = msgsz; 116e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 117e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti result = loc_eng_dmn_conn_glue_pipewrite(msgqid, msgp, msgsz); 118e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti if (result != (int) msgsz) { 119e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_LOGE("%s:%d] pipe broken %d, msgsz = %d\n", __func__, __LINE__, result, (int) msgsz); 120e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return -1; 121e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 122e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 123e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return result; 124e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 125e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 126e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/*=========================================================================== 127e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiFUNCTION loc_eng_dmn_conn_glue_msgrcv 128e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 129e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDESCRIPTION 130e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti receive a message 131e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 132e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti msgqid - message queue id 133e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti msgp - pointer to the buffer to hold the message 134e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti msgsz - size of the buffer 135e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 136e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEPENDENCIES 137e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti None 138e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 139e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiRETURN VALUE 140e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti number of bytes received or negative value for failure 141e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 142e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiSIDE EFFECTS 143e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti N/A 144e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 145e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti===========================================================================*/ 146e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_dmn_conn_glue_msgrcv(int msgqid, void *msgp, size_t msgbufsz) 147e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{ 148e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int result; 149e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti struct ctrl_msgbuf *pmsg = (struct ctrl_msgbuf *) msgp; 150e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 151e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti result = loc_eng_dmn_conn_glue_piperead(msgqid, &(pmsg->msgsz), sizeof(pmsg->msgsz)); 152e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti if (result != sizeof(pmsg->msgsz)) { 153e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_LOGE("%s:%d] pipe broken %d\n", __func__, __LINE__, result); 154e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return -1; 155e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 156e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 157e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti if (msgbufsz < pmsg->msgsz) { 158e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_LOGE("%s:%d] msgbuf is too small %d < %d\n", __func__, __LINE__, (int) msgbufsz, (int) pmsg->msgsz); 159e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return -1; 160e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 161e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 162e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti result = loc_eng_dmn_conn_glue_piperead(msgqid, (uint8_t *) msgp + sizeof(pmsg->msgsz), pmsg->msgsz - sizeof(pmsg->msgsz)); 163e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti if (result != (int) (pmsg->msgsz - sizeof(pmsg->msgsz))) { 164e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_LOGE("%s:%d] pipe broken %d, msgsz = %d\n", __func__, __LINE__, result, (int) pmsg->msgsz); 165e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return -1; 166e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 167e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 168e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return pmsg->msgsz; 169e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 170e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 171e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/*=========================================================================== 172e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiFUNCTION loc_eng_dmn_conn_glue_msgunblock 173e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 174e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDESCRIPTION 175e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti unblock a message queue 176e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 177e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti msgqid - message queue id 178e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 179e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEPENDENCIES 180e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti None 181e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 182e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiRETURN VALUE 183e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 0: success 184e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 185e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiSIDE EFFECTS 186e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti N/A 187e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 188e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti===========================================================================*/ 189e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_dmn_conn_glue_msgunblock(int msgqid) 190e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{ 191e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return loc_eng_dmn_conn_glue_pipeunblock(msgqid); 192e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 193e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 194e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/*=========================================================================== 195e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiFUNCTION loc_eng_dmn_conn_glue_msgflush 196e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 197e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDESCRIPTION 198e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti flush out the message in a queue 199e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 200e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti msgqid - message queue id 201e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 202e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEPENDENCIES 203e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti None 204e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 205e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiRETURN VALUE 206e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti number of bytes that are flushed out. 207e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 208e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiSIDE EFFECTS 209e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti N/A 210e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 211e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti===========================================================================*/ 212e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_dmn_conn_glue_msgflush(int msgqid) 213e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{ 214e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int length; 215e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti char buf[128]; 216e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 217e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti do { 218e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti length = loc_eng_dmn_conn_glue_piperead(msgqid, buf, 128); 219e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_LOGD("%s:%d] %s\n", __func__, __LINE__, buf); 220e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } while(length); 221e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return length; 222e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 223e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 224