summaryrefslogtreecommitdiffstats
path: root/udrv/include/uipc.h
diff options
context:
space:
mode:
Diffstat (limited to 'udrv/include/uipc.h')
-rw-r--r--udrv/include/uipc.h149
1 files changed, 149 insertions, 0 deletions
diff --git a/udrv/include/uipc.h b/udrv/include/uipc.h
new file mode 100644
index 0000000..37d508c
--- /dev/null
+++ b/udrv/include/uipc.h
@@ -0,0 +1,149 @@
+/******************************************************************************
+ *
+ * Copyright (C) 2007-2012 Broadcom Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************/
+#ifndef UIPC_H
+#define UIPC_H
+
+#ifndef UDRV_API
+#define UDRV_API
+#endif
+
+#define UIPC_CH_ID_AV_CTRL 0
+#define UIPC_CH_ID_AV_AUDIO 1
+#define UIPC_CH_NUM 2
+
+#define UIPC_CH_ID_ALL 3 /* used to address all the ch id at once */
+
+#define DEFAULT_READ_POLL_TMO_MS 100
+
+typedef UINT8 tUIPC_CH_ID;
+
+/* Events generated */
+typedef enum {
+ UIPC_OPEN_EVT = 0x0001,
+ UIPC_CLOSE_EVT = 0x0002,
+ UIPC_RX_DATA_EVT = 0x0004,
+ UIPC_RX_DATA_READY_EVT = 0x0008,
+ UIPC_TX_DATA_READY_EVT = 0x0010
+} tUIPC_EVENT;
+
+/*
+ * UIPC IOCTL Requests
+ */
+
+#define UIPC_REQ_RX_FLUSH 1
+#define UIPC_REG_CBACK 2
+#define UIPC_REG_REMOVE_ACTIVE_READSET 3
+#define UIPC_SET_READ_POLL_TMO 4
+
+typedef void (tUIPC_RCV_CBACK)(tUIPC_CH_ID ch_id, tUIPC_EVENT event); /* points to BT_HDR which describes event type and length of data; len contains the number of bytes of entire message (sizeof(BT_HDR) + offset + size of data) */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+const char* dump_uipc_event(tUIPC_EVENT event);
+
+
+/*******************************************************************************
+**
+** Function UIPC_Init
+**
+** Description Initialize UIPC module
+**
+** Returns void
+**
+*******************************************************************************/
+UDRV_API extern void UIPC_Init(void *);
+
+/*******************************************************************************
+**
+** Function UIPC_Open
+**
+** Description Open UIPC interface
+**
+** Returns void
+**
+*******************************************************************************/
+UDRV_API extern BOOLEAN UIPC_Open(tUIPC_CH_ID ch_id, tUIPC_RCV_CBACK *p_cback);
+
+/*******************************************************************************
+**
+** Function UIPC_Close
+**
+** Description Close UIPC interface
+**
+** Returns void
+**
+*******************************************************************************/
+UDRV_API extern void UIPC_Close(tUIPC_CH_ID ch_id);
+
+/*******************************************************************************
+**
+** Function UIPC_SendBuf
+**
+** Description Called to transmit a message over UIPC.
+** Message buffer will be freed by UIPC_SendBuf.
+**
+** Returns void
+**
+*******************************************************************************/
+UDRV_API extern BOOLEAN UIPC_SendBuf(tUIPC_CH_ID ch_id, BT_HDR *p_msg);
+
+/*******************************************************************************
+**
+** Function UIPC_Send
+**
+** Description Called to transmit a message over UIPC.
+**
+** Returns void
+**
+*******************************************************************************/
+UDRV_API extern BOOLEAN UIPC_Send(tUIPC_CH_ID ch_id, UINT16 msg_evt, UINT8 *p_buf, UINT16 msglen);
+
+/*******************************************************************************
+**
+** Function UIPC_Read
+**
+** Description Called to read a message from UIPC.
+**
+** Returns void
+**
+*******************************************************************************/
+UDRV_API extern UINT32 UIPC_Read(tUIPC_CH_ID ch_id, UINT16 *p_msg_evt, UINT8 *p_buf, UINT32 len);
+
+/*******************************************************************************
+**
+** Function UIPC_Ioctl
+**
+** Description Called to control UIPC.
+**
+** Returns void
+**
+*******************************************************************************/
+UDRV_API extern BOOLEAN UIPC_Ioctl(tUIPC_CH_ID ch_id, UINT32 request, void *param);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* UIPC_H */
+
+