source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/ws2bth.h@ 1194

Last change on this file since 1194 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 5.5 KB
Line 
1/**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5
6#include <winapifamily.h>
7
8#ifndef __WS2BTH__H
9#define __WS2BTH__H
10
11#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
12
13#include <bthdef.h>
14#include <bthsdpdef.h>
15#include <pshpack1.h>
16
17#define BT_PORT_ANY ((ULONG)-1)
18#define BT_PORT_MIN 0x1
19#define BT_PORT_MAX 0xffff
20#define BT_PORT_DYN_FIRST 0x1001
21
22#ifndef AF_BTH
23#define AF_BTH 32
24#endif
25
26#ifndef PF_BTH
27#define PF_BTH AF_BTH
28#endif
29
30#ifndef NS_BTH
31#define NS_BTH 16
32#endif
33
34typedef struct _SOCKADDR_BTH {
35 USHORT addressFamily;
36 BTH_ADDR btAddr;
37 GUID serviceClassId;
38 ULONG port;
39} SOCKADDR_BTH,*PSOCKADDR_BTH;
40
41DEFINE_GUID (SVCID_BTH_PROVIDER, 0x6aa63e0, 0x7d60, 0x41ff, 0xaf, 0xb2, 0x3e, 0xe6, 0xd2, 0xd9, 0x39, 0x2d);
42
43#define BTH_ADDR_STRING_SIZE 12
44
45#define BTHPROTO_RFCOMM 0x0003
46#define BTHPROTO_L2CAP 0x0100
47
48#define SOL_RFCOMM BTHPROTO_RFCOMM
49#define SOL_L2CAP BTHPROTO_L2CAP
50#define SOL_SDP 0x0101
51
52#define SO_BTH_AUTHENTICATE 0x80000001
53#define SO_BTH_ENCRYPT 0x00000002
54#define SO_BTH_MTU 0x80000007
55#define SO_BTH_MTU_MAX 0x80000008
56#define SO_BTH_MTU_MIN 0x8000000a
57
58#define RFCOMM_MAX_MTU 0x000003f3
59#define RFCOMM_MIN_MTU 0x00000017
60
61#define BTH_SDP_VERSION 1
62
63typedef struct _BTH_SET_SERVICE {
64 PULONG pSdpVersion;
65 HANDLE *pRecordHandle;
66 ULONG fCodService;
67 ULONG Reserved[5];
68 ULONG ulRecordLength;
69 UCHAR pRecord[1];
70} BTH_SET_SERVICE,*PBTH_SET_SERVICE;
71
72#define SDP_DEFAULT_INQUIRY_SECONDS 6
73#define SDP_MAX_INQUIRY_SECONDS 60
74
75#define SDP_DEFAULT_INQUIRY_MAX_RESPONSES 255
76
77#define SDP_SERVICE_SEARCH_REQUEST 1
78#define SDP_SERVICE_ATTRIBUTE_REQUEST 2
79#define SDP_SERVICE_SEARCH_ATTRIBUTE_REQUEST 3
80
81typedef struct _BTH_QUERY_DEVICE {
82 ULONG LAP;
83 UCHAR length;
84} BTH_QUERY_DEVICE,*PBTH_QUERY_DEVICE;
85typedef struct _BTH_QUERY_SERVICE {
86 ULONG type;
87 ULONG serviceHandle;
88 SdpQueryUuid uuids[MAX_UUIDS_IN_QUERY];
89 ULONG numRange;
90 SdpAttributeRange pRange[1];
91} BTH_QUERY_SERVICE,*PBTH_QUERY_SERVICE;
92
93#define BTHNS_RESULT_DEVICE_CONNECTED 0x00010000
94#define BTHNS_RESULT_DEVICE_REMEMBERED 0x00020000
95#define BTHNS_RESULT_DEVICE_AUTHENTICATED 0x00040000
96
97#define SIO_RFCOMM_SEND_COMMAND _WSAIORW (IOC_VENDOR, 101)
98#define SIO_RFCOMM_WAIT_COMMAND _WSAIORW (IOC_VENDOR, 102)
99
100#define SIO_BTH_PING _WSAIORW (IOC_VENDOR, 8)
101#define SIO_BTH_INFO _WSAIORW (IOC_VENDOR, 9)
102#define SIO_RFCOMM_SESSION_FLOW_OFF _WSAIORW (IOC_VENDOR, 103)
103#define SIO_RFCOMM_TEST _WSAIORW (IOC_VENDOR, 104)
104#define SIO_RFCOMM_USECFC _WSAIORW (IOC_VENDOR, 105)
105
106#ifndef BIT
107#define BIT(b) (1 << (b))
108#endif
109
110#define MSC_EA_BIT EA_BIT
111#define MSC_FC_BIT BIT (1)
112#define MSC_RTC_BIT BIT (2)
113#define MSC_RTR_BIT BIT (3)
114#define MSC_RESERVED (BIT (4)|BIT (5))
115#define MSC_IC_BIT BIT (6)
116#define MSC_DV_BIT BIT (7)
117
118#define MSC_BREAK_BIT BIT (1)
119#define MSC_SET_BREAK_LENGTH (b, l) ((b) = ((b) &0x3) | (((l) &0xf) << 4))
120
121#define RLS_ERROR 0x01
122#define RLS_OVERRUN 0x02
123#define RLS_PARITY 0x04
124#define RLS_FRAMING 0x08
125
126#define RPN_BAUD_2400 0
127#define RPN_BAUD_4800 1
128#define RPN_BAUD_7200 2
129#define RPN_BAUD_9600 3
130#define RPN_BAUD_19200 4
131#define RPN_BAUD_38400 5
132#define RPN_BAUD_57600 6
133#define RPN_BAUD_115200 7
134#define RPN_BAUD_230400 8
135
136#define RPN_DATA_5 0x0
137#define RPN_DATA_6 0x1
138#define RPN_DATA_7 0x2
139#define RPN_DATA_8 0x3
140
141#define RPN_STOP_1 0x0
142#define RPN_STOP_1_5 0x4
143
144#define RPN_PARITY_NONE 0x00
145#define RPN_PARITY_ODD 0x08
146#define RPN_PARITY_EVEN 0x18
147#define RPN_PARITY_MARK 0x28
148#define RPN_PARITY_SPACE 0x38
149
150#define RPN_FLOW_X_IN 0x01
151#define RPN_FLOW_X_OUT 0x02
152#define RPN_FLOW_RTR_IN 0x04
153#define RPN_FLOW_RTR_OUT 0x08
154#define RPN_FLOW_RTC_IN 0x10
155#define RPN_FLOW_RTC_OUT 0x20
156
157#define RPN_PARAM_BAUD 0x01
158#define RPN_PARAM_DATA 0x02
159#define RPN_PARAM_STOP 0x04
160#define RPN_PARAM_PARITY 0x08
161#define RPN_PARAM_P_TYPE 0x10
162#define RPN_PARAM_XON 0x20
163#define RPN_PARAM_XOFF 0x40
164
165#define RPN_PARAM_X_IN 0x01
166#define RPN_PARAM_X_OUT 0x02
167#define RPN_PARAM_RTR_IN 0x04
168#define RPN_PARAM_RTR_OUT 0x08
169#define RPN_PARAM_RTC_IN 0x10
170#define RPN_PARAM_RTC_OUT 0x20
171
172#define RFCOMM_CMD_NONE 0
173#define RFCOMM_CMD_MSC 1
174#define RFCOMM_CMD_RLS 2
175#define RFCOMM_CMD_RPN 3
176#define RFCOMM_CMD_RPN_REQUEST 4
177#define RFCOMM_CMD_RPN_RESPONSE 5
178
179typedef struct _RFCOMM_MSC_DATA {
180 UCHAR Signals;
181 UCHAR Break;
182} RFCOMM_MSC_DATA,*PRFCOMM_MSC_DATA;
183
184typedef struct _RFCOMM_RLS_DATA {
185 UCHAR LineStatus;
186} RFCOMM_RLS_DATA,*PRFCOMM_RLS_DATA;
187
188typedef struct _RFCOMM_RPN_DATA {
189 UCHAR Baud;
190 UCHAR Data;
191 UCHAR FlowControl;
192 UCHAR XonChar;
193 UCHAR XoffChar;
194 UCHAR ParameterMask1;
195 UCHAR ParameterMask2;
196} RFCOMM_RPN_DATA,*PRFCOMM_RPN_DATA;
197
198typedef struct _RFCOMM_COMMAND {
199 ULONG CmdType;
200 union {
201 RFCOMM_MSC_DATA MSC;
202 RFCOMM_RLS_DATA RLS;
203 RFCOMM_RPN_DATA RPN;
204 } Data;
205} RFCOMM_COMMAND,*PRFCOMM_COMMAND;
206
207typedef struct _BTH_PING_REQ {
208 BTH_ADDR btAddr;
209 UCHAR dataLen;
210 UCHAR data[MAX_L2CAP_PING_DATA_LENGTH];
211} BTH_PING_REQ,*PBTH_PING_REQ;
212
213typedef struct _BTH_PING_RSP {
214 UCHAR dataLen;
215 UCHAR data[MAX_L2CAP_PING_DATA_LENGTH];
216} BTH_PING_RSP,*PBTH_PING_RSP;
217
218typedef struct _BTH_INFO_REQ {
219 BTH_ADDR btAddr;
220 USHORT infoType;
221} BTH_INFO_REQ,*PBTH_INFO_REQ;
222
223typedef struct _BTH_INFO_RSP {
224 USHORT result;
225 UCHAR dataLen;
226 __C89_NAMELESS union {
227 USHORT connectionlessMTU;
228 UCHAR data[MAX_L2CAP_INFO_DATA_LENGTH];
229 };
230} BTH_INFO_RSP,*PBTH_INFO_RSP;
231
232typedef struct _BTH_SET_SERVICE BTHNS_SETBLOB,*PBTHNS_SETBLOB;
233typedef struct _BTH_QUERY_DEVICE BTHNS_INQUIRYBLOB,*PBTHNS_INQUIRYBLOB;
234typedef struct _BTH_QUERY_SERVICE BTHNS_RESTRICTIONBLOB,*PBTHNS_RESTRICTIONBLOB;
235
236#include <poppack.h>
237
238#endif
239
240#endif
Note: See TracBrowser for help on using the repository browser.