mirror of https://github.com/FreeRDP/FreeRDP
winpr: fix build on Windows
This commit is contained in:
parent
703d9346c8
commit
12554c172f
|
@ -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})
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -244,7 +244,5 @@ WINPR_API BOOL CancelWaitableTimer(HANDLE hTimer);
|
|||
|
||||
#endif
|
||||
|
||||
WINPR_API void winpr_synch_dummy();
|
||||
|
||||
#endif /* WINPR_SYNCH_H */
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
LIBRARY "libwinpr-crt"
|
||||
EXPORTS
|
|
@ -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()
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
LIBRARY "libwinpr-heap"
|
||||
EXPORTS
|
|
@ -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()
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
LIBRARY "libwinpr-interlocked"
|
||||
EXPORTS
|
|
@ -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()
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
LIBRARY "libwinpr-synch"
|
||||
EXPORTS
|
|
@ -23,7 +23,3 @@
|
|||
|
||||
#include <winpr/synch.h>
|
||||
|
||||
void winpr_synch_dummy()
|
||||
{
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue