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