af_irda.h 5.4 KB

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