From d2728aa2eec8fb0d17c77b76f753285ca5d5f1de Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marc-Andr=C3=A9=20Moreau?= Date: Tue, 13 Nov 2012 11:19:17 -0500 Subject: [PATCH] channels/urbdrc: fix compilation --- channels/urbdrc/client/data_transfer.c | 20 ++++++++++++-------- include/freerdp/utils/msusb.h | 19 ++++++++++--------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/channels/urbdrc/client/data_transfer.c b/channels/urbdrc/client/data_transfer.c index 45fc217..289f3de 100644 --- a/channels/urbdrc/client/data_transfer.c +++ b/channels/urbdrc/client/data_transfer.c @@ -715,18 +715,19 @@ static int urb_control_transfer(URBDRC_CHANNEL_CALLBACK* callback, BYTE* data, static int urb_bulk_or_interrupt_transfer(URBDRC_CHANNEL_CALLBACK* callback, BYTE* data, UINT32 data_sizem, UINT32 MessageId, IUDEVMAN* udevman, UINT32 UsbDevice, int transferDir) { - IUDEVICE * pdev; - UINT32 out_size, RequestId, InterfaceId, EndpointAddress, PipeHandle; - UINT32 TransferFlags, OutputBufferSize, usbd_status = 0; - BYTE * Buffer; - BYTE * out_data; - int offset; + int offset; + BYTE* Buffer; + IUDEVICE* pdev; + BYTE* out_data; + UINT32 out_size, RequestId, InterfaceId, EndpointAddress, PipeHandle; + UINT32 TransferFlags, OutputBufferSize, usbd_status = 0; pdev = udevman->get_udevice_by_UsbDevice(udevman, UsbDevice); + if (pdev == NULL) return 0; - InterfaceId = ((STREAM_ID_PROXY<<30) | pdev->get_ReqCompletion(pdev)); + InterfaceId = ((STREAM_ID_PROXY << 30) | pdev->get_ReqCompletion(pdev)); data_read_UINT32(data + 0, RequestId); data_read_UINT32(data + 4, PipeHandle); @@ -740,7 +741,8 @@ static int urb_bulk_or_interrupt_transfer(URBDRC_CHANNEL_CALLBACK* callback, BYT else out_size = 36 + OutputBufferSize; - out_data = (BYTE *) malloc(out_size); + Buffer = NULL; + out_data = (BYTE*) malloc(out_size); memset(out_data, 0, out_size); switch (transferDir) @@ -748,10 +750,12 @@ static int urb_bulk_or_interrupt_transfer(URBDRC_CHANNEL_CALLBACK* callback, BYT case USBD_TRANSFER_DIRECTION_OUT: Buffer = data + offset; break; + case USBD_TRANSFER_DIRECTION_IN: Buffer = out_data + 36; break; } + /** process URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER */ pdev->bulk_or_interrupt_transfer( pdev, RequestId, EndpointAddress, diff --git a/include/freerdp/utils/msusb.h b/include/freerdp/utils/msusb.h index 7df24bd..fa35790 100644 --- a/include/freerdp/utils/msusb.h +++ b/include/freerdp/utils/msusb.h @@ -21,6 +21,7 @@ #ifndef __MSCONFIG_H #define __MSCONFIG_H +#include #include #include #include @@ -120,18 +121,18 @@ struct _MSUSB_CONFIG_DESCRIPTOR } __attribute__((packed)); /* MSUSB_PIPE exported functions */ -void msusb_mspipes_replace(MSUSB_INTERFACE_DESCRIPTOR* MsInterface, MSUSB_PIPE_DESCRIPTOR** NewMsPipes, UINT32 NewNumberOfPipes); +FREERDP_API void msusb_mspipes_replace(MSUSB_INTERFACE_DESCRIPTOR* MsInterface, MSUSB_PIPE_DESCRIPTOR** NewMsPipes, UINT32 NewNumberOfPipes); /* MSUSB_INTERFACE exported functions */ -void msusb_msinterface_replace(MSUSB_CONFIG_DESCRIPTOR* MsConfig, BYTE InterfaceNumber, MSUSB_INTERFACE_DESCRIPTOR* NewMsInterface); -MSUSB_INTERFACE_DESCRIPTOR* msusb_msinterface_read(BYTE* data, UINT32 data_size, int* offset); -int msusb_msinterface_write(MSUSB_INTERFACE_DESCRIPTOR* MsInterface, BYTE* data, int* offset); +FREERDP_API void msusb_msinterface_replace(MSUSB_CONFIG_DESCRIPTOR* MsConfig, BYTE InterfaceNumber, MSUSB_INTERFACE_DESCRIPTOR* NewMsInterface); +FREERDP_API MSUSB_INTERFACE_DESCRIPTOR* msusb_msinterface_read(BYTE* data, UINT32 data_size, int* offset); +FREERDP_API int msusb_msinterface_write(MSUSB_INTERFACE_DESCRIPTOR* MsInterface, BYTE* data, int* offset); /* MSUSB_CONFIG exported functions */ -MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_new(); -void msusb_msconfig_free(MSUSB_CONFIG_DESCRIPTOR* MsConfig); -MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_read(BYTE* data, UINT32 data_size, UINT32 NumInterfaces); -int msusb_msconfig_write(MSUSB_CONFIG_DESCRIPTOR* MsConfg, BYTE* data, int * offset); -void msusb_msconfig_dump(MSUSB_CONFIG_DESCRIPTOR* MsConfg); +FREERDP_API MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_new(); +FREERDP_API void msusb_msconfig_free(MSUSB_CONFIG_DESCRIPTOR* MsConfig); +FREERDP_API MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_read(BYTE* data, UINT32 data_size, UINT32 NumInterfaces); +FREERDP_API int msusb_msconfig_write(MSUSB_CONFIG_DESCRIPTOR* MsConfg, BYTE* data, int * offset); +FREERDP_API void msusb_msconfig_dump(MSUSB_CONFIG_DESCRIPTOR* MsConfg); #endif -- 2.7.4