Home | History | Annotate | Download | only in include
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 2010-2012 Broadcom Corporation
      4  *
      5  *  Licensed under the Apache License, Version 2.0 (the "License");
      6  *  you may not use this file except in compliance with the License.
      7  *  You may obtain a copy of the License at:
      8  *
      9  *  http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  *
     17  ******************************************************************************/
     18 
     19 /******************************************************************************
     20  *
     21  *  This file contains the LLCP API definitions
     22  *
     23  ******************************************************************************/
     24 #ifndef LLCP_API_H
     25 #define LLCP_API_H
     26 
     27 #include "nfc_target.h"
     28 #include "llcp_defs.h"
     29 
     30 /*****************************************************************************
     31 **  Constants
     32 *****************************************************************************/
     33 #define LLCP_STATUS_SUCCESS         0       /* Successfully done                */
     34 #define LLCP_STATUS_FAIL            1       /* Failed without specific reason   */
     35 #define LLCP_STATUS_CONGESTED       2       /* Data link is congested           */
     36 
     37 typedef UINT8 tLLCP_STATUS;
     38 
     39 #define LLCP_MIN_OFFSET             (NCI_MSG_OFFSET_SIZE + NCI_DATA_HDR_SIZE + LLCP_PDU_HEADER_SIZE + LLCP_SEQUENCE_SIZE)
     40 
     41 #define LLCP_INVALID_SAP            0xFF    /* indication of failure to allocate data link resource */
     42 
     43 /*****************************************************************************
     44 **  Type Definitions
     45 *****************************************************************************/
     46 typedef struct
     47 {
     48     BOOLEAN is_initiator;       /* TRUE if we are POLL mode */
     49     UINT8   max_payload_size;   /* 64, 128, 192 or 254 */
     50     UINT8   waiting_time;
     51     UINT8  *p_gen_bytes;
     52     UINT8   gen_bytes_len;
     53 } tLLCP_ACTIVATE_CONFIG;
     54 
     55 typedef struct
     56 {
     57     UINT16  miu;                        /* Local receiving MIU      */
     58     UINT8   rw;                         /* Local receiving window   */
     59     char    sn[LLCP_MAX_SN_LEN + 1];    /* Service name to connect  */
     60 } tLLCP_CONNECTION_PARAMS;
     61 
     62 /*********************************
     63 **  Callback Functions Prototypes
     64 **********************************/
     65 
     66 /* Link Management Callback Events */
     67 
     68 #define LLCP_LINK_ACTIVATION_FAILED_EVT     0x00    /* Fail to activate link    */
     69 #define LLCP_LINK_ACTIVATION_COMPLETE_EVT   0x01    /* LLCP Link is activated   */
     70 #define LLCP_LINK_DEACTIVATED_EVT           0x02    /* LLCP Link is deactivated */
     71 
     72 /* Link Management Callback Reasons */
     73 
     74 #define LLCP_LINK_SUCCESS                   0x00    /* Success                                  */
     75 #define LLCP_LINK_VERSION_FAILED            0x01    /* Failed to agree version                  */
     76 #define LLCP_LINK_BAD_GEN_BYTES             0x02    /* Failed to parse received general bytes   */
     77 #define LLCP_LINK_INTERNAL_ERROR            0x03    /* internal error                           */
     78 #define LLCP_LINK_LOCAL_INITIATED           0x04    /* Link has been deactivated by local       */
     79 #define LLCP_LINK_REMOTE_INITIATED          0x05    /* Link has been deactivated by remote      */
     80 #define LLCP_LINK_TIMEOUT                   0x06    /* Link has been deactivated by timeout     */
     81 #define LLCP_LINK_FRAME_ERROR               0x07    /* Link has been deactivated by frame error */
     82 #define LLCP_LINK_RF_TRANSMISSION_ERR       NFC_STATUS_RF_TRANSMISSION_ERR
     83 #define LLCP_LINK_RF_PROTOCOL_ERR           NFC_STATUS_RF_PROTOCOL_ERR
     84 #define LLCP_LINK_RF_TIMEOUT                NFC_STATUS_TIMEOUT
     85 #define LLCP_LINK_RF_LINK_LOSS_ERR          NFC_STATUS_LINK_LOSS
     86 
     87 typedef void (tLLCP_LINK_CBACK) (UINT8 event, UINT8 reason);
     88 
     89 /* Minimum length of Gen Bytes for LLCP */
     90 /* In CE4 low power mode, NFCC can store up to 21 bytes */
     91 #define LLCP_MIN_GEN_BYTES                  20
     92 
     93 /* Service Access Point (SAP) Callback Events */
     94 
     95 #define LLCP_SAP_EVT_DATA_IND               0x00    /* Received data on SAP         */
     96 #define LLCP_SAP_EVT_CONNECT_IND            0x01    /* Connection request from peer */
     97 #define LLCP_SAP_EVT_CONNECT_RESP           0x02    /* Connection accepted by peer  */
     98 #define LLCP_SAP_EVT_DISCONNECT_IND         0x03    /* Received disconnect request  */
     99 #define LLCP_SAP_EVT_DISCONNECT_RESP        0x04    /* Received disconnect response */
    100 #define LLCP_SAP_EVT_CONGEST                0x05    /* congested status is changed  */
    101 #define LLCP_SAP_EVT_LINK_STATUS            0x06    /* Change of LLCP Link status   */
    102 #define LLCP_SAP_EVT_TX_COMPLETE            0x07    /* tx queue is empty and all PDU is acked   */
    103 
    104 #define LLCP_LINK_TYPE_LOGICAL_DATA_LINK      0x01
    105 #define LLCP_LINK_TYPE_DATA_LINK_CONNECTION   0x02
    106 
    107 typedef struct
    108 {
    109     UINT8   event;              /* LLCP_SAP_EVT_DATA_IND        */
    110     UINT8   local_sap;          /* SAP of local device          */
    111     UINT8   remote_sap;         /* SAP of remote device         */
    112     UINT8   link_type;          /* link type                    */
    113 } tLLCP_SAP_DATA_IND;
    114 
    115 typedef struct
    116 {
    117     UINT8   event;              /* LLCP_SAP_EVT_CONNECT_IND     */
    118     UINT8   server_sap;         /* SAP of local server          */
    119     UINT8   local_sap;          /* SAP of local device          */
    120     UINT8   remote_sap;         /* SAP of remote device         */
    121     UINT16  miu;                /* MIU of peer device           */
    122     UINT8   rw;                 /* RW of peer device            */
    123     char   *p_service_name;     /* Service name (only for SDP)  */
    124 } tLLCP_SAP_CONNECT_IND;
    125 
    126 typedef struct
    127 {
    128     UINT8   event;              /* LLCP_SAP_EVT_CONNECT_RESP    */
    129     UINT8   local_sap;          /* SAP of local device          */
    130     UINT8   remote_sap;         /* SAP of remote device         */
    131     UINT16  miu;                /* MIU of peer device           */
    132     UINT8   rw;                 /* RW of peer device            */
    133 } tLLCP_SAP_CONNECT_RESP;
    134 
    135 #define LLCP_SAP_DISCONNECT_REASON_TIMEOUT  0x80
    136 typedef struct
    137 {
    138     UINT8   event;              /* LLCP_SAP_EVT_DISCONNECT_IND  */
    139     UINT8   local_sap;          /* SAP of local device          */
    140     UINT8   remote_sap;         /* SAP of remote device         */
    141 } tLLCP_SAP_DISCONNECT_IND;
    142 
    143 typedef struct
    144 {
    145     UINT8   event;              /* LLCP_SAP_EVT_DISCONNECT_RESP */
    146     UINT8   local_sap;          /* SAP of local device          */
    147     UINT8   remote_sap;         /* SAP of remote device         */
    148     UINT8   reason;             /* Reason of DM PDU if not timeout */
    149 } tLLCP_SAP_DISCONNECT_RESP;
    150 
    151 typedef struct
    152 {
    153     UINT8   event;              /* LLCP_SAP_EVT_CONGEST         */
    154     UINT8   local_sap;          /* SAP of local device          */
    155     UINT8   remote_sap;         /* SAP of remote device         */
    156     BOOLEAN is_congested;       /* TRUE if congested            */
    157     UINT8   link_type;          /* congested link type          */
    158 } tLLCP_SAP_CONGEST;
    159 
    160 typedef struct
    161 {
    162     UINT8   event;              /* LLCP_SAP_EVT_LINK_STATUS     */
    163     UINT8   local_sap;          /* SAP of local device          */
    164     BOOLEAN is_activated;       /* TRUE if LLCP link is activated  */
    165     BOOLEAN is_initiator;       /* TRUE if local LLCP is initiator */
    166 } tLLCP_SAP_LINK_STATUS;
    167 
    168 typedef struct
    169 {
    170     UINT8   event;              /* LLCP_SAP_EVT_TX_COMPLETE     */
    171     UINT8   local_sap;          /* SAP of local device          */
    172     UINT8   remote_sap;         /* SAP of remote device         */
    173 } tLLCP_SAP_TX_COMPLETE;
    174 
    175 typedef struct
    176 {
    177     UINT8   event;              /* event                        */
    178     UINT8   local_sap;          /* SAP of local device          */
    179 } tLLCP_SAP_HEADER;
    180 
    181 typedef union
    182 {
    183     tLLCP_SAP_HEADER            hdr;                /* common header                */
    184     tLLCP_SAP_DATA_IND          data_ind;           /* LLCP_SAP_EVT_DATA_IND        */
    185     tLLCP_SAP_CONNECT_IND       connect_ind;        /* LLCP_SAP_EVT_CONNECT_IND     */
    186     tLLCP_SAP_CONNECT_RESP      connect_resp;       /* LLCP_SAP_EVT_CONNECT_RESP    */
    187     tLLCP_SAP_DISCONNECT_IND    disconnect_ind;     /* LLCP_SAP_EVT_DISCONNECT_IND  */
    188     tLLCP_SAP_DISCONNECT_RESP   disconnect_resp;    /* LLCP_SAP_EVT_DISCONNECT_RESP */
    189     tLLCP_SAP_CONGEST           congest;            /* LLCP_SAP_EVT_CONGEST         */
    190     tLLCP_SAP_LINK_STATUS       link_status;        /* LLCP_SAP_EVT_LINK_STATUS     */
    191     tLLCP_SAP_TX_COMPLETE       tx_complete;        /* LLCP_SAP_EVT_TX_COMPLETE     */
    192 } tLLCP_SAP_CBACK_DATA;
    193 
    194 typedef void (tLLCP_APP_CBACK) (tLLCP_SAP_CBACK_DATA *p_data);
    195 
    196 /* Service Discovery Callback */
    197 
    198 typedef void (tLLCP_SDP_CBACK) (UINT8 tid, UINT8 remote_sap);
    199 
    200 /* LLCP DTA Callback - notify DTA responded SNL for connectionless echo service */
    201 
    202 typedef void (tLLCP_DTA_CBACK) (void);
    203 
    204 /*****************************************************************************
    205 **  External Function Declarations
    206 *****************************************************************************/
    207 #ifdef __cplusplus
    208 extern "C"
    209 {
    210 #endif
    211 
    212 /*******************************************************************************
    213 **
    214 ** Function         LLCP_SetConfig
    215 **
    216 ** Description      Set configuration parameters for LLCP
    217 **                  - Local Link MIU
    218 **                  - Option parameter
    219 **                  - Waiting Time Index
    220 **                  - Local Link Timeout
    221 **                  - Inactivity Timeout as initiator role
    222 **                  - Inactivity Timeout as target role
    223 **                  - Delay SYMM response
    224 **                  - Data link connection timeout
    225 **                  - Delay timeout to send first PDU as initiator
    226 **
    227 ** Returns          void
    228 **
    229 *******************************************************************************/
    230 LLCP_API extern void LLCP_SetConfig (UINT16 link_miu,
    231                                      UINT8  opt,
    232                                      UINT8  wt,
    233                                      UINT16 link_timeout,
    234                                      UINT16 inact_timeout_init,
    235                                      UINT16 inact_timeout_target,
    236                                      UINT16 symm_delay,
    237                                      UINT16 data_link_timeout,
    238                                      UINT16 delay_first_pdu_timeout);
    239 
    240 /*******************************************************************************
    241 **
    242 ** Function         LLCP_GetConfig
    243 **
    244 ** Description      Get configuration parameters for LLCP
    245 **                  - Local Link MIU
    246 **                  - Option parameter
    247 **                  - Response Waiting Time Index
    248 **                  - Local Link Timeout
    249 **                  - Inactivity Timeout as initiator role
    250 **                  - Inactivity Timeout as target role
    251 **                  - Delay SYMM response
    252 **                  - Data link connection timeout
    253 **                  - Delay timeout to send first PDU as initiator
    254 **
    255 ** Returns          void
    256 **
    257 *******************************************************************************/
    258 LLCP_API extern void LLCP_GetConfig (UINT16 *p_link_miu,
    259                                      UINT8  *p_opt,
    260                                      UINT8  *p_wt,
    261                                      UINT16 *p_link_timeout,
    262                                      UINT16 *p_inact_timeout_init,
    263                                      UINT16 *p_inact_timeout_target,
    264                                      UINT16 *p_symm_delay,
    265                                      UINT16 *p_data_link_timeout,
    266                                      UINT16 *p_delay_first_pdu_timeout);
    267 
    268 /*******************************************************************************
    269 **
    270 ** Function         LLCP_GetDiscoveryConfig
    271 **
    272 ** Description      Returns discovery config for LLCP MAC link activation
    273 **                  This function is called to get general bytes for NFC_PMID_ATR_REQ_GEN_BYTES
    274 **                  or NFC_PMID_ATR_RES_GEN_BYTES before starting discovery.
    275 **
    276 **                  wt:Waiting time 0 - 8, only for listen
    277 **                  p_gen_bytes: pointer to store LLCP magic number and paramters
    278 **                  p_gen_bytes_len: length of buffer for gen bytes as input
    279 **                                   (NOTE:it must be bigger than LLCP_MIN_GEN_BYTES)
    280 **                                   actual gen bytes size as output
    281 **
    282 **                  Restrictions on the use of ISO 18092
    283 **                  1. The DID features shall not be used.
    284 **                  2. the NAD features shall not be used.
    285 **                  3. Frame waiting time extentions (WTX) shall not be used.
    286 **
    287 ** Returns          None
    288 **
    289 *******************************************************************************/
    290 LLCP_API extern void LLCP_GetDiscoveryConfig (UINT8 *p_wt,
    291                                               UINT8 *p_gen_bytes,
    292                                               UINT8 *p_gen_bytes_len);
    293 
    294 /*******************************************************************************
    295 **
    296 ** Function         LLCP_ActivateLink
    297 **
    298 ** Description      This function will activate LLCP link with LR, WT and Gen Bytes
    299 **                  in activation NTF from NFCC.
    300 **
    301 **                  LLCP_LINK_ACTIVATION_COMPLETE_EVT will be returned through
    302 **                  callback function if successful.
    303 **                  Otherwise, LLCP_LINK_ACTIVATION_FAILED_EVT will be returned.
    304 **
    305 ** Returns          LLCP_STATUS_SUCCESS if success
    306 **
    307 *******************************************************************************/
    308 LLCP_API extern tLLCP_STATUS LLCP_ActivateLink (tLLCP_ACTIVATE_CONFIG config,
    309                                                 tLLCP_LINK_CBACK     *p_link_cback);
    310 
    311 /*******************************************************************************
    312 **
    313 ** Function         LLCP_DeactivateLink
    314 **
    315 ** Description      Deactivate LLCP link
    316 **
    317 **                  LLCP_LINK_DEACTIVATED_EVT will be returned through callback
    318 **                  when LLCP link is deactivated. Then NFC link may be deactivated.
    319 **
    320 ** Returns          LLCP_STATUS_SUCCESS if success
    321 **
    322 *******************************************************************************/
    323 LLCP_API extern tLLCP_STATUS LLCP_DeactivateLink (void);
    324 
    325 /*******************************************************************************
    326 **
    327 ** Function         LLCP_RegisterServer
    328 **
    329 ** Description      Register server and callback function
    330 **
    331 **                  reg_sap : Well-Known SAP except LM and SDP (0x02 - 0x0F)
    332 **                            Advertized by SDP (0x10 - 0x1F)
    333 **                            LLCP_INVALID_SAP, LLCP will allocate between 0x10 and 0x1F
    334 **                  link_type : LLCP_LINK_TYPE_LOGICAL_DATA_LINK
    335 **                              and/or LLCP_LINK_TYPE_DATA_LINK_CONNECTION
    336 **                  p_service_name : Null-terminated string up to LLCP_MAX_SN_LEN
    337 **
    338 ** Returns          SAP between 0x02 and 0x1F, if success
    339 **                  LLCP_INVALID_SAP, otherwise
    340 **
    341 *******************************************************************************/
    342 LLCP_API extern UINT8 LLCP_RegisterServer (UINT8           reg_sap,
    343                                            UINT8           link_type,
    344                                            char            *p_service_name,
    345                                            tLLCP_APP_CBACK *p_sap_cback);
    346 
    347 /*******************************************************************************
    348 **
    349 ** Function         LLCP_RegisterClient
    350 **
    351 ** Description      Register client and callback function
    352 **
    353 **                  link_type : LLCP_LINK_TYPE_LOGICAL_DATA_LINK
    354 **                              and/or LLCP_LINK_TYPE_DATA_LINK_CONNECTION
    355 **
    356 ** Returns          SAP between 0x20 and 0x3F, if success
    357 **                  LLCP_INVALID_SAP, otherwise
    358 **
    359 *******************************************************************************/
    360 LLCP_API extern UINT8 LLCP_RegisterClient (UINT8           link_type,
    361                                            tLLCP_APP_CBACK *p_sap_cback);
    362 
    363 /*******************************************************************************
    364 **
    365 ** Function         LLCP_Deregister
    366 **
    367 ** Description      Deregister server or client
    368 **
    369 **
    370 ** Returns          LLCP_STATUS_SUCCESS if success
    371 **
    372 *******************************************************************************/
    373 LLCP_API extern tLLCP_STATUS LLCP_Deregister (UINT8 sap);
    374 
    375 /*******************************************************************************
    376 **
    377 ** Function         LLCP_IsLogicalLinkCongested
    378 **
    379 ** Description      Check if logical link is congested
    380 **
    381 **
    382 ** Returns          TRUE if congested
    383 **
    384 *******************************************************************************/
    385 LLCP_API extern BOOLEAN LLCP_IsLogicalLinkCongested (UINT8 local_sap,
    386                                                      UINT8 num_pending_ui_pdu,
    387                                                      UINT8 total_pending_ui_pdu,
    388                                                      UINT8 total_pending_i_pdu);
    389 
    390 /*******************************************************************************
    391 **
    392 ** Function         LLCP_SendUI
    393 **
    394 ** Description      Send connnectionless data to DSAP
    395 **
    396 **
    397 ** Returns          LLCP_STATUS_SUCCESS if success
    398 **                  LLCP_STATUS_CONGESTED if logical link is congested
    399 **                  LLCP_STATUS_FAIL, otherwise
    400 **
    401 *******************************************************************************/
    402 LLCP_API extern tLLCP_STATUS LLCP_SendUI (UINT8 ssap, UINT8 dsap, BT_HDR *p_buf);
    403 
    404 /*******************************************************************************
    405 **
    406 ** Function         LLCP_ReadLogicalLinkData
    407 **
    408 ** Description      Read information of UI PDU for local SAP
    409 **
    410 **                  - Remote SAP who sent UI PDU is returned.
    411 **                  - Information of UI PDU up to max_data_len is copied into p_data.
    412 **                  - Information of next UI PDU is not concatenated.
    413 **                  - Recommended max_data_len is link MIU of local device
    414 **
    415 ** Returns          TRUE if more information of UI PDU or more UI PDU in queue
    416 **
    417 *******************************************************************************/
    418 LLCP_API extern BOOLEAN LLCP_ReadLogicalLinkData (UINT8  local_sap,
    419                                                   UINT32 max_data_len,
    420                                                   UINT8  *p_remote_sap,
    421                                                   UINT32 *p_data_len,
    422                                                   UINT8  *p_data);
    423 
    424 /*******************************************************************************
    425 **
    426 ** Function         LLCP_FlushLogicalLinkRxData
    427 **
    428 ** Description      Discard received data in logical data link of local SAP
    429 **
    430 **
    431 ** Returns          length of data flushed
    432 **
    433 *******************************************************************************/
    434 LLCP_API extern UINT32 LLCP_FlushLogicalLinkRxData (UINT8 local_sap);
    435 
    436 /*******************************************************************************
    437 **
    438 ** Function         LLCP_ConnectReq
    439 **
    440 ** Description      Create data link connection between registered SAP and DSAP
    441 **                  in peer LLCP,
    442 **
    443 **
    444 ** Returns          LLCP_STATUS_SUCCESS if success
    445 **                  LLCP_STATUS_FAIL, otherwise
    446 **
    447 *******************************************************************************/
    448 LLCP_API extern tLLCP_STATUS LLCP_ConnectReq (UINT8 reg_sap, UINT8 dsap,
    449                                               tLLCP_CONNECTION_PARAMS *p_params);
    450 
    451 /*******************************************************************************
    452 **
    453 ** Function         LLCP_ConnectCfm
    454 **
    455 ** Description      Accept connection request from peer LLCP
    456 **
    457 **
    458 ** Returns          LLCP_STATUS_SUCCESS if success
    459 **                  LLCP_STATUS_FAIL, otherwise
    460 **
    461 *******************************************************************************/
    462 LLCP_API extern tLLCP_STATUS LLCP_ConnectCfm (UINT8 local_sap,
    463                                               UINT8 remote_sap,
    464                                               tLLCP_CONNECTION_PARAMS *p_params);
    465 
    466 /*******************************************************************************
    467 **
    468 ** Function         LLCP_ConnectReject
    469 **
    470 ** Description      Reject connection request from peer LLCP
    471 **
    472 **                  reason : LLCP_SAP_DM_REASON_APP_REJECTED
    473 **                           LLCP_SAP_DM_REASON_PERM_REJECT_THIS
    474 **                           LLCP_SAP_DM_REASON_PERM_REJECT_ANY
    475 **                           LLCP_SAP_DM_REASON_TEMP_REJECT_THIS
    476 **                           LLCP_SAP_DM_REASON_TEMP_REJECT_ANY
    477 **
    478 ** Returns          LLCP_STATUS_SUCCESS if success
    479 **                  LLCP_STATUS_FAIL, otherwise
    480 **
    481 *******************************************************************************/
    482 LLCP_API extern tLLCP_STATUS LLCP_ConnectReject (UINT8 local_sap,
    483                                                  UINT8 remote_sap,
    484                                                  UINT8 reason);
    485 
    486 /*******************************************************************************
    487 **
    488 ** Function         LLCP_IsDataLinkCongested
    489 **
    490 ** Description      Check if data link is congested
    491 **
    492 **
    493 ** Returns          TRUE if congested
    494 **
    495 *******************************************************************************/
    496 LLCP_API extern BOOLEAN LLCP_IsDataLinkCongested (UINT8 local_sap,
    497                                                   UINT8 remote_sap,
    498                                                   UINT8 num_pending_i_pdu,
    499                                                   UINT8 total_pending_ui_pdu,
    500                                                   UINT8 total_pending_i_pdu);
    501 
    502 /*******************************************************************************
    503 **
    504 ** Function         LLCP_SendData
    505 **
    506 ** Description      Send connection-oriented data
    507 **
    508 **
    509 ** Returns          LLCP_STATUS_SUCCESS if success
    510 **                  LLCP_STATUS_CONGESTED if data link is congested
    511 **
    512 *******************************************************************************/
    513 LLCP_API extern tLLCP_STATUS LLCP_SendData (UINT8  local_sap,
    514                                             UINT8  remote_sap,
    515                                             BT_HDR *p_buf);
    516 
    517 /*******************************************************************************
    518 **
    519 ** Function         LLCP_ReadDataLinkData
    520 **
    521 ** Description      Read information of I PDU for data link connection
    522 **
    523 **                  - Information of I PDU up to max_data_len is copied into p_data.
    524 **                  - Information of next I PDU is not concatenated.
    525 **                  - Recommended max_data_len is data link connection MIU of local
    526 **                    end point
    527 **
    528 ** Returns          TRUE if more data in queue
    529 **
    530 *******************************************************************************/
    531 LLCP_API extern BOOLEAN LLCP_ReadDataLinkData (UINT8  local_sap,
    532                                                UINT8  remote_sap,
    533                                                UINT32 max_data_len,
    534                                                UINT32 *p_data_len,
    535                                                UINT8  *p_data);
    536 
    537 /*******************************************************************************
    538 **
    539 ** Function         LLCP_FlushDataLinkRxData
    540 **
    541 ** Description      Discard received data in data link connection
    542 **
    543 **
    544 ** Returns          length of rx data flushed
    545 **
    546 *******************************************************************************/
    547 LLCP_API extern UINT32 LLCP_FlushDataLinkRxData (UINT8  local_sap,
    548                                                  UINT8  remote_sap);
    549 
    550 /*******************************************************************************
    551 **
    552 ** Function         LLCP_DisconnectReq
    553 **
    554 ** Description      Disconnect data link
    555 **                  discard any pending data if flush is set to TRUE
    556 **
    557 ** Returns          LLCP_STATUS_SUCCESS if success
    558 **
    559 *******************************************************************************/
    560 LLCP_API extern tLLCP_STATUS LLCP_DisconnectReq (UINT8   local_sap,
    561                                                  UINT8   remote_sap,
    562                                                  BOOLEAN flush);
    563 
    564 /*******************************************************************************
    565 **
    566 ** Function         LLCP_SetTxCompleteNtf
    567 **
    568 ** Description      This function is called to get LLCP_SAP_EVT_TX_COMPLETE
    569 **                  when Tx queue is empty and all PDU is acked.
    570 **                  This is one time event, so upper layer shall call this function
    571 **                  again to get next LLCP_SAP_EVT_TX_COMPLETE.
    572 **
    573 ** Returns          LLCP_STATUS_SUCCESS if success
    574 **
    575 *******************************************************************************/
    576 LLCP_API extern tLLCP_STATUS LLCP_SetTxCompleteNtf (UINT8 local_sap,
    577                                                     UINT8 remote_sap);
    578 
    579 /*******************************************************************************
    580 **
    581 ** Function         LLCP_SetLocalBusyStatus
    582 **
    583 ** Description      Set local busy status
    584 **
    585 **
    586 ** Returns          LLCP_STATUS_SUCCESS if success
    587 **
    588 *******************************************************************************/
    589 LLCP_API extern tLLCP_STATUS LLCP_SetLocalBusyStatus (UINT8   local_sap,
    590                                                       UINT8   remote_sap,
    591                                                       BOOLEAN is_busy);
    592 
    593 /*******************************************************************************
    594 **
    595 ** Function         LLCP_GetRemoteWKS
    596 **
    597 ** Description      Return well-known service bitmap of connected device
    598 **
    599 **
    600 ** Returns          WKS bitmap if success
    601 **
    602 *******************************************************************************/
    603 LLCP_API extern UINT16 LLCP_GetRemoteWKS (void);
    604 
    605 /*******************************************************************************
    606 **
    607 ** Function         LLCP_GetRemoteLSC
    608 **
    609 ** Description      Return link service class of connected device
    610 **
    611 **
    612 ** Returns          link service class
    613 **
    614 *******************************************************************************/
    615 LLCP_API extern UINT8 LLCP_GetRemoteLSC (void);
    616 
    617 /*******************************************************************************
    618 **
    619 ** Function         LLCP_GetLinkMIU
    620 **
    621 ** Description      Return local and remote link MIU
    622 **
    623 **
    624 ** Returns          None
    625 **
    626 *******************************************************************************/
    627 LLCP_API extern void LLCP_GetLinkMIU (UINT16 *p_local_link_miu, UINT16 *p_remote_link_miu);
    628 
    629 /*******************************************************************************
    630 **
    631 ** Function         LLCP_DiscoverService
    632 **
    633 ** Description      Return SAP of service name in connected device through callback
    634 **
    635 **
    636 ** Returns          LLCP_STATUS_SUCCESS if success
    637 **
    638 *******************************************************************************/
    639 LLCP_API extern tLLCP_STATUS LLCP_DiscoverService (char            *p_name,
    640                                                    tLLCP_SDP_CBACK *p_cback,
    641                                                    UINT8           *p_tid);
    642 
    643 /*******************************************************************************
    644 **
    645 ** Function         LLCP_SetTraceLevel
    646 **
    647 ** Description      This function sets the trace level for LLCP.  If called with
    648 **                  a value of 0xFF, it simply returns the current trace level.
    649 **
    650 ** Returns          The new or current trace level
    651 **
    652 *******************************************************************************/
    653 LLCP_API extern UINT8 LLCP_SetTraceLevel (UINT8 new_level);
    654 
    655 /*******************************************************************************
    656 **
    657 ** Function         LLCP_RegisterDtaCback
    658 **
    659 ** Description      Register callback function for LLCP DTA testing
    660 **
    661 **
    662 ** Returns          void
    663 **
    664 *******************************************************************************/
    665 LLCP_API extern void LLCP_RegisterDtaCback (tLLCP_DTA_CBACK *p_dta_cback);
    666 
    667 #if (LLCP_TEST_INCLUDED == TRUE)
    668 /*******************************************************************************
    669 **
    670 ** Function         LLCP_SetTestParams
    671 **
    672 ** Description      Set test parameters for LLCP
    673 **
    674 **
    675 ** Returns          void
    676 **
    677 *******************************************************************************/
    678 LLCP_API extern void LLCP_SetTestParams (UINT8 version, UINT16 wks);
    679 #endif
    680 
    681 #ifdef __cplusplus
    682 }
    683 #endif
    684 
    685 #endif  /* LLCP_API_H */
    686 
    687