From: Uwe Hermann Date: Thu, 31 Jul 2014 21:14:35 +0000 (+0200) Subject: windows.c: Define a bunch of stuff that's not in MinGW, yet. X-Git-Tag: libserialport-0.1.1~116 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=8eb18f7b5a459cde640f307ce46248851fdaec42;p=libserialport.git windows.c: Define a bunch of stuff that's not in MinGW, yet. Without these defineѕ the build fails with various (many) compile errors. --- diff --git a/windows.c b/windows.c index 78b6ce9..730870a 100644 --- a/windows.c +++ b/windows.c @@ -24,6 +24,51 @@ /* 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);