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