16ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach/****************************************************************************** 26ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 36ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * Copyright (C) 1999-2012 Broadcom Corporation 46ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 56ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * Licensed under the Apache License, Version 2.0 (the "License"); 66ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * you may not use this file except in compliance with the License. 76ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * You may obtain a copy of the License at: 86ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 96ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * http://www.apache.org/licenses/LICENSE-2.0 106ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 116ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * Unless required by applicable law or agreed to in writing, software 126ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * distributed under the License is distributed on an "AS IS" BASIS, 136ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 146ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * See the License for the specific language governing permissions and 156ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * limitations under the License. 166ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 176ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach ******************************************************************************/ 186ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach 196ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach/****************************************************************************** 206ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 216ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * this file contains the PORT API definitions 226ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach * 236ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach ******************************************************************************/ 24e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#ifndef PORT_API_H 25e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_API_H 26e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 27e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#include "bt_target.h" 28e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 29e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 30e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Constants and Types 31e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 32e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 3366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* 3466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Define port settings structure send from the application in the 35e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** set settings request, or to the application in the set settings indication. 36e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 3766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct 38e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 39e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 40e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BAUD_RATE_2400 0x00 41e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BAUD_RATE_4800 0x01 42e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BAUD_RATE_7200 0x02 43e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BAUD_RATE_9600 0x03 44e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BAUD_RATE_19200 0x04 45e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BAUD_RATE_38400 0x05 46e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BAUD_RATE_57600 0x06 47e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BAUD_RATE_115200 0x07 48e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BAUD_RATE_230400 0x08 49e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 50e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 baud_rate; 51e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 52e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_5_BITS 0x00 53e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_6_BITS 0x01 54e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_7_BITS 0x02 55e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_8_BITS 0x03 56e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 57e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 byte_size; 58e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 59e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_ONESTOPBIT 0x00 60e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_ONE5STOPBITS 0x01 61e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 stop_bits; 62e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 63e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_PARITY_NO 0x00 64e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_PARITY_YES 0x01 65e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 parity; 66e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 67e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_ODD_PARITY 0x00 68e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EVEN_PARITY 0x01 69e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_MARK_PARITY 0x02 70e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_SPACE_PARITY 0x03 71e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 72e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 parity_type; 73e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 74e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_FC_OFF 0x00 75e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_FC_XONXOFF_ON_INPUT 0x01 76e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_FC_XONXOFF_ON_OUTPUT 0x02 77e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_FC_CTS_ON_INPUT 0x04 78e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_FC_CTS_ON_OUTPUT 0x08 79e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_FC_DSR_ON_INPUT 0x10 80e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_FC_DSR_ON_OUTPUT 0x20 81e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 82e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 fc_type; 83e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 84e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 rx_char1; 85e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 86e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_XON_DC1 0x11 87e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 xon_char; 88e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 89e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_XOFF_DC3 0x13 90e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT8 xoff_char; 91e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 92e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tPORT_STATE; 93e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 94e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 9566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* 96e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Define the callback function prototypes. Parameters are specific 9766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** to each event and are described bellow 98e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 99e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef int (tPORT_DATA_CALLBACK) (UINT16 port_handle, void *p_data, UINT16 len); 10066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani 10166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#define DATA_CO_CALLBACK_TYPE_INCOMING 1 10266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#define DATA_CO_CALLBACK_TYPE_OUTGOING_SIZE 2 10366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#define DATA_CO_CALLBACK_TYPE_OUTGOING 3 10466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef int (tPORT_DATA_CO_CALLBACK) (UINT16 port_handle, UINT8* p_buf, UINT16 len, int type); 10566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani 106e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef void (tPORT_CALLBACK) (UINT32 code, UINT16 port_handle); 107e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 108e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* 109e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Define events that registered application can receive in the callback 110e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 111e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 112e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_RXCHAR 0x00000001 /* Any Character received */ 113e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_RXFLAG 0x00000002 /* Received certain character */ 114e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_TXEMPTY 0x00000004 /* Transmitt Queue Empty */ 115e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_CTS 0x00000008 /* CTS changed state */ 116e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_DSR 0x00000010 /* DSR changed state */ 117e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_RLSD 0x00000020 /* RLSD changed state */ 118e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_BREAK 0x00000040 /* BREAK received */ 119e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_ERR 0x00000080 /* Line status error occurred */ 120e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_RING 0x00000100 /* Ring signal detected */ 121e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_CTSS 0x00000400 /* CTS state */ 122e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_DSRS 0x00000800 /* DSR state */ 123e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_RLSDS 0x00001000 /* RLSD state */ 124e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_OVERRUN 0x00002000 /* receiver buffer overrun */ 125e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_TXCHAR 0x00004000 /* Any character transmitted */ 126e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 127e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_CONNECTED 0x00000200 /* RFCOMM connection established */ 128e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_CONNECT_ERR 0x00008000 /* Was not able to establish connection */ 129e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach /* or disconnected */ 130e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_FC 0x00010000 /* data flow enabled flag changed by remote */ 131e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_EV_FCS 0x00020000 /* data flow enable status true = enabled */ 132e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 133e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* 13466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** To register for events application should provide bitmask with 135e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** corresponding bit set 136e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 137e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 138e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_MASK_ALL (PORT_EV_RXCHAR | PORT_EV_TXEMPTY | PORT_EV_CTS | \ 139e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach PORT_EV_DSR | PORT_EV_RLSD | PORT_EV_BREAK | \ 140e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach PORT_EV_ERR | PORT_EV_RING | PORT_EV_CONNECT_ERR | \ 141e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach PORT_EV_DSRS | PORT_EV_CTSS | PORT_EV_RLSDS | \ 142e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach PORT_EV_RXFLAG | PORT_EV_TXCHAR | PORT_EV_OVERRUN | \ 143e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach PORT_EV_FC | PORT_EV_FCS | PORT_EV_CONNECTED) 144e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 145e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 146e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* 14766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Define port result codes 148e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 149e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_SUCCESS 0 150e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 151e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_ERR_BASE 0 152e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 153e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_UNKNOWN_ERROR (PORT_ERR_BASE + 1) 154e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_ALREADY_OPENED (PORT_ERR_BASE + 2) 155e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_CMD_PENDING (PORT_ERR_BASE + 3) 156e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_APP_NOT_REGISTERED (PORT_ERR_BASE + 4) 157e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_NO_MEM (PORT_ERR_BASE + 5) 158e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_NO_RESOURCES (PORT_ERR_BASE + 6) 159e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BAD_BD_ADDR (PORT_ERR_BASE + 7) 160e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BAD_HANDLE (PORT_ERR_BASE + 9) 161e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_NOT_OPENED (PORT_ERR_BASE + 10) 162e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_LINE_ERR (PORT_ERR_BASE + 11) 163e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_START_FAILED (PORT_ERR_BASE + 12) 164e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_PAR_NEG_FAILED (PORT_ERR_BASE + 13) 165e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_PORT_NEG_FAILED (PORT_ERR_BASE + 14) 166e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_SEC_FAILED (PORT_ERR_BASE + 15) 167e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_PEER_CONNECTION_FAILED (PORT_ERR_BASE + 16) 168e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_PEER_FAILED (PORT_ERR_BASE + 17) 169e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_PEER_TIMEOUT (PORT_ERR_BASE + 18) 170e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_CLOSED (PORT_ERR_BASE + 19) 171e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_TX_FULL (PORT_ERR_BASE + 20) 172e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_LOCAL_CLOSED (PORT_ERR_BASE + 21) 173e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_LOCAL_TIMEOUT (PORT_ERR_BASE + 22) 174e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_TX_QUEUE_DISABLED (PORT_ERR_BASE + 23) 175e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_PAGE_TIMEOUT (PORT_ERR_BASE + 24) 176e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_INVALID_SCN (PORT_ERR_BASE + 25) 177e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 178e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 179e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/***************************************************************************** 180e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** External Function Declarations 181e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*****************************************************************************/ 182e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#ifdef __cplusplus 183e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachextern "C" 184e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 185e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 186e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 187e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 188e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 189e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function RFCOMM_CreateConnection 190e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 19166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Description RFCOMM_CreateConnection function is used from the application 19266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** to establish serial port connection to the peer device, 19366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** or allow RFCOMM to accept a connection from the peer 19466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** application. 195e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 19666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: scn - Service Channel Number as registered with 19766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** the SDP (server) or obtained using SDP from 198e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the peer device (client). 199e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** is_server - TRUE if requesting application is a server 200e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** mtu - Maximum frame size the application can accept 201e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** bd_addr - BD_ADDR of the peer (client) 20266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** mask - specifies events to be enabled. A value 203e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** of zero disables all events. 204e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_handle - OUT pointer to the handle. 205e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_mgmt_cb - pointer to callback function to receive 206e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** connection up/down events. 207e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Notes: 208e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 209e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Server can call this function with the same scn parameter multiple times if 210e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** it is ready to accept multiple simulteneous connections. 211e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 212e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** DLCI for the connection is (scn * 2 + 1) if client originates connection on 213e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** existing none initiator multiplexer channel. Otherwise it is (scn * 2). 214e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** For the server DLCI can be changed later if client will be calling it using 215e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** (scn * 2 + 1) dlci. 216e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 217e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 218e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int RFCOMM_CreateConnection (UINT16 uuid, UINT8 scn, 219e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BOOLEAN is_server, UINT16 mtu, 220e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach BD_ADDR bd_addr, UINT16 *p_handle, 221e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tPORT_CALLBACK *p_mgmt_cb); 222e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 223e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 224e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 225e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 226e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function RFCOMM_RemoveConnection 227e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 228e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to close the specified connection. 229e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 230e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: handle - Handle of the port returned in the Open 231e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 232e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 233e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int RFCOMM_RemoveConnection (UINT16 handle); 234e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 235e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 236e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 237e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 238e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function RFCOMM_RemoveServer 239e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 240e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to close the server port. 241e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 24266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 243e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 244e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 245e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int RFCOMM_RemoveServer (UINT16 handle); 246e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 247e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 248e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 249e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 250e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_SetEventCallback 251e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 252e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Set event callback the specified connection. 253e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 254e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: handle - Handle of the port returned in the Open 25566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** p_callback - address of the callback function which should 25666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** be called from the RFCOMM when an event 257e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** specified in the mask occurs. 258e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 259e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 260e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_SetEventCallback (UINT16 port_handle, 261e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tPORT_CALLBACK *p_port_cb); 262e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 263e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 264e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 265e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 266e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_SetEventCallback 267e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 268e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Set event data callback the specified connection. 269e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 270e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: handle - Handle of the port returned in the Open 27166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** p_callback - address of the callback function which should 27266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** be called from the RFCOMM when a data 273e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** packet is received. 274e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 275e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 276e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_SetDataCallback (UINT16 port_handle, 277e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tPORT_DATA_CALLBACK *p_cb); 278e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 27966aa5171e4e7c9f942971a30419c03134e67a4a4Harish ParyaniRFC_API extern int PORT_SetDataCOCallback (UINT16 port_handle, tPORT_DATA_CO_CALLBACK *p_port_cb); 280e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 281e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 282e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_SetEventMask 283e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 284e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to close the specified connection. 285e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 286e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: handle - Handle of the port returned in the Open 28766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** mask - specifies events to be enabled. A value 288e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** of zero disables all events. 289e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 290e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 291e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_SetEventMask (UINT16 port_handle, UINT32 mask); 292e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 293e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 294e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 295e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 296e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_CheckConnection 297e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 298e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function returns PORT_SUCCESS if connection referenced 299e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** by handle is up and running 300e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 301e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: handle - Handle of the port returned in the Open 302e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** bd_addr - OUT bd_addr of the peer 303e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_lcid - OUT L2CAP's LCID 304e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 305e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 306e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_CheckConnection (UINT16 handle, BD_ADDR bd_addr, 307e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 *p_lcid); 308e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 309e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 310e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 311e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_IsOpening 312e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 313e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function returns TRUE if there is any RFCOMM connection 314e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** opening in process. 315e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 316e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: TRUE if any connection opening is found 317e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** bd_addr - bd_addr of the peer 318e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 319e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 320e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern BOOLEAN PORT_IsOpening (BD_ADDR bd_addr); 321e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 322e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 323e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 324e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_SetState 325e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 32666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Description This function configures connection according to the 327e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** specifications in the tPORT_STATE structure. 328e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 32966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 33066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** p_settings - Pointer to a tPORT_STATE structure containing 331e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** configuration information for the connection. 332e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 333e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 334e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_SetState (UINT16 handle, tPORT_STATE *p_settings); 335e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 336e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 337e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 338e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_GetRxQueueCnt 339e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 340e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function return number of buffers on the rx queue. 341e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 34266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 343e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_rx_queue_count - Pointer to return queue count in. 344e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 345e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 346e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_GetRxQueueCnt (UINT16 handle, UINT16 *p_rx_queue_count); 347e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 348e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 349e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 350e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_GetState 351e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 352e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to fill tPORT_STATE structure 353e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** with the current control settings for the port 354e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 35566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 356e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_settings - Pointer to a tPORT_STATE structure in which 357e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** configuration information is returned. 358e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 359e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 360e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_GetState (UINT16 handle, tPORT_STATE *p_settings); 361e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 362e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 363e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 364e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 365e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_Control 366e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 36766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Description This function directs a specified connection to pass control 368e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** control information to the peer device. 369e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 37066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 371e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** signal - specify the function to be passed 372e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 373e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 374e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_SET_DTRDSR 0x01 375e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_CLR_DTRDSR 0x02 376e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_SET_CTSRTS 0x03 377e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_CLR_CTSRTS 0x04 378e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_SET_RI 0x05 /* DCE only */ 379e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_CLR_RI 0x06 /* DCE only */ 380e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_SET_DCD 0x07 /* DCE only */ 381e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_CLR_DCD 0x08 /* DCE only */ 382e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_BREAK 0x09 /* Break event */ 383e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 384e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_Control (UINT16 handle, UINT8 signal); 385e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 386e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 387e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 388e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 389e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_FlowControl 390e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 39166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Description This function directs a specified connection to pass 39266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** flow control message to the peer device. Enable flag passed 393e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** shows if port can accept more data. 394e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 39566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 396e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** enable - enables data flow 397e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 398e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 399e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_FlowControl (UINT16 handle, BOOLEAN enable); 400e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 401e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 402e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 403e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 404e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_GetModemStatus 405e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 40666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Description This function retrieves modem control signals. Normally 40766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** application will call this function after a callback 40866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** function is called with notification that one of signals 409e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** has been changed. 410e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 41166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 412e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** callback. 413e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_signal - specify the pointer to control signals info 414e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 415e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 416e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_DTRDSR_ON 0x01 417e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_CTSRTS_ON 0x02 418e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_RING_ON 0x04 419e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_DCD_ON 0x08 420e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 421e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/* 422e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Define default initial local modem signals state set after connection established 423e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*/ 424e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_OBEX_DEFAULT_SIGNAL_STATE (PORT_DTRDSR_ON | PORT_CTSRTS_ON | PORT_DCD_ON) 425e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_SPP_DEFAULT_SIGNAL_STATE (PORT_DTRDSR_ON | PORT_CTSRTS_ON | PORT_DCD_ON) 426e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_PPP_DEFAULT_SIGNAL_STATE (PORT_DTRDSR_ON | PORT_CTSRTS_ON | PORT_DCD_ON) 427e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_DUN_DEFAULT_SIGNAL_STATE (PORT_DTRDSR_ON | PORT_CTSRTS_ON) 428e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 429e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_GetModemStatus (UINT16 handle, UINT8 *p_control_signal); 430e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 431e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 432e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 433e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 434e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_ClearError 435e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 436e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function retreives information about a communications 43766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** error and reports current status of a connection. The 438e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** function should be called when an error occures to clear 439e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** the connection error flag and to enable additional read 440e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** and write operations. 441e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 44266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 443e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_errors - pointer of the variable to receive error codes 44466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** p_status - pointer to the tPORT_STATUS structur to receive 445e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** connection status 446e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 447e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 448e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 449e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_ERR_BREAK 0x01 /* Break condition occured on the peer device */ 450e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_ERR_OVERRUN 0x02 /* Overrun is reported by peer device */ 451e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_ERR_FRAME 0x04 /* Framing error reported by peer device */ 452e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_ERR_RXOVER 0x08 /* Input queue overflow occured */ 453e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_ERR_TXFULL 0x10 /* Output queue overflow occured */ 454e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 455e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbachtypedef struct 456e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach{ 457e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_FLAG_CTS_HOLD 0x01 /* Tx is waiting for CTS signal */ 458e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_FLAG_DSR_HOLD 0x02 /* Tx is waiting for DSR signal */ 459e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_FLAG_RLSD_HOLD 0x04 /* Tx is waiting for RLSD signal */ 460e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 461e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 flags; 462e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 in_queue_size; /* Number of bytes in the input queue */ 463e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 out_queue_size; /* Number of bytes in the output queue */ 464e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 mtu_size; /* peer MTU size */ 465e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} tPORT_STATUS; 466e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 467e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 468e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_ClearError (UINT16 handle, UINT16 *p_errors, 469e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach tPORT_STATUS *p_status); 470e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 471e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 472e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 473e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 474e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_SendError 475e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 476e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function send a communications error to the peer device 477e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 47866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 479e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** errors - receive error codes 480e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 481e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 482e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_SendError (UINT16 handle, UINT8 errors); 483e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 484e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 485e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 486e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 487e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_GetQueueStatus 488e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 48966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Description This function reports current status of a connection. 490e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 49166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 49266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** p_status - pointer to the tPORT_STATUS structur to receive 493e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** connection status 494e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 495e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 496e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_GetQueueStatus (UINT16 handle, tPORT_STATUS *p_status); 497e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 498e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 499e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 500e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 501e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_Purge 502e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 50366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Description This function discards all the data from the output or 504e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** input queues of the specified connection. 505e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 50666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 50766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** purge_flags - specify the action to take. 508e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 509e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 510e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_PURGE_TXCLEAR 0x01 511e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#define PORT_PURGE_RXCLEAR 0x02 512e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 513e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_Purge (UINT16 handle, UINT8 purge_flags); 514e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 515e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 516e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 517e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 518e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_Read 519e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 52066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Description This function returns the pointer to the buffer received 52166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** from the peer device. Normally application will call this 52266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** function after receiving PORT_EVT_RXCHAR event. 523e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Application calling this function is responsible to free 524e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** buffer returned. 525e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 52666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 527e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** callback. 52866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** pp_buf - pointer to address of buffer with data, 529e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 530e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 531e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_Read (UINT16 handle, BT_HDR **pp_buf); 532e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 533e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 534e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 535e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 536e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_ReadData 537e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 538e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Normally application will call this function after receiving 539e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** PORT_EVT_RXCHAR event. 540e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 54166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 542e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** callback. 543e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_data - Data area 544e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** max_len - Byte count requested 545e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_len - Byte count received 546e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 547e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 548e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_ReadData (UINT16 handle, char *p_data, UINT16 max_len, 549e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 *p_len); 550e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 551e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 552e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 553e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 554e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_Write 555e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 556e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function to send BT buffer to the peer device. 557e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Application should not free the buffer. 558e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 55966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 56066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** p_buf - pointer to the buffer with data, 561e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 562e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 563e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_Write (UINT16 handle, BT_HDR *p_buf); 564e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 565e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 566e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 567e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 568e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_WriteData 569e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 57066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Description This function is called from the legacy application to 57166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** send data. 572e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 57366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 574e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_data - Data area 575e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** max_len - Byte count to write 576e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_len - Bytes written 577e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 578e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 579e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_WriteData (UINT16 handle, char *p_data, UINT16 max_len, 580e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach UINT16 *p_len); 581e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 58266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/******************************************************************************* 58366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** 58466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Function PORT_WriteDataCO 58566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** 58666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Description Normally not GKI aware application will call this function 58766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** to send data to the port by callout functions. 58866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** 58966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 59066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani** 59166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani*******************************************************************************/ 59266aa5171e4e7c9f942971a30419c03134e67a4a4Harish ParyaniRFC_API extern int PORT_WriteDataCO (UINT16 handle, int* p_len); 593e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 594e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 595e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 596e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_Test 597e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 598e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description Application can call this function to send RFCOMM Test frame 599e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 600e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Parameters: handle - Handle returned in the RFCOMM_CreateConnection 601e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** p_data - Data area 602e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** max_len - Byte count requested 603e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 604e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 605e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern int PORT_Test (UINT16 handle, UINT8 *p_data, UINT16 len); 606e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 607e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 608e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 609e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 610e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function RFCOMM_Init 611e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 612e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function is called to initialize RFCOMM layer 613e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 614e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 615e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern void RFCOMM_Init (void); 616e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 617e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 618e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach/******************************************************************************* 619e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 620e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Function PORT_SetTraceLevel 621e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 622e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Description This function sets the trace level for RFCOMM. If called with 623e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** a value of 0xFF, it simply reads the current trace level. 624e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 625e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** Returns the new (current) trace level 626e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach** 627e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach*******************************************************************************/ 628e448862a47c08eb23185aaed574b39264f5005fcAndre EisenbachRFC_API extern UINT8 PORT_SetTraceLevel (UINT8 new_level); 629e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 630e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 631e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#ifdef __cplusplus 632e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach} 633e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif 634e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach 635e448862a47c08eb23185aaed574b39264f5005fcAndre Eisenbach#endif /* PORT_API_H */ 636