123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- /**
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER within this package.
- */
- #include <winapifamily.h>
- #ifndef __WS2BTH__H
- #define __WS2BTH__H
- #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
- #include <bthdef.h>
- #include <bthsdpdef.h>
- #include <pshpack1.h>
- #define BT_PORT_ANY ((ULONG)-1)
- #define BT_PORT_MIN 0x1
- #define BT_PORT_MAX 0xffff
- #define BT_PORT_DYN_FIRST 0x1001
- #ifndef AF_BTH
- #define AF_BTH 32
- #endif
- #ifndef PF_BTH
- #define PF_BTH AF_BTH
- #endif
- #ifndef NS_BTH
- #define NS_BTH 16
- #endif
- typedef struct _SOCKADDR_BTH {
- USHORT addressFamily;
- BTH_ADDR btAddr;
- GUID serviceClassId;
- ULONG port;
- } SOCKADDR_BTH,*PSOCKADDR_BTH;
- DEFINE_GUID (SVCID_BTH_PROVIDER, 0x6aa63e0, 0x7d60, 0x41ff, 0xaf, 0xb2, 0x3e, 0xe6, 0xd2, 0xd9, 0x39, 0x2d);
- #define BTH_ADDR_STRING_SIZE 12
- #define BTHPROTO_RFCOMM 0x0003
- #define BTHPROTO_L2CAP 0x0100
- #define SOL_RFCOMM BTHPROTO_RFCOMM
- #define SOL_L2CAP BTHPROTO_L2CAP
- #define SOL_SDP 0x0101
- #define SO_BTH_AUTHENTICATE 0x80000001
- #define SO_BTH_ENCRYPT 0x00000002
- #define SO_BTH_MTU 0x80000007
- #define SO_BTH_MTU_MAX 0x80000008
- #define SO_BTH_MTU_MIN 0x8000000a
- #define RFCOMM_MAX_MTU 0x000003f3
- #define RFCOMM_MIN_MTU 0x00000017
- #define BTH_SDP_VERSION 1
- typedef struct _BTH_SET_SERVICE {
- PULONG pSdpVersion;
- HANDLE *pRecordHandle;
- ULONG fCodService;
- ULONG Reserved[5];
- ULONG ulRecordLength;
- UCHAR pRecord[1];
- } BTH_SET_SERVICE,*PBTH_SET_SERVICE;
- #define SDP_DEFAULT_INQUIRY_SECONDS 6
- #define SDP_MAX_INQUIRY_SECONDS 60
- #define SDP_DEFAULT_INQUIRY_MAX_RESPONSES 255
- #define SDP_SERVICE_SEARCH_REQUEST 1
- #define SDP_SERVICE_ATTRIBUTE_REQUEST 2
- #define SDP_SERVICE_SEARCH_ATTRIBUTE_REQUEST 3
- typedef struct _BTH_QUERY_DEVICE {
- ULONG LAP;
- UCHAR length;
- } BTH_QUERY_DEVICE,*PBTH_QUERY_DEVICE;
- typedef struct _BTH_QUERY_SERVICE {
- ULONG type;
- ULONG serviceHandle;
- SdpQueryUuid uuids[MAX_UUIDS_IN_QUERY];
- ULONG numRange;
- SdpAttributeRange pRange[1];
- } BTH_QUERY_SERVICE,*PBTH_QUERY_SERVICE;
- #define BTHNS_RESULT_DEVICE_CONNECTED 0x00010000
- #define BTHNS_RESULT_DEVICE_REMEMBERED 0x00020000
- #define BTHNS_RESULT_DEVICE_AUTHENTICATED 0x00040000
- #define SIO_RFCOMM_SEND_COMMAND _WSAIORW (IOC_VENDOR, 101)
- #define SIO_RFCOMM_WAIT_COMMAND _WSAIORW (IOC_VENDOR, 102)
- #define SIO_BTH_PING _WSAIORW (IOC_VENDOR, 8)
- #define SIO_BTH_INFO _WSAIORW (IOC_VENDOR, 9)
- #define SIO_RFCOMM_SESSION_FLOW_OFF _WSAIORW (IOC_VENDOR, 103)
- #define SIO_RFCOMM_TEST _WSAIORW (IOC_VENDOR, 104)
- #define SIO_RFCOMM_USECFC _WSAIORW (IOC_VENDOR, 105)
- #ifndef BIT
- #define BIT(b) (1 << (b))
- #endif
- #define MSC_EA_BIT EA_BIT
- #define MSC_FC_BIT BIT (1)
- #define MSC_RTC_BIT BIT (2)
- #define MSC_RTR_BIT BIT (3)
- #define MSC_RESERVED (BIT (4)|BIT (5))
- #define MSC_IC_BIT BIT (6)
- #define MSC_DV_BIT BIT (7)
- #define MSC_BREAK_BIT BIT (1)
- #define MSC_SET_BREAK_LENGTH (b, l) ((b) = ((b) &0x3) | (((l) &0xf) << 4))
- #define RLS_ERROR 0x01
- #define RLS_OVERRUN 0x02
- #define RLS_PARITY 0x04
- #define RLS_FRAMING 0x08
- #define RPN_BAUD_2400 0
- #define RPN_BAUD_4800 1
- #define RPN_BAUD_7200 2
- #define RPN_BAUD_9600 3
- #define RPN_BAUD_19200 4
- #define RPN_BAUD_38400 5
- #define RPN_BAUD_57600 6
- #define RPN_BAUD_115200 7
- #define RPN_BAUD_230400 8
- #define RPN_DATA_5 0x0
- #define RPN_DATA_6 0x1
- #define RPN_DATA_7 0x2
- #define RPN_DATA_8 0x3
- #define RPN_STOP_1 0x0
- #define RPN_STOP_1_5 0x4
- #define RPN_PARITY_NONE 0x00
- #define RPN_PARITY_ODD 0x08
- #define RPN_PARITY_EVEN 0x18
- #define RPN_PARITY_MARK 0x28
- #define RPN_PARITY_SPACE 0x38
- #define RPN_FLOW_X_IN 0x01
- #define RPN_FLOW_X_OUT 0x02
- #define RPN_FLOW_RTR_IN 0x04
- #define RPN_FLOW_RTR_OUT 0x08
- #define RPN_FLOW_RTC_IN 0x10
- #define RPN_FLOW_RTC_OUT 0x20
- #define RPN_PARAM_BAUD 0x01
- #define RPN_PARAM_DATA 0x02
- #define RPN_PARAM_STOP 0x04
- #define RPN_PARAM_PARITY 0x08
- #define RPN_PARAM_P_TYPE 0x10
- #define RPN_PARAM_XON 0x20
- #define RPN_PARAM_XOFF 0x40
- #define RPN_PARAM_X_IN 0x01
- #define RPN_PARAM_X_OUT 0x02
- #define RPN_PARAM_RTR_IN 0x04
- #define RPN_PARAM_RTR_OUT 0x08
- #define RPN_PARAM_RTC_IN 0x10
- #define RPN_PARAM_RTC_OUT 0x20
- #define RFCOMM_CMD_NONE 0
- #define RFCOMM_CMD_MSC 1
- #define RFCOMM_CMD_RLS 2
- #define RFCOMM_CMD_RPN 3
- #define RFCOMM_CMD_RPN_REQUEST 4
- #define RFCOMM_CMD_RPN_RESPONSE 5
- typedef struct _RFCOMM_MSC_DATA {
- UCHAR Signals;
- UCHAR Break;
- } RFCOMM_MSC_DATA,*PRFCOMM_MSC_DATA;
- typedef struct _RFCOMM_RLS_DATA {
- UCHAR LineStatus;
- } RFCOMM_RLS_DATA,*PRFCOMM_RLS_DATA;
- typedef struct _RFCOMM_RPN_DATA {
- UCHAR Baud;
- UCHAR Data;
- UCHAR FlowControl;
- UCHAR XonChar;
- UCHAR XoffChar;
- UCHAR ParameterMask1;
- UCHAR ParameterMask2;
- } RFCOMM_RPN_DATA,*PRFCOMM_RPN_DATA;
- typedef struct _RFCOMM_COMMAND {
- ULONG CmdType;
- union {
- RFCOMM_MSC_DATA MSC;
- RFCOMM_RLS_DATA RLS;
- RFCOMM_RPN_DATA RPN;
- } Data;
- } RFCOMM_COMMAND,*PRFCOMM_COMMAND;
- typedef struct _BTH_PING_REQ {
- BTH_ADDR btAddr;
- UCHAR dataLen;
- UCHAR data[MAX_L2CAP_PING_DATA_LENGTH];
- } BTH_PING_REQ,*PBTH_PING_REQ;
- typedef struct _BTH_PING_RSP {
- UCHAR dataLen;
- UCHAR data[MAX_L2CAP_PING_DATA_LENGTH];
- } BTH_PING_RSP,*PBTH_PING_RSP;
- typedef struct _BTH_INFO_REQ {
- BTH_ADDR btAddr;
- USHORT infoType;
- } BTH_INFO_REQ,*PBTH_INFO_REQ;
- typedef struct _BTH_INFO_RSP {
- USHORT result;
- UCHAR dataLen;
- __C89_NAMELESS union {
- USHORT connectionlessMTU;
- UCHAR data[MAX_L2CAP_INFO_DATA_LENGTH];
- };
- } BTH_INFO_RSP,*PBTH_INFO_RSP;
- typedef struct _BTH_SET_SERVICE BTHNS_SETBLOB,*PBTHNS_SETBLOB;
- typedef struct _BTH_QUERY_DEVICE BTHNS_INQUIRYBLOB,*PBTHNS_INQUIRYBLOB;
- typedef struct _BTH_QUERY_SERVICE BTHNS_RESTRICTIONBLOB,*PBTHNS_RESTRICTIONBLOB;
- #include <poppack.h>
- #endif
- #endif
|