winpr: fix build on Windows

This commit is contained in:
Marc-André Moreau 2012-10-03 17:53:03 -04:00
parent 703d9346c8
commit 12554c172f
16 changed files with 66 additions and 47 deletions

View File

@ -29,9 +29,9 @@ add_library(drdynvc ${DRDYNVC_SRCS})
set_target_properties(drdynvc PROPERTIES PREFIX "")
if(WITH_MONOLITHIC_BUILD)
target_link_libraries(drdynvc freerdp)
target_link_libraries(drdynvc freerdp winpr)
else()
target_link_libraries(drdynvc freerdp-utils)
target_link_libraries(drdynvc freerdp-utils winpr-synch)
endif()
install(TARGETS drdynvc DESTINATION ${FREERDP_PLUGIN_PATH})

View File

@ -27,7 +27,6 @@
#include <freerdp/dvc.h>
#include <freerdp/types.h>
#include <freerdp/utils/debug.h>
#include <pthread.h>
#ifdef WITH_DEBUG_DVC
#define DEBUG_DVC(fmt, ...) DEBUG_CLASS(DVC, fmt, ## __VA_ARGS__)
@ -36,4 +35,3 @@
#endif
#endif

View File

@ -25,6 +25,8 @@
#include <stdlib.h>
#include <string.h>
#include <winpr/synch.h>
#include <freerdp/utils/memory.h>
#include <freerdp/utils/stream.h>
#include <freerdp/utils/list.h>
@ -84,7 +86,7 @@ struct _DVCMAN_CHANNEL
STREAM* dvc_data;
pthread_mutex_t dvc_chan_mutex;
HANDLE dvc_chan_mutex;
};
static int dvcman_get_configuration(IWTSListener* pListener, void** ppPropertyBag)
@ -112,7 +114,9 @@ static int dvcman_create_listener(IWTSVirtualChannelManager* pChannelMgr,
if (ppListener)
*ppListener = (IWTSListener*)listener;
dvcman->listeners[dvcman->num_listeners++] = (IWTSListener*)listener;
return 0;
}
else
@ -124,12 +128,12 @@ static int dvcman_create_listener(IWTSVirtualChannelManager* pChannelMgr,
static int dvcman_push_event(IWTSVirtualChannelManager* pChannelMgr, RDP_EVENT* pEvent)
{
int error;
int status;
DVCMAN* dvcman = (DVCMAN*) pChannelMgr;
error = drdynvc_push_event(dvcman->drdynvc, pEvent);
status = drdynvc_push_event(dvcman->drdynvc, pEvent);
if (error == 0)
if (status == 0)
{
DEBUG_DVC("event_type %d pushed.", pEvent->event_type);
}
@ -138,7 +142,7 @@ static int dvcman_push_event(IWTSVirtualChannelManager* pChannelMgr, RDP_EVENT*
DEBUG_WARN("event_type %d push failed.", pEvent->event_type);
}
return error;
return status;
}
static int dvcman_register_plugin(IDRDYNVC_ENTRY_POINTS* pEntryPoints, const char* name, IWTSPlugin* pPlugin)
@ -202,7 +206,6 @@ IWTSVirtualChannel* dvcman_find_channel_by_id(IWTSVirtualChannelManager* pChanne
return NULL;
}
IWTSVirtualChannelManager* dvcman_new(drdynvcPlugin* plugin)
{
DVCMAN* dvcman;
@ -301,14 +304,14 @@ int dvcman_init(IWTSVirtualChannelManager* pChannelMgr)
static int dvcman_write_channel(IWTSVirtualChannel* pChannel, uint32 cbSize, uint8* pBuffer, void* pReserved)
{
int status;
DVCMAN_CHANNEL* channel = (DVCMAN_CHANNEL*) pChannel;
int error;
pthread_mutex_lock(&channel->dvc_chan_mutex);
error = drdynvc_write_data(channel->dvcman->drdynvc, channel->channel_id, pBuffer, cbSize);
pthread_mutex_unlock(&channel->dvc_chan_mutex);
WaitForSingleObject(channel->dvc_chan_mutex, INFINITE);
status = drdynvc_write_data(channel->dvcman->drdynvc, channel->channel_id, pBuffer, cbSize);
ReleaseMutex(channel->dvc_chan_mutex);
return error;
return status;
}
static int dvcman_close_channel_iface(IWTSVirtualChannel* pChannel)
@ -346,7 +349,7 @@ int dvcman_create_channel(IWTSVirtualChannelManager* pChannelMgr, uint32 Channel
channel->iface.Close = dvcman_close_channel_iface;
channel->dvcman = dvcman;
channel->channel_id = ChannelId;
pthread_mutex_init(&channel->dvc_chan_mutex, NULL);
channel->dvc_chan_mutex = CreateMutex(NULL, FALSE, NULL);
bAccept = 1;
pCallback = NULL;
@ -379,7 +382,7 @@ int dvcman_close_channel(IWTSVirtualChannelManager* pChannelMgr, uint32 ChannelI
DVCMAN_CHANNEL* channel;
IWTSVirtualChannel* ichannel;
channel = (DVCMAN_CHANNEL*)dvcman_find_channel_by_id(pChannelMgr, ChannelId);
channel = (DVCMAN_CHANNEL*) dvcman_find_channel_by_id(pChannelMgr, ChannelId);
if (channel == NULL)
{
@ -394,7 +397,7 @@ int dvcman_close_channel(IWTSVirtualChannelManager* pChannelMgr, uint32 ChannelI
}
DEBUG_DVC("dvcman_close_channel: channel %d closed", ChannelId);
ichannel = (IWTSVirtualChannel*)channel;
ichannel = (IWTSVirtualChannel*) channel;
ichannel->Close(ichannel);
return 0;
@ -404,7 +407,7 @@ int dvcman_receive_channel_data_first(IWTSVirtualChannelManager* pChannelMgr, ui
{
DVCMAN_CHANNEL* channel;
channel = (DVCMAN_CHANNEL*)dvcman_find_channel_by_id(pChannelMgr, ChannelId);
channel = (DVCMAN_CHANNEL*) dvcman_find_channel_by_id(pChannelMgr, ChannelId);
if (channel == NULL)
{
@ -425,7 +428,7 @@ int dvcman_receive_channel_data(IWTSVirtualChannelManager* pChannelMgr, uint32 C
int error = 0;
DVCMAN_CHANNEL* channel;
channel = (DVCMAN_CHANNEL*)dvcman_find_channel_by_id(pChannelMgr, ChannelId);
channel = (DVCMAN_CHANNEL*) dvcman_find_channel_by_id(pChannelMgr, ChannelId);
if (channel == NULL)
{

View File

@ -93,7 +93,6 @@ struct _MSUSB_PIPE_DESCRIPTOR
int InitCompleted;
} __attribute__((packed));
struct _MSUSB_INTERFACE_DESCRIPTOR
{
uint16 Length;
@ -120,29 +119,19 @@ struct _MSUSB_CONFIG_DESCRIPTOR
int MsOutSize;
} __attribute__((packed));
/* MSUSB_PIPE exported functions */
void
msusb_mspipes_replace(MSUSB_INTERFACE_DESCRIPTOR * MsInterface, MSUSB_PIPE_DESCRIPTOR ** NewMsPipes, uint32 NewNumberOfPipes);
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, uint8 InterfaceNumber, MSUSB_INTERFACE_DESCRIPTOR * NewMsInterface);
MSUSB_INTERFACE_DESCRIPTOR *
msusb_msinterface_read(uint8 * data, uint32 data_size, int * offset);
int
msusb_msinterface_write(MSUSB_INTERFACE_DESCRIPTOR * MsInterface, uint8 * data, int * offset);
void msusb_msinterface_replace(MSUSB_CONFIG_DESCRIPTOR* MsConfig, uint8 InterfaceNumber, MSUSB_INTERFACE_DESCRIPTOR* NewMsInterface);
MSUSB_INTERFACE_DESCRIPTOR* msusb_msinterface_read(uint8* data, uint32 data_size, int* offset);
int msusb_msinterface_write(MSUSB_INTERFACE_DESCRIPTOR* MsInterface, uint8* 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(uint8 * data, uint32 data_size, uint32 NumInterfaces);
int
msusb_msconfig_write(MSUSB_CONFIG_DESCRIPTOR * MsConfg, uint8 * data, int * offset);
void
msusb_msconfig_dump(MSUSB_CONFIG_DESCRIPTOR * MsConfg);
MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_new();
void msusb_msconfig_free(MSUSB_CONFIG_DESCRIPTOR* MsConfig);
MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_read(uint8* data, uint32 data_size, uint32 NumInterfaces);
int msusb_msconfig_write(MSUSB_CONFIG_DESCRIPTOR* MsConfg, uint8* data, int * offset);
void msusb_msconfig_dump(MSUSB_CONFIG_DESCRIPTOR* MsConfg);
#endif

View File

@ -29,7 +29,6 @@ set(${MODULE_PREFIX}_SRCS
hexdump.c
list.c
file.c
msusb.c
load_plugin.c
memory.c
passphrase.c
@ -49,6 +48,10 @@ set(${MODULE_PREFIX}_SRCS
unicode.c
wait_obj.c)
if(NOT WIN32)
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} msusb.c)
endif()
if(WITH_MONOLITHIC_BUILD)
add_library(${MODULE_NAME} OBJECT ${${MODULE_PREFIX}_SRCS})
else()

View File

@ -20,6 +20,12 @@
#ifndef WINPR_SPEC_H
#define WINPR_SPEC_H
#ifdef _WIN32
#include <specstrings.h>
#else
#if defined(__x86_64) && \
!(defined(_X86_) || defined(__i386__) || defined(_IA64_))
#if !defined(_AMD64_)
@ -49,5 +55,7 @@
#define DUMMYSTRUCTNAME s
#endif
#endif /* WINPR_SPEC_H */

View File

@ -244,7 +244,5 @@ WINPR_API BOOL CancelWaitableTimer(HANDLE hTimer);
#endif
WINPR_API void winpr_synch_dummy();
#endif /* WINPR_SYNCH_H */

View File

@ -23,6 +23,10 @@ set(${MODULE_PREFIX}_SRCS
memory.c
string.c)
if(MSVC)
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} module.def)
endif()
if(WITH_MONOLITHIC_BUILD)
add_library(${MODULE_NAME} OBJECT ${${MODULE_PREFIX}_SRCS})
else()

View File

@ -0,0 +1,2 @@
LIBRARY "libwinpr-crt"
EXPORTS

View File

@ -21,6 +21,10 @@ set(MODULE_PREFIX "WINPR_HEAP")
set(${MODULE_PREFIX}_SRCS
heap.c)
if(MSVC)
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} module.def)
endif()
if(WITH_MONOLITHIC_BUILD)
add_library(${MODULE_NAME} OBJECT ${${MODULE_PREFIX}_SRCS})
else()

View File

@ -0,0 +1,2 @@
LIBRARY "libwinpr-heap"
EXPORTS

View File

@ -21,6 +21,10 @@ set(MODULE_PREFIX "WINPR_INTERLOCKED")
set(${MODULE_PREFIX}_SRCS
interlocked.c)
if(MSVC)
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} module.def)
endif()
if(WITH_MONOLITHIC_BUILD)
add_library(${MODULE_NAME} OBJECT ${${MODULE_PREFIX}_SRCS})
else()

View File

@ -0,0 +1,2 @@
LIBRARY "libwinpr-interlocked"
EXPORTS

View File

@ -37,6 +37,10 @@ set(${MODULE_PREFIX}_SRCS
timer.c
wait.c)
if(MSVC)
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} module.def)
endif()
if(WITH_MONOLITHIC_BUILD)
add_library(${MODULE_NAME} OBJECT ${${MODULE_PREFIX}_SRCS})
else()

View File

@ -0,0 +1,2 @@
LIBRARY "libwinpr-synch"
EXPORTS

View File

@ -23,7 +23,3 @@
#include <winpr/synch.h>
void winpr_synch_dummy()
{
}