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