]> sigrok.org Git - libserialport.git/commitdiff
windows.c: Define a bunch of stuff that's not in MinGW, yet.
authorUwe Hermann <redacted>
Thu, 31 Jul 2014 21:14:35 +0000 (23:14 +0200)
committerUwe Hermann <redacted>
Thu, 31 Jul 2014 21:14:35 +0000 (23:14 +0200)
Without these defineŃ• the build fails with various (many) compile errors.

windows.c

index 78b6ce9babf6685bed794b17bf974e09084c829f..730870a4c1671200e0dbb4b88062b57375eb34ca 100644 (file)
--- a/windows.c
+++ b/windows.c
 /* USB path is a string of at most 8 decimal numbers < 128 separated by dots */
 #define MAX_USB_PATH  (8*3 + 7*1 + 1)
 
+/* The stuff below is not yet available in MinGW apparently. Define it here. */
+
+#ifndef USB_NODE_CONNECTION_INFORMATION_EX
+typedef struct _USB_NODE_CONNECTION_INFORMATION_EX {
+       ULONG ConnectionIndex;
+       USB_DEVICE_DESCRIPTOR DeviceDescriptor;
+       UCHAR CurrentConfigurationValue;
+       UCHAR Speed;
+       BOOLEAN DeviceIsHub;
+       USHORT DeviceAddress;
+       ULONG NumberOfOpenPipes;
+       USB_CONNECTION_STATUS ConnectionStatus;
+       USB_PIPE_INFO PipeList[];
+} USB_NODE_CONNECTION_INFORMATION_EX, *PUSB_NODE_CONNECTION_INFORMATION_EX;
+#endif
+
+#ifndef USB_GET_NODE_CONNECTION_INFORMATION_EX
+#define USB_GET_NODE_CONNECTION_INFORMATION_EX 274
+#endif
+
+#ifndef IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX
+#define IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX \
+       CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION_EX, \
+       METHOD_BUFFERED, FILE_ANY_ACCESS)
+#endif
+
+#ifndef CM_DRP_COMPATIBLEIDS
+#define CM_DRP_COMPATIBLEIDS 0x03
+#endif
+#ifndef CM_DRP_CLASS
+#define CM_DRP_CLASS 0x08
+#endif
+#ifndef CM_DRP_FRIENDLYNAME
+#define CM_DRP_FRIENDLYNAME 0x0d
+#endif
+#ifndef CM_DRP_ADDRESS
+#define CM_DRP_ADDRESS 0x1d
+#endif
+
+#ifndef CM_Get_DevNode_Registry_PropertyA
+CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyA(DEVINST dnDevInst, \
+       ULONG ulProperty, PULONG pulRegDataType, PVOID Buffer, \
+       PULONG pulLength, ULONG ulFlags);
+#endif
+
 static void enumerate_hub(struct sp_port *port, char *hub_name,
                           char *parent_path);