The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.
Dependents: hello SerialTestv11 SerialTestv12 Sierpinski ... more
mbed 2
This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.
TARGET_ARM_BEETLE_SOC/TOOLCHAIN_ARM_STD/l2c_api.h@171:3a7713b1edbc, 2018-11-08 (annotated)
- Committer:
- AnnaBridge
- Date:
- Thu Nov 08 11:45:42 2018 +0000
- Revision:
- 171:3a7713b1edbc
mbed library. Release version 164
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AnnaBridge | 171:3a7713b1edbc | 1 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 2 | /*! |
AnnaBridge | 171:3a7713b1edbc | 3 | * \file l2c_api.h |
AnnaBridge | 171:3a7713b1edbc | 4 | * |
AnnaBridge | 171:3a7713b1edbc | 5 | * \brief L2CAP subsystem API. |
AnnaBridge | 171:3a7713b1edbc | 6 | * |
AnnaBridge | 171:3a7713b1edbc | 7 | * $Date: 2015-10-09 09:08:23 -0700 (Fri, 09 Oct 2015) $ |
AnnaBridge | 171:3a7713b1edbc | 8 | * $Revision: 4164 $ |
AnnaBridge | 171:3a7713b1edbc | 9 | * |
AnnaBridge | 171:3a7713b1edbc | 10 | * Copyright (c) 2009 Wicentric, Inc., all rights reserved. |
AnnaBridge | 171:3a7713b1edbc | 11 | * Wicentric confidential and proprietary. |
AnnaBridge | 171:3a7713b1edbc | 12 | * |
AnnaBridge | 171:3a7713b1edbc | 13 | * IMPORTANT. Your use of this file is governed by a Software License Agreement |
AnnaBridge | 171:3a7713b1edbc | 14 | * ("Agreement") that must be accepted in order to download or otherwise receive a |
AnnaBridge | 171:3a7713b1edbc | 15 | * copy of this file. You may not use or copy this file for any purpose other than |
AnnaBridge | 171:3a7713b1edbc | 16 | * as described in the Agreement. If you do not agree to all of the terms of the |
AnnaBridge | 171:3a7713b1edbc | 17 | * Agreement do not use this file and delete all copies in your possession or control; |
AnnaBridge | 171:3a7713b1edbc | 18 | * if you do not have a copy of the Agreement, you must contact Wicentric, Inc. prior |
AnnaBridge | 171:3a7713b1edbc | 19 | * to any use, copying or further distribution of this software. |
AnnaBridge | 171:3a7713b1edbc | 20 | */ |
AnnaBridge | 171:3a7713b1edbc | 21 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 22 | #ifndef L2C_API_H |
AnnaBridge | 171:3a7713b1edbc | 23 | #define L2C_API_H |
AnnaBridge | 171:3a7713b1edbc | 24 | |
AnnaBridge | 171:3a7713b1edbc | 25 | #include "dm_api.h" |
AnnaBridge | 171:3a7713b1edbc | 26 | #include "l2c_defs.h" |
AnnaBridge | 171:3a7713b1edbc | 27 | |
AnnaBridge | 171:3a7713b1edbc | 28 | #ifdef __cplusplus |
AnnaBridge | 171:3a7713b1edbc | 29 | extern "C" { |
AnnaBridge | 171:3a7713b1edbc | 30 | #endif |
AnnaBridge | 171:3a7713b1edbc | 31 | |
AnnaBridge | 171:3a7713b1edbc | 32 | /************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 33 | Macros |
AnnaBridge | 171:3a7713b1edbc | 34 | **************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 35 | |
AnnaBridge | 171:3a7713b1edbc | 36 | /*! Control callback message events */ |
AnnaBridge | 171:3a7713b1edbc | 37 | #define L2C_CTRL_FLOW_ENABLE_IND 0 /*! Data flow enabled */ |
AnnaBridge | 171:3a7713b1edbc | 38 | #define L2C_CTRL_FLOW_DISABLE_IND 1 /*! Data flow disabled */ |
AnnaBridge | 171:3a7713b1edbc | 39 | |
AnnaBridge | 171:3a7713b1edbc | 40 | /*! Invalid channel registration ID for connection oriented channels */ |
AnnaBridge | 171:3a7713b1edbc | 41 | #define L2C_COC_REG_ID_NONE 0 |
AnnaBridge | 171:3a7713b1edbc | 42 | |
AnnaBridge | 171:3a7713b1edbc | 43 | /*! Invalid channel ID for connection oriented channels */ |
AnnaBridge | 171:3a7713b1edbc | 44 | #define L2C_COC_CID_NONE 0 |
AnnaBridge | 171:3a7713b1edbc | 45 | |
AnnaBridge | 171:3a7713b1edbc | 46 | /*! Connection oriented channel initiator/acceptor role */ |
AnnaBridge | 171:3a7713b1edbc | 47 | #define L2C_COC_ROLE_NONE 0x00 /*! No role (unallocated) */ |
AnnaBridge | 171:3a7713b1edbc | 48 | #define L2C_COC_ROLE_INITIATOR 0x01 /*! Channel initiator */ |
AnnaBridge | 171:3a7713b1edbc | 49 | #define L2C_COC_ROLE_ACCEPTOR 0x02 /*! Channel acceptor */ |
AnnaBridge | 171:3a7713b1edbc | 50 | |
AnnaBridge | 171:3a7713b1edbc | 51 | /*! Connection oriented channel data confirm status values */ |
AnnaBridge | 171:3a7713b1edbc | 52 | #define L2C_COC_DATA_SUCCESS 0 /*! Data request successful */ |
AnnaBridge | 171:3a7713b1edbc | 53 | #define L2C_COC_DATA_ERR_MEMORY 1 /*! Out of memory */ |
AnnaBridge | 171:3a7713b1edbc | 54 | #define L2C_COC_DATA_ERR_OVERFLOW 2 /*! Transaction overflow */ |
AnnaBridge | 171:3a7713b1edbc | 55 | |
AnnaBridge | 171:3a7713b1edbc | 56 | /*! Connection oriented channel callback events */ |
AnnaBridge | 171:3a7713b1edbc | 57 | #define L2C_COC_CBACK_START 0x40 /*! L2C callback event starting value */ |
AnnaBridge | 171:3a7713b1edbc | 58 | enum |
AnnaBridge | 171:3a7713b1edbc | 59 | { |
AnnaBridge | 171:3a7713b1edbc | 60 | L2C_COC_CONNECT_IND = L2C_COC_CBACK_START, /*! Channel connect indication */ |
AnnaBridge | 171:3a7713b1edbc | 61 | L2C_COC_DISCONNECT_IND, /*! Channel disconnect indication */ |
AnnaBridge | 171:3a7713b1edbc | 62 | L2C_COC_DATA_IND, /*! Received data indication */ |
AnnaBridge | 171:3a7713b1edbc | 63 | L2C_COC_DATA_CNF /*! Transmit data confirm */ |
AnnaBridge | 171:3a7713b1edbc | 64 | }; |
AnnaBridge | 171:3a7713b1edbc | 65 | |
AnnaBridge | 171:3a7713b1edbc | 66 | #define L2C_COC_CBACK_CBACK_END L2C_COC_DATA_CNF /*! L2C callback event ending value */ |
AnnaBridge | 171:3a7713b1edbc | 67 | |
AnnaBridge | 171:3a7713b1edbc | 68 | /************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 69 | Data Types |
AnnaBridge | 171:3a7713b1edbc | 70 | **************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 71 | |
AnnaBridge | 171:3a7713b1edbc | 72 | /*! Connection oriented channel registration ID */ |
AnnaBridge | 171:3a7713b1edbc | 73 | typedef uint16_t l2cCocRegId_t; |
AnnaBridge | 171:3a7713b1edbc | 74 | |
AnnaBridge | 171:3a7713b1edbc | 75 | /*! Connection oriented channel registration structure */ |
AnnaBridge | 171:3a7713b1edbc | 76 | typedef struct |
AnnaBridge | 171:3a7713b1edbc | 77 | { |
AnnaBridge | 171:3a7713b1edbc | 78 | uint16_t psm; /*! Protocol service multiplexer */ |
AnnaBridge | 171:3a7713b1edbc | 79 | uint16_t mps; /*! Maximum receive PDU fragment size */ |
AnnaBridge | 171:3a7713b1edbc | 80 | uint16_t mtu; /*! Maximum receive data packet size */ |
AnnaBridge | 171:3a7713b1edbc | 81 | uint16_t credits; /*! Data packet receive credits for this channel */ |
AnnaBridge | 171:3a7713b1edbc | 82 | bool_t authoriz; /*! TRUE if authorization is required */ |
AnnaBridge | 171:3a7713b1edbc | 83 | uint8_t secLevel; /*! Channel minimum security level requirements */ |
AnnaBridge | 171:3a7713b1edbc | 84 | uint8_t role; /*! Channel initiator/acceptor role */ |
AnnaBridge | 171:3a7713b1edbc | 85 | } l2cCocReg_t; |
AnnaBridge | 171:3a7713b1edbc | 86 | |
AnnaBridge | 171:3a7713b1edbc | 87 | /* Connection oriented channel connect indication structure */ |
AnnaBridge | 171:3a7713b1edbc | 88 | typedef struct |
AnnaBridge | 171:3a7713b1edbc | 89 | { |
AnnaBridge | 171:3a7713b1edbc | 90 | wsfMsgHdr_t hdr; /*! Header structure */ |
AnnaBridge | 171:3a7713b1edbc | 91 | uint16_t cid; /*! Local channel ID */ |
AnnaBridge | 171:3a7713b1edbc | 92 | uint16_t peerMtu; /*! Data packet MTU peer can receive */ |
AnnaBridge | 171:3a7713b1edbc | 93 | uint16_t psm; /*! Connected PSM */ |
AnnaBridge | 171:3a7713b1edbc | 94 | } l2cCocConnectInd_t; |
AnnaBridge | 171:3a7713b1edbc | 95 | |
AnnaBridge | 171:3a7713b1edbc | 96 | /* Connection oriented channel disconnect indication structure */ |
AnnaBridge | 171:3a7713b1edbc | 97 | typedef struct |
AnnaBridge | 171:3a7713b1edbc | 98 | { |
AnnaBridge | 171:3a7713b1edbc | 99 | wsfMsgHdr_t hdr; /*! Header structure */ |
AnnaBridge | 171:3a7713b1edbc | 100 | uint16_t cid; /*! Local channel ID */ |
AnnaBridge | 171:3a7713b1edbc | 101 | uint16_t result; /*! Connection failure result code */ |
AnnaBridge | 171:3a7713b1edbc | 102 | } l2cCocDisconnectInd_t; |
AnnaBridge | 171:3a7713b1edbc | 103 | |
AnnaBridge | 171:3a7713b1edbc | 104 | /* Connection oriented channel data indication structure */ |
AnnaBridge | 171:3a7713b1edbc | 105 | typedef struct |
AnnaBridge | 171:3a7713b1edbc | 106 | { |
AnnaBridge | 171:3a7713b1edbc | 107 | wsfMsgHdr_t hdr; /*! Header structure */ |
AnnaBridge | 171:3a7713b1edbc | 108 | uint16_t cid; /*! Local channel ID */ |
AnnaBridge | 171:3a7713b1edbc | 109 | uint8_t *pData; /*! Pointer to packet data */ |
AnnaBridge | 171:3a7713b1edbc | 110 | uint16_t dataLen; /*! packet data length */ |
AnnaBridge | 171:3a7713b1edbc | 111 | } l2cCocDataInd_t; |
AnnaBridge | 171:3a7713b1edbc | 112 | |
AnnaBridge | 171:3a7713b1edbc | 113 | /* Connection oriented channel disconnect indication structure */ |
AnnaBridge | 171:3a7713b1edbc | 114 | typedef struct |
AnnaBridge | 171:3a7713b1edbc | 115 | { |
AnnaBridge | 171:3a7713b1edbc | 116 | wsfMsgHdr_t hdr; /*! Header structure */ |
AnnaBridge | 171:3a7713b1edbc | 117 | uint16_t cid; /*! Local channel ID */ |
AnnaBridge | 171:3a7713b1edbc | 118 | } l2cCocDataCnf_t; |
AnnaBridge | 171:3a7713b1edbc | 119 | |
AnnaBridge | 171:3a7713b1edbc | 120 | /*! |
AnnaBridge | 171:3a7713b1edbc | 121 | * Connection oriented channel event structure |
AnnaBridge | 171:3a7713b1edbc | 122 | * |
AnnaBridge | 171:3a7713b1edbc | 123 | * Connection oriented channel callback header parameters: |
AnnaBridge | 171:3a7713b1edbc | 124 | * |
AnnaBridge | 171:3a7713b1edbc | 125 | * \param hdr.event Callback event |
AnnaBridge | 171:3a7713b1edbc | 126 | * \param hdr.param DM connection ID |
AnnaBridge | 171:3a7713b1edbc | 127 | * \param hdr.status Event status (L2C_COC_DATA_CNF only) |
AnnaBridge | 171:3a7713b1edbc | 128 | */ |
AnnaBridge | 171:3a7713b1edbc | 129 | typedef union |
AnnaBridge | 171:3a7713b1edbc | 130 | { |
AnnaBridge | 171:3a7713b1edbc | 131 | wsfMsgHdr_t hdr; /*! Header structure */ |
AnnaBridge | 171:3a7713b1edbc | 132 | l2cCocConnectInd_t connectInd; /*! Channel connect indication */ |
AnnaBridge | 171:3a7713b1edbc | 133 | l2cCocDisconnectInd_t disconnectInd; /*! Channel disconnect indication */ |
AnnaBridge | 171:3a7713b1edbc | 134 | l2cCocDataInd_t dataInd; /*! Received data indication */ |
AnnaBridge | 171:3a7713b1edbc | 135 | l2cCocDataCnf_t dataCnf; /*! Transmit data confirm */ |
AnnaBridge | 171:3a7713b1edbc | 136 | } l2cCocEvt_t; |
AnnaBridge | 171:3a7713b1edbc | 137 | |
AnnaBridge | 171:3a7713b1edbc | 138 | /*! Configurable parameters */ |
AnnaBridge | 171:3a7713b1edbc | 139 | typedef struct |
AnnaBridge | 171:3a7713b1edbc | 140 | { |
AnnaBridge | 171:3a7713b1edbc | 141 | uint16_t reqTimeout; /*! Request timeout in seconds */ |
AnnaBridge | 171:3a7713b1edbc | 142 | } l2cCfg_t; |
AnnaBridge | 171:3a7713b1edbc | 143 | |
AnnaBridge | 171:3a7713b1edbc | 144 | /************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 145 | Global Variables; |
AnnaBridge | 171:3a7713b1edbc | 146 | **************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 147 | |
AnnaBridge | 171:3a7713b1edbc | 148 | /*! Configuration pointer */ |
AnnaBridge | 171:3a7713b1edbc | 149 | extern l2cCfg_t *pL2cCfg; |
AnnaBridge | 171:3a7713b1edbc | 150 | |
AnnaBridge | 171:3a7713b1edbc | 151 | /************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 152 | Callback Function Types |
AnnaBridge | 171:3a7713b1edbc | 153 | **************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 154 | |
AnnaBridge | 171:3a7713b1edbc | 155 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 156 | /*! |
AnnaBridge | 171:3a7713b1edbc | 157 | * \fn l2cDataCback_t |
AnnaBridge | 171:3a7713b1edbc | 158 | * |
AnnaBridge | 171:3a7713b1edbc | 159 | * \brief This callback function sends a received L2CAP packet to the client. |
AnnaBridge | 171:3a7713b1edbc | 160 | * |
AnnaBridge | 171:3a7713b1edbc | 161 | * \param handle The connection handle. |
AnnaBridge | 171:3a7713b1edbc | 162 | * \param len The length of the L2CAP payload data in pPacket. |
AnnaBridge | 171:3a7713b1edbc | 163 | * \param pPacket A buffer containing the packet. |
AnnaBridge | 171:3a7713b1edbc | 164 | * |
AnnaBridge | 171:3a7713b1edbc | 165 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 166 | */ |
AnnaBridge | 171:3a7713b1edbc | 167 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 168 | typedef void (*l2cDataCback_t)(uint16_t handle, uint16_t len, uint8_t *pPacket); |
AnnaBridge | 171:3a7713b1edbc | 169 | |
AnnaBridge | 171:3a7713b1edbc | 170 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 171 | /*! |
AnnaBridge | 171:3a7713b1edbc | 172 | * \fn l2cCtrlCback_t |
AnnaBridge | 171:3a7713b1edbc | 173 | * |
AnnaBridge | 171:3a7713b1edbc | 174 | * \brief This callback function sends control messages to the client. |
AnnaBridge | 171:3a7713b1edbc | 175 | * |
AnnaBridge | 171:3a7713b1edbc | 176 | * \param pMsg Pointer to message structure. |
AnnaBridge | 171:3a7713b1edbc | 177 | * |
AnnaBridge | 171:3a7713b1edbc | 178 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 179 | */ |
AnnaBridge | 171:3a7713b1edbc | 180 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 181 | typedef void (*l2cCtrlCback_t)(wsfMsgHdr_t *pMsg); |
AnnaBridge | 171:3a7713b1edbc | 182 | |
AnnaBridge | 171:3a7713b1edbc | 183 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 184 | /*! |
AnnaBridge | 171:3a7713b1edbc | 185 | * \fn l2cCocCback_t |
AnnaBridge | 171:3a7713b1edbc | 186 | * |
AnnaBridge | 171:3a7713b1edbc | 187 | * \brief This callback function sends data and other events to connection oriented |
AnnaBridge | 171:3a7713b1edbc | 188 | * channels clients. |
AnnaBridge | 171:3a7713b1edbc | 189 | * |
AnnaBridge | 171:3a7713b1edbc | 190 | * \param pMsg Pointer to message structure. |
AnnaBridge | 171:3a7713b1edbc | 191 | * |
AnnaBridge | 171:3a7713b1edbc | 192 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 193 | */ |
AnnaBridge | 171:3a7713b1edbc | 194 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 195 | typedef void (*l2cCocCback_t)(l2cCocEvt_t *pMsg); |
AnnaBridge | 171:3a7713b1edbc | 196 | |
AnnaBridge | 171:3a7713b1edbc | 197 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 198 | /*! |
AnnaBridge | 171:3a7713b1edbc | 199 | * \fn l2cCocAuthorCback_t |
AnnaBridge | 171:3a7713b1edbc | 200 | * |
AnnaBridge | 171:3a7713b1edbc | 201 | * \brief This callback function is used for authoriztion of connection oriented channels. |
AnnaBridge | 171:3a7713b1edbc | 202 | * |
AnnaBridge | 171:3a7713b1edbc | 203 | * \param connId DM connection ID. |
AnnaBridge | 171:3a7713b1edbc | 204 | * \param regId The registration instance requiring authorization. |
AnnaBridge | 171:3a7713b1edbc | 205 | * \param psm The PSM of the registration instance. |
AnnaBridge | 171:3a7713b1edbc | 206 | * |
AnnaBridge | 171:3a7713b1edbc | 207 | * \return L2C_CONN_SUCCESS if authorization is successful, any other value for failure. |
AnnaBridge | 171:3a7713b1edbc | 208 | */ |
AnnaBridge | 171:3a7713b1edbc | 209 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 210 | typedef uint16_t (*l2cCocAuthorCback_t)(dmConnId_t connId, l2cCocRegId_t regId, uint16_t psm); |
AnnaBridge | 171:3a7713b1edbc | 211 | |
AnnaBridge | 171:3a7713b1edbc | 212 | /************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 213 | Function Declarations |
AnnaBridge | 171:3a7713b1edbc | 214 | **************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 215 | |
AnnaBridge | 171:3a7713b1edbc | 216 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 217 | /*! |
AnnaBridge | 171:3a7713b1edbc | 218 | * \fn L2cInit |
AnnaBridge | 171:3a7713b1edbc | 219 | * |
AnnaBridge | 171:3a7713b1edbc | 220 | * \brief Initialize L2C subsystem. |
AnnaBridge | 171:3a7713b1edbc | 221 | * |
AnnaBridge | 171:3a7713b1edbc | 222 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 223 | */ |
AnnaBridge | 171:3a7713b1edbc | 224 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 225 | void L2cInit(void); |
AnnaBridge | 171:3a7713b1edbc | 226 | |
AnnaBridge | 171:3a7713b1edbc | 227 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 228 | /*! |
AnnaBridge | 171:3a7713b1edbc | 229 | * \fn L2cMasterInit |
AnnaBridge | 171:3a7713b1edbc | 230 | * |
AnnaBridge | 171:3a7713b1edbc | 231 | * \brief Initialize L2C for operation as a Bluetooth LE master. |
AnnaBridge | 171:3a7713b1edbc | 232 | * |
AnnaBridge | 171:3a7713b1edbc | 233 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 234 | */ |
AnnaBridge | 171:3a7713b1edbc | 235 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 236 | void L2cMasterInit(void); |
AnnaBridge | 171:3a7713b1edbc | 237 | |
AnnaBridge | 171:3a7713b1edbc | 238 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 239 | /*! |
AnnaBridge | 171:3a7713b1edbc | 240 | * \fn L2cSlaveInit |
AnnaBridge | 171:3a7713b1edbc | 241 | * |
AnnaBridge | 171:3a7713b1edbc | 242 | * \brief Initialize L2C for operation as a Bluetooth LE slave. |
AnnaBridge | 171:3a7713b1edbc | 243 | * |
AnnaBridge | 171:3a7713b1edbc | 244 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 245 | */ |
AnnaBridge | 171:3a7713b1edbc | 246 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 247 | void L2cSlaveInit(void); |
AnnaBridge | 171:3a7713b1edbc | 248 | |
AnnaBridge | 171:3a7713b1edbc | 249 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 250 | /*! |
AnnaBridge | 171:3a7713b1edbc | 251 | * \fn L2cSlaveInit |
AnnaBridge | 171:3a7713b1edbc | 252 | * |
AnnaBridge | 171:3a7713b1edbc | 253 | * \brief Initialize L2C for operation with connection-oriented channels. |
AnnaBridge | 171:3a7713b1edbc | 254 | * |
AnnaBridge | 171:3a7713b1edbc | 255 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 256 | */ |
AnnaBridge | 171:3a7713b1edbc | 257 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 258 | void L2cCocInit(void); |
AnnaBridge | 171:3a7713b1edbc | 259 | |
AnnaBridge | 171:3a7713b1edbc | 260 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 261 | /*! |
AnnaBridge | 171:3a7713b1edbc | 262 | * \fn L2cRegister |
AnnaBridge | 171:3a7713b1edbc | 263 | * |
AnnaBridge | 171:3a7713b1edbc | 264 | * \brief called by the L2C client, such as ATT or SMP, to register for the given CID. |
AnnaBridge | 171:3a7713b1edbc | 265 | * |
AnnaBridge | 171:3a7713b1edbc | 266 | * \param cid channel identifier. |
AnnaBridge | 171:3a7713b1edbc | 267 | * \param dataCback Callback function for L2CAP data received for this CID. |
AnnaBridge | 171:3a7713b1edbc | 268 | * \param ctrlCback Callback function for control events for this CID. |
AnnaBridge | 171:3a7713b1edbc | 269 | * |
AnnaBridge | 171:3a7713b1edbc | 270 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 271 | */ |
AnnaBridge | 171:3a7713b1edbc | 272 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 273 | void L2cRegister(uint16_t cid, l2cDataCback_t dataCback, l2cCtrlCback_t ctrlCback); |
AnnaBridge | 171:3a7713b1edbc | 274 | |
AnnaBridge | 171:3a7713b1edbc | 275 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 276 | /*! |
AnnaBridge | 171:3a7713b1edbc | 277 | * \fn L2cDataReq |
AnnaBridge | 171:3a7713b1edbc | 278 | * |
AnnaBridge | 171:3a7713b1edbc | 279 | * \brief Send an L2CAP data packet on the given CID. |
AnnaBridge | 171:3a7713b1edbc | 280 | * |
AnnaBridge | 171:3a7713b1edbc | 281 | * \param cid The channel identifier. |
AnnaBridge | 171:3a7713b1edbc | 282 | * \param handle The connection handle. The client receives this handle from DM. |
AnnaBridge | 171:3a7713b1edbc | 283 | * \param len The length of the payload data in pPacket. |
AnnaBridge | 171:3a7713b1edbc | 284 | * \param pPacket A buffer containing the packet. |
AnnaBridge | 171:3a7713b1edbc | 285 | * |
AnnaBridge | 171:3a7713b1edbc | 286 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 287 | */ |
AnnaBridge | 171:3a7713b1edbc | 288 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 289 | void L2cDataReq(uint16_t cid, uint16_t handle, uint16_t len, uint8_t *pL2cPacket); |
AnnaBridge | 171:3a7713b1edbc | 290 | |
AnnaBridge | 171:3a7713b1edbc | 291 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 292 | /*! |
AnnaBridge | 171:3a7713b1edbc | 293 | * \fn L2cCocInit |
AnnaBridge | 171:3a7713b1edbc | 294 | * |
AnnaBridge | 171:3a7713b1edbc | 295 | * \brief Initialize L2C connection oriented channel subsystem. |
AnnaBridge | 171:3a7713b1edbc | 296 | * |
AnnaBridge | 171:3a7713b1edbc | 297 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 298 | */ |
AnnaBridge | 171:3a7713b1edbc | 299 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 300 | void L2cCocInit(void); |
AnnaBridge | 171:3a7713b1edbc | 301 | |
AnnaBridge | 171:3a7713b1edbc | 302 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 303 | /*! |
AnnaBridge | 171:3a7713b1edbc | 304 | * \fn L2cCocRegister |
AnnaBridge | 171:3a7713b1edbc | 305 | * |
AnnaBridge | 171:3a7713b1edbc | 306 | * \brief Register to use a connection oriented channel, as either a channel acceptor, |
AnnaBridge | 171:3a7713b1edbc | 307 | * initiator, or both. If registering as channel acceptor then the PSM is specified. |
AnnaBridge | 171:3a7713b1edbc | 308 | * After registering a connection can be established by the client using this |
AnnaBridge | 171:3a7713b1edbc | 309 | * registration instance. |
AnnaBridge | 171:3a7713b1edbc | 310 | * |
AnnaBridge | 171:3a7713b1edbc | 311 | * \param cback Client callback function. |
AnnaBridge | 171:3a7713b1edbc | 312 | * \param pReg Registration parameter structure. |
AnnaBridge | 171:3a7713b1edbc | 313 | * |
AnnaBridge | 171:3a7713b1edbc | 314 | * \return Registration instance ID or L2C_COC_REG_ID_NONE if registration failed. |
AnnaBridge | 171:3a7713b1edbc | 315 | */ |
AnnaBridge | 171:3a7713b1edbc | 316 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 317 | l2cCocRegId_t L2cCocRegister(l2cCocCback_t cback, l2cCocReg_t *pReg); |
AnnaBridge | 171:3a7713b1edbc | 318 | |
AnnaBridge | 171:3a7713b1edbc | 319 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 320 | /*! |
AnnaBridge | 171:3a7713b1edbc | 321 | * \fn L2cCocDeregister |
AnnaBridge | 171:3a7713b1edbc | 322 | * |
AnnaBridge | 171:3a7713b1edbc | 323 | * \brief Deregister and deallocate a connection oriented channel registration instance. |
AnnaBridge | 171:3a7713b1edbc | 324 | * This function should only be called if there are no active channels using this |
AnnaBridge | 171:3a7713b1edbc | 325 | * registration instance. |
AnnaBridge | 171:3a7713b1edbc | 326 | * |
AnnaBridge | 171:3a7713b1edbc | 327 | * \param regId Registration instance ID. |
AnnaBridge | 171:3a7713b1edbc | 328 | * |
AnnaBridge | 171:3a7713b1edbc | 329 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 330 | */ |
AnnaBridge | 171:3a7713b1edbc | 331 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 332 | void L2cCocDeregister(l2cCocRegId_t regId); |
AnnaBridge | 171:3a7713b1edbc | 333 | |
AnnaBridge | 171:3a7713b1edbc | 334 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 335 | /*! |
AnnaBridge | 171:3a7713b1edbc | 336 | * \fn L2cCocConnectReq |
AnnaBridge | 171:3a7713b1edbc | 337 | * |
AnnaBridge | 171:3a7713b1edbc | 338 | * \brief Initiate a connection to the given peer PSM. |
AnnaBridge | 171:3a7713b1edbc | 339 | * |
AnnaBridge | 171:3a7713b1edbc | 340 | * \param connId DM connection ID. |
AnnaBridge | 171:3a7713b1edbc | 341 | * \param regId The associated registration instance. |
AnnaBridge | 171:3a7713b1edbc | 342 | * \param psm Peer PSM. |
AnnaBridge | 171:3a7713b1edbc | 343 | * |
AnnaBridge | 171:3a7713b1edbc | 344 | * \return Local CID or L2C_COC_CID_NONE none if failure. |
AnnaBridge | 171:3a7713b1edbc | 345 | */ |
AnnaBridge | 171:3a7713b1edbc | 346 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 347 | uint16_t L2cCocConnectReq(dmConnId_t connId, l2cCocRegId_t regId, uint16_t psm); |
AnnaBridge | 171:3a7713b1edbc | 348 | |
AnnaBridge | 171:3a7713b1edbc | 349 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 350 | /*! |
AnnaBridge | 171:3a7713b1edbc | 351 | * \fn L2cCocDisconnectReq |
AnnaBridge | 171:3a7713b1edbc | 352 | * |
AnnaBridge | 171:3a7713b1edbc | 353 | * \brief Disconnect the channel for the given CID. |
AnnaBridge | 171:3a7713b1edbc | 354 | * |
AnnaBridge | 171:3a7713b1edbc | 355 | * \param cid Channel ID. |
AnnaBridge | 171:3a7713b1edbc | 356 | * |
AnnaBridge | 171:3a7713b1edbc | 357 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 358 | */ |
AnnaBridge | 171:3a7713b1edbc | 359 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 360 | void L2cCocDisconnectReq(uint16_t cid); |
AnnaBridge | 171:3a7713b1edbc | 361 | |
AnnaBridge | 171:3a7713b1edbc | 362 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 363 | /*! |
AnnaBridge | 171:3a7713b1edbc | 364 | * \fn L2cCocDataReq |
AnnaBridge | 171:3a7713b1edbc | 365 | * |
AnnaBridge | 171:3a7713b1edbc | 366 | * \brief Send an L2CAP data packet on the given connection oriented CID. |
AnnaBridge | 171:3a7713b1edbc | 367 | * |
AnnaBridge | 171:3a7713b1edbc | 368 | * \param cid The local channel identifier. |
AnnaBridge | 171:3a7713b1edbc | 369 | * \param len The length of the payload data in pPacket. |
AnnaBridge | 171:3a7713b1edbc | 370 | * \param pPacket Packet payload data. |
AnnaBridge | 171:3a7713b1edbc | 371 | * |
AnnaBridge | 171:3a7713b1edbc | 372 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 373 | */ |
AnnaBridge | 171:3a7713b1edbc | 374 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 375 | void L2cCocDataReq(uint16_t cid, uint16_t len, uint8_t *pPayload); |
AnnaBridge | 171:3a7713b1edbc | 376 | |
AnnaBridge | 171:3a7713b1edbc | 377 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 378 | /*! |
AnnaBridge | 171:3a7713b1edbc | 379 | * \fn L2cCocErrorTest |
AnnaBridge | 171:3a7713b1edbc | 380 | * |
AnnaBridge | 171:3a7713b1edbc | 381 | * \brief For testing purposes only. |
AnnaBridge | 171:3a7713b1edbc | 382 | * |
AnnaBridge | 171:3a7713b1edbc | 383 | * \param result Result code |
AnnaBridge | 171:3a7713b1edbc | 384 | * |
AnnaBridge | 171:3a7713b1edbc | 385 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 386 | */ |
AnnaBridge | 171:3a7713b1edbc | 387 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 388 | void L2cCocErrorTest(uint16_t result); |
AnnaBridge | 171:3a7713b1edbc | 389 | |
AnnaBridge | 171:3a7713b1edbc | 390 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 391 | /*! |
AnnaBridge | 171:3a7713b1edbc | 392 | * \fn L2cCocCreditSendTest |
AnnaBridge | 171:3a7713b1edbc | 393 | * |
AnnaBridge | 171:3a7713b1edbc | 394 | * \brief For testing purposes only. |
AnnaBridge | 171:3a7713b1edbc | 395 | * |
AnnaBridge | 171:3a7713b1edbc | 396 | * \param cid The local channel identifier. |
AnnaBridge | 171:3a7713b1edbc | 397 | * \param credits Credits to send. |
AnnaBridge | 171:3a7713b1edbc | 398 | * |
AnnaBridge | 171:3a7713b1edbc | 399 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 400 | */ |
AnnaBridge | 171:3a7713b1edbc | 401 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 402 | void L2cCocCreditSendTest(uint16_t cid, uint16_t credits); |
AnnaBridge | 171:3a7713b1edbc | 403 | |
AnnaBridge | 171:3a7713b1edbc | 404 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 405 | /*! |
AnnaBridge | 171:3a7713b1edbc | 406 | * \fn L2cDmConnUpdateReq |
AnnaBridge | 171:3a7713b1edbc | 407 | * |
AnnaBridge | 171:3a7713b1edbc | 408 | * \brief For internal use only. This function is called by DM to send an L2CAP |
AnnaBridge | 171:3a7713b1edbc | 409 | * connection update request. |
AnnaBridge | 171:3a7713b1edbc | 410 | * |
AnnaBridge | 171:3a7713b1edbc | 411 | * \param handle The connection handle. |
AnnaBridge | 171:3a7713b1edbc | 412 | * \param pConnSpec Pointer to the connection specification structure. |
AnnaBridge | 171:3a7713b1edbc | 413 | * |
AnnaBridge | 171:3a7713b1edbc | 414 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 415 | */ |
AnnaBridge | 171:3a7713b1edbc | 416 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 417 | void L2cDmConnUpdateReq(uint16_t handle, hciConnSpec_t *pConnSpec); |
AnnaBridge | 171:3a7713b1edbc | 418 | |
AnnaBridge | 171:3a7713b1edbc | 419 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 420 | /*! |
AnnaBridge | 171:3a7713b1edbc | 421 | * \fn L2cDmConnUpdateRsp |
AnnaBridge | 171:3a7713b1edbc | 422 | * |
AnnaBridge | 171:3a7713b1edbc | 423 | * \brief For internal use only. This function is called by DM to send an L2CAP |
AnnaBridge | 171:3a7713b1edbc | 424 | * connection update response. |
AnnaBridge | 171:3a7713b1edbc | 425 | * |
AnnaBridge | 171:3a7713b1edbc | 426 | * \param identifier Identifier value previously passed from L2C to DM. |
AnnaBridge | 171:3a7713b1edbc | 427 | * \param handle The connection handle. |
AnnaBridge | 171:3a7713b1edbc | 428 | * \param result Connection update response result. |
AnnaBridge | 171:3a7713b1edbc | 429 | * |
AnnaBridge | 171:3a7713b1edbc | 430 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 431 | */ |
AnnaBridge | 171:3a7713b1edbc | 432 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 433 | void L2cDmConnUpdateRsp(uint8_t identifier, uint16_t handle, uint16_t result); |
AnnaBridge | 171:3a7713b1edbc | 434 | |
AnnaBridge | 171:3a7713b1edbc | 435 | #ifdef __cplusplus |
AnnaBridge | 171:3a7713b1edbc | 436 | }; |
AnnaBridge | 171:3a7713b1edbc | 437 | #endif |
AnnaBridge | 171:3a7713b1edbc | 438 | |
AnnaBridge | 171:3a7713b1edbc | 439 | #endif /* L2C_API_H */ |