From 856674f1106c23e33476f781a017824bdb3f286e Mon Sep 17 00:00:00 2001 From: Erik Charlebois Date: Tue, 23 Feb 2010 23:00:24 -0800 Subject: [PATCH] Bindings to the WinUSB part of the Windows DDK --- basis/windows/ddk/winusb/authors.txt | 1 + basis/windows/ddk/winusb/platforms.txt | 1 + basis/windows/ddk/winusb/summary.txt | 1 + basis/windows/ddk/winusb/tags.txt | 1 + basis/windows/ddk/winusb/winusb.factor | 66 ++++++++++++++++++++++++++ 5 files changed, 70 insertions(+) create mode 100644 basis/windows/ddk/winusb/authors.txt create mode 100644 basis/windows/ddk/winusb/platforms.txt create mode 100644 basis/windows/ddk/winusb/summary.txt create mode 100644 basis/windows/ddk/winusb/tags.txt create mode 100644 basis/windows/ddk/winusb/winusb.factor diff --git a/basis/windows/ddk/winusb/authors.txt b/basis/windows/ddk/winusb/authors.txt new file mode 100644 index 0000000000..6f03a12101 --- /dev/null +++ b/basis/windows/ddk/winusb/authors.txt @@ -0,0 +1 @@ +Erik Charlebois diff --git a/basis/windows/ddk/winusb/platforms.txt b/basis/windows/ddk/winusb/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/ddk/winusb/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/ddk/winusb/summary.txt b/basis/windows/ddk/winusb/summary.txt new file mode 100644 index 0000000000..0d95f10574 --- /dev/null +++ b/basis/windows/ddk/winusb/summary.txt @@ -0,0 +1 @@ +Bindings to the USB section of the Windows DDK. diff --git a/basis/windows/ddk/winusb/tags.txt b/basis/windows/ddk/winusb/tags.txt new file mode 100644 index 0000000000..ee46b6bc1f --- /dev/null +++ b/basis/windows/ddk/winusb/tags.txt @@ -0,0 +1 @@ +unportable bindings diff --git a/basis/windows/ddk/winusb/winusb.factor b/basis/windows/ddk/winusb/winusb.factor new file mode 100644 index 0000000000..3b98e7e8ca --- /dev/null +++ b/basis/windows/ddk/winusb/winusb.factor @@ -0,0 +1,66 @@ +! Copyright (C) 2010 Erik Charlebois. +! See http://factorcode.org/license.txt for BSD license. +USING: alien.c-types alien.syntax classes.struct windows.kernel32 +windows.types alien.libraries ; +IN: windows.ddk.winusb + +<< "winusb" "winusb.dll" "stdcall" add-library >> +LIBRARY: winusb + +TYPEDEF: PVOID WINUSB_INTERFACE_HANDLE +TYPEDEF: WINUSB_INTERFACE_HANDLE* PWINUSB_INTERFACE_HANDLE + +STRUCT: USB_INTERFACE_DESCRIPTOR + { bLength UCHAR } + { bDescriptorType UCHAR } + { bInterfaceNumber UCHAR } + { bAlternateSetting UCHAR } + { bNumEndpoints UCHAR } + { bInterfaceClass UCHAR } + { bInterfaceSubClass UCHAR } + { bInterfaceProtocol UCHAR } + { iInterface UCHAR } ; +TYPEDEF: USB_INTERFACE_DESCRIPTOR* PUSB_INTERFACE_DESCRIPTOR + +C-ENUM: + UsbdPipeTypeControl + UsbdPipeTypeIsochronous + UsbdPipeTypeBulk + UsbdPipeTypeInterrupt ; +TYPEDEF: int USBD_PIPE_TYPE + +STRUCT: WINUSB_PIPE_INFORMATION + { PipeType USBD_PIPE_TYPE } + { PipeId UCHAR } + { MaximumPacketSize USHORT } + { Interval UCHAR } ; +TYPEDEF: WINUSB_PIPE_INFORMATION* PWINUSB_PIPE_INFORMATION + +STRUCT: WINUSB_SETUP_PACKET + { RequestType UCHAR } + { Request UCHAR } + { Value USHORT } + { Index USHORT } + { Length USHORT } ; +TYPEDEF: WINUSB_SETUP_PACKET* PWINUSB_SETUP_PACKET + +FUNCTION: BOOL WinUsb_AbortPipe ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID ) ; +FUNCTION: BOOL WinUsb_FlushPipe ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID ) ; +FUNCTION: BOOL WinUsb_ControlTransfer ( WINUSB_INTERFACE_HANDLE InterfaceHandle, WINUSB_SETUP_PACKET SetupPacket, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred, LPOVERLAPPED Overlapped ) ; +FUNCTION: BOOL WinUsb_Initialize ( HANDLE DeviceHandle, PWINUSB_INTERFACE_HANDLE InterfaceHandle ) ; +FUNCTION: BOOL WinUsb_Free ( WINUSB_INTERFACE_HANDLE InterfaceHandle ) ; +FUNCTION: BOOL WinUsb_GetAssociatedInterface ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AssociatedInterfaceIndex, PWINUSB_INTERFACE_HANDLE AssociatedInterfaceHandle ) ; +FUNCTION: BOOL WinUsb_GetCurrentAlternateSetting ( WINUSB_INTERFACE_HANDLE InterfaceHandle, PUCHAR SettingNumber ) ; +FUNCTION: BOOL WinUsb_GetDescriptor ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR DescriptorType, UCHAR Index, USHORT LanguageID, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred ) ; +FUNCTION: BOOL WinUsb_GetPowerPolicy ( WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG PolicyType, PULONG ValueLength, PVOID Value ) ; +FUNCTION: BOOL WinUsb_GetOverlappedResult ( WINUSB_INTERFACE_HANDLE InterfaceHandle, LPOVERLAPPED lpOverlapped, LPDWORD lpNumberOfBytesTransferred, BOOL bWait ) ; +FUNCTION: BOOL WinUsb_GetPipePolicy ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, ULONG PolicyType, PULONG ValueLength, PVOID Value ) ; +FUNCTION: BOOL WinUsb_QueryInterfaceSettings ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AlternateInterfaceNumber, PUSB_INTERFACE_DESCRIPTOR UsbAltInterfaceDescriptor ) ; +FUNCTION: BOOL WinUsb_QueryDeviceInformation ( WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG InformationType, PULONG BufferLength, PVOID Buffer ) ; +FUNCTION: BOOL WinUsb_QueryPipe ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AlternateInterfaceNumber, UCHAR PipeIndex, PWINUSB_PIPE_INFORMATION PipeInformation ) ; +FUNCTION: BOOL WinUsb_ReadPipe ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred, LPOVERLAPPED Overlapped ) ; +FUNCTION: BOOL WinUsb_ResetPipe ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID ) ; +FUNCTION: BOOL WinUsb_SetCurrentAlternateSetting ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR SettingNumber ) ; +FUNCTION: BOOL WinUsb_SetPowerPolicy ( WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG PolicyType, ULONG ValueLength, PVOID Value ) ; +FUNCTION: BOOL WinUsb_SetPipePolicy ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, ULONG PolicyType, ULONG ValueLength, PVOID Value ) ; +FUNCTION: BOOL WinUsb_WritePipe ( WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred, LPOVERLAPPED Overlapped ) ; -- 2.34.1