1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef __AFIRDA__ 7 #define __AFIRDA__ 8 9 #ifdef __LP64__ 10 #pragma push_macro("u_long") 11 #undef u_long 12 #define u_long __ms_u_long 13 #endif 14 15 #include <_bsd_types.h> 16 17 #define WINDOWS_AF_IRDA 26 18 #define WINDOWS_PF_IRDA WINDOWS_AF_IRDA 19 20 #define WCE_AF_IRDA 22 21 #define WCE_PF_IRDA WCE_AF_IRDA 22 23 #ifndef AF_IRDA 24 #define AF_IRDA WINDOWS_AF_IRDA 25 #endif 26 #define IRDA_PROTO_SOCK_STREAM 1 27 28 #define PF_IRDA AF_IRDA 29 30 #define SOL_IRLMP 0x00FF 31 32 #define IRLMP_ENUMDEVICES 0x00000010 33 #define IRLMP_IAS_SET 0x00000011 34 #define IRLMP_IAS_QUERY 0x00000012 35 36 #define IRLMP_SEND_PDU_LEN 0x00000013 37 #define IRLMP_EXCLUSIVE_MODE 0x00000014 38 #define IRLMP_IRLPT_MODE 0x00000015 39 #define IRLMP_9WIRE_MODE 0x00000016 40 41 #define IRLMP_TINYTP_MODE 0x00000017 42 #define IRLMP_PARAMETERS 0x00000018 43 #define IRLMP_DISCOVERY_MODE 0x00000019 44 45 #define IRLMP_SHARP_MODE 0x00000020 46 47 #define SIO_LAZY_DISCOVERY _IOR('t',127,u_long) 48 49 #define IAS_ATTRIB_NO_CLASS 0x00000010 50 #define IAS_ATTRIB_NO_ATTRIB 0x00000000 51 #define IAS_ATTRIB_INT 0x00000001 52 #define IAS_ATTRIB_OCTETSEQ 0x00000002 53 #define IAS_ATTRIB_STR 0x00000003 54 55 #define IAS_MAX_USER_STRING 256 56 #define IAS_MAX_OCTET_STRING 1024 57 #define IAS_MAX_CLASSNAME 64 58 #define IAS_MAX_ATTRIBNAME 256 59 60 enum { 61 LM_HB_Extension = 128,LM_HB1_PnP = 1,LM_HB1_PDA_Palmtop = 2,LM_HB1_Computer = 4,LM_HB1_Printer = 8,LM_HB1_Modem = 16,LM_HB1_Fax = 32, 62 LM_HB1_LANAccess = 64,LM_HB2_Telephony = 1,LM_HB2_FileServer = 2, 63 }; 64 65 #define LmCharSetASCII 0 66 #define LmCharSetISO_8859_1 1 67 #define LmCharSetISO_8859_2 2 68 #define LmCharSetISO_8859_3 3 69 #define LmCharSetISO_8859_4 4 70 #define LmCharSetISO_8859_5 5 71 #define LmCharSetISO_8859_6 6 72 #define LmCharSetISO_8859_7 7 73 #define LmCharSetISO_8859_8 8 74 #define LmCharSetISO_8859_9 9 75 #define LmCharSetUNICODE 0xff 76 77 typedef u_long LM_BAUD_RATE; 78 79 #define LM_BAUD_1200 1200 80 #define LM_BAUD_2400 2400 81 #define LM_BAUD_9600 9600 82 #define LM_BAUD_19200 19200 83 #define LM_BAUD_38400 38400 84 #define LM_BAUD_57600 57600 85 #define LM_BAUD_115200 115200 86 #define LM_BAUD_576K 576000 87 #define LM_BAUD_1152K 1152000 88 #define LM_BAUD_4M 4000000 89 90 typedef struct { 91 u_long nTXDataBytes; 92 u_long nRXDataBytes; 93 LM_BAUD_RATE nBaudRate; 94 u_long thresholdTime; 95 u_long discTime; 96 u_short nMSLinkTurn; 97 u_char nTXPackets; 98 u_char nRXPackets; 99 } LM_IRPARMS,*PLM_IRPARMS; 100 101 typedef struct _SOCKADDR_IRDA { 102 u_short irdaAddressFamily; 103 u_char irdaDeviceID[4]; 104 char irdaServiceName[25]; 105 } SOCKADDR_IRDA,*PSOCKADDR_IRDA,*LPSOCKADDR_IRDA; 106 107 typedef struct _WINDOWS_IRDA_DEVICE_INFO { 108 u_char irdaDeviceID[4]; 109 char irdaDeviceName[22]; 110 u_char irdaDeviceHints1; 111 u_char irdaDeviceHints2; 112 u_char irdaCharSet; 113 } WINDOWS_IRDA_DEVICE_INFO,*PWINDOWS_IRDA_DEVICE_INFO,*LPWINDOWS_IRDA_DEVICE_INFO; 114 115 typedef struct _WCE_IRDA_DEVICE_INFO { 116 u_char irdaDeviceID[4]; 117 char irdaDeviceName[22]; 118 u_char Reserved[2]; 119 } WCE_IRDA_DEVICE_INFO,*PWCE_IRDA_DEVICE_INFO; 120 121 typedef WINDOWS_IRDA_DEVICE_INFO IRDA_DEVICE_INFO,*PIRDA_DEVICE_INFO,*LPIRDA_DEVICE_INFO; 122 123 typedef struct _WINDOWS_DEVICELIST { 124 ULONG numDevice; 125 WINDOWS_IRDA_DEVICE_INFO Device[1]; 126 } WINDOWS_DEVICELIST,*PWINDOWS_DEVICELIST,*LPWINDOWS_DEVICELIST; 127 128 typedef struct _WCE_DEVICELIST { 129 ULONG numDevice; 130 WCE_IRDA_DEVICE_INFO Device[1]; 131 } WCE_DEVICELIST,*PWCE_DEVICELIST; 132 133 typedef WINDOWS_DEVICELIST DEVICELIST,*PDEVICELIST,*LPDEVICELIST; 134 135 typedef struct _WINDOWS_IAS_SET { 136 char irdaClassName[IAS_MAX_CLASSNAME]; 137 char irdaAttribName[IAS_MAX_ATTRIBNAME]; 138 u_long irdaAttribType; 139 union { 140 LONG irdaAttribInt; 141 struct { 142 u_short Len; 143 u_char OctetSeq[IAS_MAX_OCTET_STRING]; 144 } irdaAttribOctetSeq; 145 struct { 146 u_char Len; 147 u_char CharSet; 148 u_char UsrStr[IAS_MAX_USER_STRING]; 149 } irdaAttribUsrStr; 150 } irdaAttribute; 151 } WINDOWS_IAS_SET,*PWINDOWS_IAS_SET,*LPWINDOWS_IAS_SET; 152 153 typedef struct _WINDOWS_IAS_QUERY { 154 u_char irdaDeviceID[4]; 155 char irdaClassName[IAS_MAX_CLASSNAME]; 156 char irdaAttribName[IAS_MAX_ATTRIBNAME]; 157 u_long irdaAttribType; 158 union { 159 LONG irdaAttribInt; 160 struct { 161 u_long Len; 162 u_char OctetSeq[IAS_MAX_OCTET_STRING]; 163 } irdaAttribOctetSeq; 164 struct { 165 u_long Len; 166 u_long CharSet; 167 u_char UsrStr[IAS_MAX_USER_STRING]; 168 } irdaAttribUsrStr; 169 } irdaAttribute; 170 } WINDOWS_IAS_QUERY,*PWINDOWS_IAS_QUERY,*LPWINDOWS_IAS_QUERY; 171 172 typedef struct _WCE_IAS_SET { 173 char irdaClassName[61]; 174 char irdaAttribName[61]; 175 u_short irdaAttribType; 176 union { 177 int irdaAttribInt; 178 struct { 179 int Len; 180 u_char OctetSeq[1]; 181 u_char Reserved[3]; 182 } irdaAttribOctetSeq; 183 struct { 184 int Len; 185 u_char CharSet; 186 u_char UsrStr[1]; 187 u_char Reserved[2]; 188 } irdaAttribUsrStr; 189 } irdaAttribute; 190 } WCE_IAS_SET,*PWCE_IAS_SET; 191 192 typedef struct _WCE_IAS_QUERY { 193 u_char irdaDeviceID[4]; 194 char irdaClassName[61]; 195 char irdaAttribName[61]; 196 u_short irdaAttribType; 197 union { 198 int irdaAttribInt; 199 struct { 200 int Len; 201 u_char OctetSeq[1]; 202 u_char Reserved[3]; 203 } irdaAttribOctetSeq; 204 struct { 205 int Len; 206 u_char CharSet; 207 u_char UsrStr[1]; 208 u_char Reserved[2]; 209 } irdaAttribUsrStr; 210 } irdaAttribute; 211 } WCE_IAS_QUERY,*PWCE_IAS_QUERY; 212 213 typedef WINDOWS_IAS_SET IAS_SET,*PIAS_SET,*LPIASSET; 214 typedef WINDOWS_IAS_QUERY IAS_QUERY,*PIAS_QUERY,*LPIASQUERY; 215 216 #ifdef __LP64__ 217 #pragma pop_macro("u_long") 218 #endif 219 220 #endif 221