Commit Graph

703 Commits

Author SHA1 Message Date
Marc-André Moreau
226cad3e03 winpr: improve winpr.pc generation 2013-11-10 17:54:41 -05:00
Marc-André Moreau
4898868e9d libwinpr-path: extend custom portability functions 2013-11-09 23:38:22 -05:00
Marc-André Moreau
0e662a060e freerdp: improve pkgconfig .pc file generation 2013-11-09 17:51:09 -05:00
Marc-André Moreau
70aed3fa85 libfreerdp-core: minor style cleanup 2013-11-08 13:57:41 -05:00
Armin Novak
b34c2d0e1d Removed unneccessary include <spawn.h>, which broke the build. 2013-11-08 10:27:57 +01:00
Marc-André Moreau
5536033a8a libfreerdp-core: transport refactoring 2013-11-07 17:37:58 -05:00
Marc-André Moreau
61f95fbe16 libfreerdp-core: transport code style cleanup 2013-11-07 15:14:59 -05:00
Marc-André Moreau
8cbb7f42da libwinpr-library: add GetModuleFileName implementation for Linux 2013-11-07 13:57:05 -05:00
Marc-André Moreau
3c44ff9c83 channels/rdpsnd: fix bug in rdpsnd and rdpdr deinitialization 2013-11-06 14:31:33 -05:00
Marc-André Moreau
33a9694b45 Merge pull request #15 from MartinHaimberger/WLOGIMPROVEMENT
improved wlog
2013-11-06 10:56:30 -08:00
Marc-André Moreau
b174dd9199 Merge pull request #16 from bmiklautz/process
Process
2013-11-06 10:55:55 -08:00
Marc-André Moreau
b8a1f7d6c0 freerdp: implement restricted admin mode pass-the-hash option 2013-11-06 10:02:58 -05:00
Marc-André Moreau
f38c73b6c1 libwinpr-security: fix exporting of target 2013-11-05 19:44:26 -05:00
Marc-André Moreau
cc301348df libwinpr-crt: added SecureZeroMemory 2013-11-01 18:32:36 -04:00
Marc-André Moreau
fd8355d47a libwinpr-io: add missing link dependency to libwinpr-nt 2013-10-31 17:19:46 -04:00
Marc-André Moreau
5a5733eb83 Merge branch 'master' of github.com:awakecoding/FreeRDP 2013-10-31 11:02:40 -04:00
Marc-André Moreau
8a64934c7b libwinpr-io: start device file implementation 2013-10-31 11:02:25 -04:00
Bernhard Miklautz
9f42b41f4e winpr/thread: use _strdup instead of strdup 2013-10-31 10:43:59 +01:00
Bernhard Miklautz
e51b9b0c03 winpr-thread: fixed issue with commands starting with / 2013-10-31 10:19:55 +01:00
Marc-André Moreau
938d423ec9 freerdp: fix build on Windows 2013-10-30 17:56:44 -04:00
Marc-André Moreau
55565e056c freerdp: export targets 2013-10-28 23:06:39 -04:00
Marc-André Moreau
c0a1c259f3 freerdp: start exporting targets automatically 2013-10-28 22:09:31 -04:00
Marc-André Moreau
89d45690c6 libwinpr-synch: don't use timed waits on OS X until they are properly ported 2013-10-25 10:48:37 -04:00
Marc-André Moreau
723e423799 libwinpr-synch: fix build on Mac OS X 2013-10-25 10:03:57 -04:00
Martin Haimberger
ad7be5a4ee improved wlog so new logger inhertit the loglevel
of the root logger
2013-10-25 05:41:01 -07:00
Marc-André Moreau
fb4ac3b5dd Merge pull request #13 from MartinHaimberger/EnvMerge
added merge function for environmentblocks
2013-10-24 11:04:09 -07:00
Marc-André Moreau
5fb65101e9 libwinpr-nt: make test successfully call NtCreateFile on Windows 2013-10-23 19:32:32 -04:00
Marc-André Moreau
e2fe00fd37 libwinpr-nt: load and make use of original Rtl* functions on Windows 2013-10-23 18:57:41 -04:00
Marc-André Moreau
1de70aa064 libwinpr-nt: dynamically load original NtCreateFile functions on Windows, extend tests 2013-10-23 18:15:10 -04:00
Marc-André Moreau
d30f66b1b7 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-10-23 14:18:40 -04:00
Martin Haimberger
8479462b5e changed the interface of SetEnvironmentVariableEBA 2013-10-23 03:43:06 -07:00
Armin Novak
2ba55a48f8 Added missing variable declaration. 2013-10-23 12:25:04 +02:00
Armin Novak
17a024dcd1 Returing WAIT_TIMEOUT for MUTEX objects now too. 2013-10-23 12:16:23 +02:00
Armin Novak
c1051fe4c6 Always including <errno.h> now. 2013-10-23 12:13:53 +02:00
Armin Novak
7704788474 Implemented fallback functions for pthread_timedjoin_np and
pthread_mutex_timedlock functions for systems without PTHREAD_GNU_EXT
Now returning WAIT_TIMEOUT if the operation timed out.
2013-10-23 12:09:09 +02:00
Martin Haimberger
fdacd898f5 MergeEnvironmentStrings works also for a null original env 2013-10-23 03:00:22 -07:00
Martin Haimberger
97ef519a54 added Set/GetEnvironmentVariableEBA
did some bugfixing within the MergeEnvironmentVariable
added Tests
2013-10-23 02:27:31 -07:00
Martin Haimberger
87ce6f28cf added merge function for environmentblocks 2013-10-23 00:58:33 -07:00
Marc-André Moreau
9c536cfe01 libwinpr-wtsapi: fix build after changes to libwinpr-nt 2013-10-22 21:43:59 -04:00
Marc-André Moreau
ebc096f2b2 libwinpr-nt: fix conflict for NtCreateFile on Windows 2013-10-22 21:38:16 -04:00
Marc-André Moreau
888812eaa0 libwinpr-nt: stub more of the native file API 2013-10-22 20:47:29 -04:00
Marc-André Moreau
8609a19cac Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-10-17 17:34:16 -04:00
Marc-André Moreau
d2d1226292 Merge pull request #1537 from bmiklautz/windowsbuild
Windows build fixes
2013-10-17 14:31:27 -07:00
Marc-André Moreau
0417e552cf libwinpr-utils: fix bug in ListDictionary 2013-10-17 17:27:47 -04:00
Marc-André Moreau
490f18a7aa channels/rdpdr: don't use deprecated LIST util, use ListDictionary for faster lookups 2013-10-17 16:30:36 -04:00
Marc-André Moreau
0276b095eb Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-10-17 13:08:30 -04:00
Marc-André Moreau
dfcab616f8 Merge pull request #12 from bmiklautz/listdict
Improvements and new function for ListDictionary
2013-10-15 08:02:42 -07:00
Bernhard Miklautz
7c61b16da5 ListDictionary: added Remove_Head function
ListDictionary_Remove_Head removed the first object from the dictionary
and returns it's value.
2013-10-15 16:15:44 +02:00
Bernhard Miklautz
95bed71dbc ListDictionary: support for wObject added 2013-10-15 15:51:53 +02:00
Bernhard Miklautz
86e53aed9a ListDictionary_Remove: return value if removed
Update tests accordingly.
2013-10-15 15:49:57 +02:00
Bernhard Miklautz
96e267fcdf winpr-file: fixed memory leak in error case 2013-10-15 13:22:34 +02:00
Bernhard Miklautz
d2790d92c8 winpr-handle: fixed compiler warning 2013-10-15 13:22:01 +02:00
Bernhard Miklautz
bab5c22f9e winpr-pipe: fixed memory leak in WaitNamedPipeA 2013-10-15 13:09:13 +02:00
Bernhard Miklautz
0cc918a1d5 winpr-handle: fixed mem leak when closing named pipes 2013-10-15 13:03:30 +02:00
Marc-André Moreau
b70ecbbf62 libfreerdp-core: decouple initialization of rdpSettings from freerdp* instance 2013-10-12 18:20:25 -04:00
Norbert Federa
6f9a8dbc1e winpr: greatly improved NtCurrentTeb performance
Use pthread_setspecific/pthread_getspecific to store/retrieve the thread
environment block (TEB). Use pthread_once to trigger the creation of that
data from within NtCurrentTeb.
This allows us to get rid of the process environment block stuff which
was only used to provide serialized access to a thread table in order to
retrieve the TEB.

NtCurrentTeb is currently only as a per-thread storage location for the
last error value used by SetLastError and GetLastError.

Also made the TestErrorSetLastError CTest a bit more demanding.
It makes sure the 4 threads run for at least 2 seconds.
Each thread constantly calls SetLastError with a random value and checks
if GetLastError returns the same value again. The total amount of
these iterations is calculated in order to measure the performance.

This change increases the NtCurrentTeb performance by roughly 50% on
linux and by several thousand percent (yes) on Mac OS X.

Thanks for watching.
2013-10-11 19:34:23 +02:00
Marc-André Moreau
7dd95b9587 libwinpr-crypto: improve Schannel unit test 2013-10-11 04:01:07 -04:00
Marc-André Moreau
3d7d4c50db libwinpr-utils: fix IPv4 checksum and TCP sequence numbers with wlog packet messages 2013-10-09 16:37:45 -04:00
Marc-André Moreau
90b90ad496 libwinpr-utils: improve quality of data for reconstructed IP headers 2013-10-09 15:11:56 -04:00
Marc-André Moreau
7bdb63ad89 libwinpr-utils: initial wlog packet header reconstruction 2013-10-09 14:23:38 -04:00
Marc-André Moreau
166e3fbf2d libwinpr-utils: start reconstructing IP headers for wlog packet message 2013-10-09 13:37:53 -04:00
Marc-André Moreau
a3f0f4c8dc libfreerdp-core: started logging packets to pcap file 2013-10-08 23:43:57 -04:00
Marc-André Moreau
684db03578 libwinpr-utils: start implement wlog packet appender 2013-10-08 23:18:59 -04:00
Marc-André Moreau
07afc88878 libwinpr-utils: add some configurability to wlog with environment variables 2013-10-08 22:35:14 -04:00
Marc-André Moreau
a87e7deac4 libwinpr-utils: fix wlog build warnings 2013-10-08 19:39:03 -04:00
Marc-André Moreau
1ee2fa73cf Merge pull request #8 from MartinHaimberger/wlogfix
fixed memory leak in wlog
2013-10-08 15:54:09 -07:00
Marc-André Moreau
353816e050 Merge pull request #6 from MartinHaimberger/loglevel
Loglevel
2013-10-08 15:53:54 -07:00
Marc-André Moreau
fdae43aafc mfreerdp: fix keyboard mapping for toggle keys 2013-10-07 16:43:23 -04:00
Bernhard Miklautz
57d295441f windows build: use different .def file for xp
Use different def file for windows < 5.1.
2013-10-07 15:03:50 +02:00
Bernhard Miklautz
e6f3cd7dff build: link winpr-synch against winpr-sysinfo 2013-10-05 14:09:04 +02:00
Marc-André Moreau
e37981e57c libwinpr-utils: improved binary appender 2013-10-04 11:33:49 -04:00
Martin Haimberger
fea6d83367 fixed memory leak in wlog 2013-10-04 03:51:10 -07:00
Martin Haimberger
5e073f5f17 loglevel filtering fix 2013-10-03 06:32:12 -07:00
Marc-André Moreau
aaeb4ea0b2 libwinpr-utils: add wlog support for image and binary data 2013-10-02 15:41:46 -04:00
Marc-André Moreau
0569de167d libwinpr-utils: further split wlog framework into more source files, add some thread safety for write operations 2013-10-02 13:38:21 -04:00
Bernhard Miklautz
5c3ce890b1 winpr-thread: close fds before exec new process
Close all open file handles, except stdion/stdout/stderr before executing a new process
to make sure that no file descriptors leak or kept open.
2013-10-02 17:21:56 +02:00
Marc-André Moreau
3fb2724536 libwinpr-utils: fix default WLog behaviour 2013-10-01 20:45:20 -04:00
Marc-André Moreau
2684b829d0 libwinpr-utils: add simple parent/child hierarchy 2013-10-01 18:19:50 -04:00
Marc-André Moreau
0b29f72cc4 libwinpr-utils: added default file output path for wlog 2013-10-01 16:50:47 -04:00
Marc-André Moreau
a374525e6a libwinpr-utils: split wlog framework 2013-10-01 16:08:26 -04:00
Marc-André Moreau
8695c5226b libwinpr-file: added more error checking 2013-10-01 12:03:08 -04:00
Marc-André Moreau
480071cdeb libwinpr-io: improve overlapped io with server-side named pipes 2013-09-25 23:16:33 -04:00
Marc-André Moreau
f4e98f29ec libwinpr-pipe: add server-side named pipe waiting 2013-09-25 19:13:39 -04:00
Marc-André Moreau
8c72211eea libwinpr-thread: fix link libraries 2013-09-25 16:38:41 -04:00
Marc-André Moreau
b3b6ee57f0 libwinpr-thread: add missing link dependencies for tests 2013-09-25 16:26:54 -04:00
Marc-André Moreau
7ec19ac0f2 libwinpr-thread: fix build on Windows 2013-09-25 15:47:18 -04:00
Marc-André Moreau
f6ee26f15a winpr: fix noreturn warnings 2013-09-24 14:35:03 -04:00
Marc-André Moreau
9a124a1d60 libwinpr-thread: initial CreateProcessAsUser implementation 2013-09-24 13:08:29 -04:00
Marc-André Moreau
f363b93819 libwinpr-process: add searching of system path 2013-09-24 11:03:42 -04:00
Marc-André Moreau
4a77f12b32 libwinpr-security: expand stubs 2013-09-24 00:07:48 -04:00
Marc-André Moreau
0506bd1ac6 libwinpr-security: initial stub module 2013-09-23 22:39:28 -04:00
Marc-André Moreau
979ed1b756 libwinpr-pipe: implement WaitNamedPipe 2013-09-23 18:10:21 -04:00
Marc-André Moreau
3d2754e8ed libwinpr-environment: implement required functions for CreateProcess 2013-09-23 14:44:59 -04:00
Marc-André Moreau
8d142eb85f libwinpr-thread: initial CreateProcess() implementation 2013-09-22 17:23:00 -04:00
Marc-André Moreau
bb9db97204 libwinpr-thread: improve CommandLineToArgv completeness 2013-09-21 20:05:14 -04:00
Marc-André Moreau
83e124f909 libwinpr-thread: partial support for character escaping in CommandLineToArgv 2013-09-21 19:49:00 -04:00
Marc-André Moreau
56672023db libwinpr-thread: start implementing CommandLineToArgv 2013-09-21 17:16:49 -04:00
Marc-André Moreau
e8a8c1cf7f winpr: fix crashing tests 2013-09-19 14:17:00 -04:00
Marc-André Moreau
0c17eb1a23 winpr: fix unit tests on Windows 2013-09-19 13:50:00 -04:00
Marc-André Moreau
10f1a898ef libfreerdp-client: fix command-line parsing with .rdp file 2013-09-17 17:03:35 -04:00
Marc-André Moreau
c0ba0fb337 libwinpr-utils: fix BufferPool test 2013-09-16 17:59:29 -04:00
Marc-André Moreau
8f1aceac6a libwinpr-nt: add missing link dependency 2013-09-16 17:49:16 -04:00
Marc-André Moreau
518995a05e freerdp: merge with master 2013-09-16 17:10:27 -04:00
Marc-André Moreau
3b7994a9a6 Merge pull request #1467 from akallabeth/cmdline_enhanced
Cmdline enhanced
2013-09-16 13:33:04 -07:00
Marc-André Moreau
22ce171261 libwinpr-utils: added custom prefix formatter in logger 2013-09-16 16:30:49 -04:00
Marc-André Moreau
5386d5cd60 libwinpr-utils: make use of logMessage structure and macro for logging 2013-09-16 13:24:50 -04:00
Marc-André Moreau
a4c8d97b4c libwinpr-utils: start implementing FileAppender 2013-09-16 12:56:22 -04:00
Marc-André Moreau
af1ea7573c libwinpr-utils: start implementing ConsoleAppender 2013-09-16 12:05:08 -04:00
Bernhard Miklautz
1b304321ef winpr/registry: Fixed double free
fixes #1479
2013-09-16 17:23:26 +02:00
Marc-André Moreau
968ef14349 libwinpr-utils: introduce trace levels 2013-09-15 16:48:09 -04:00
Marc-André Moreau
6a8b5f2283 libwinpr-utils: start implementing WinPR logger 2013-09-15 15:46:02 -04:00
Marc-André Moreau
4fbebba528 libwinpr-wait: add support for waiting on named pipes (non-standard) 2013-09-11 19:00:32 -04:00
Marc-André Moreau
22855c933b Merge branch 'xrdp-ng' of github.com:awakecoding/FreeRDP into xrdp-ng 2013-09-10 17:53:28 -04:00
Marc-André Moreau
7574e7bfc9 Merge branch 'master' of github.com:awakecoding/FreeRDP into xrdp-ng 2013-09-10 17:02:36 -04:00
Marc-André Moreau
4a4a36d5c4 cmake: remove vendor-specific options 2013-09-10 14:03:15 -04:00
Bernhard Miklautz
8c796e9afc winpr/synch: link against librt 2013-09-10 10:38:23 +02:00
Armin Novak
21127ec33b Added a new flag to indicate the presence of a single not escaped argument
allowing the legacy command line <server>:<port> syntax.
2013-09-10 10:29:45 +02:00
Armin Novak
a7a7bab619 Fixed optional argument parsing. 2013-09-09 17:21:15 +02:00
Armin Novak
4274b266c0 Fixed command line parser, now printing help, if an invalid option is detected. 2013-09-09 16:07:14 +02:00
Marc-André Moreau
f790831e7d Merge branch 'master' of github.com:awakecoding/FreeRDP into xrdp-ng 2013-09-05 15:23:19 -04:00
Armin Novak
07139276b5 Added newlines at end of file, prevents clang from crashing... 2013-09-05 12:14:35 +02:00
Armin Novak
cf20efb4c6 Simplified code for FindFirstFileA, now always using FindClose
for cleanup.
2013-09-05 12:14:35 +02:00
Armin Novak
62356e667c Fixed erroneous patch. 2013-09-05 12:14:34 +02:00
Armin Novak
4331fa1f8b Fixed invalid API usage, ... 2013-09-05 12:14:34 +02:00
Armin Novak
e5c138a5b9 Fixed various memory leaks, allocation size issues and API misuse
warnings shown by clang as well as some compiler warnings.
2013-09-05 12:14:34 +02:00
Armin Novak
a3b531c036 Fixed issues found with clang-analyzer 2013-09-05 12:14:33 +02:00
Armin Novak
62330ca669 Fixed variable mixup. 2013-09-05 12:14:33 +02:00
Armin Novak
1e2455fa4a Fixed various memory leaks and compiler warnings. 2013-09-05 12:14:33 +02:00
Armin Novak
a355093219 Fixed coverity issue 1047645 2013-09-05 12:14:33 +02:00
Armin Novak
96285eec58 Fixed coverity issue 1047647 2013-09-05 12:14:33 +02:00
Armin Novak
d519bc3115 Fixed coverity issue 1047592 2013-09-05 12:14:33 +02:00
Armin Novak
629ac4ad28 Fixed coverity issue 1047588 2013-09-05 12:14:33 +02:00
Armin Novak
87a9a24ef2 Fixed coverity issue 1047593 2013-09-05 12:14:33 +02:00
Armin Novak
020bae25d7 Fixed coverity issue 1047594 2013-09-05 12:14:32 +02:00
Armin Novak
04e9338668 Fixed coverity issue 1047595 2013-09-05 12:14:32 +02:00
Armin Novak
0c08b584b8 Fixed coverity issue 1047596 2013-09-05 12:14:32 +02:00
Armin Novak
f231f3fcc5 Fixed coverity issue 1047597 2013-09-05 12:14:32 +02:00
Armin Novak
1673e526f5 Fixed coverity issue 1047598 2013-09-05 12:14:32 +02:00
Armin Novak
e2cd11332b Fixed coverity issue 1047599 2013-09-05 12:14:32 +02:00
Armin Novak
4bd1c567bd Fixed coverity issue 1047600 2013-09-05 12:14:32 +02:00
Armin Novak
64c3aafcc6 Fixed coverity issue 1047602 2013-09-05 12:14:32 +02:00
Armin Novak
53e0d53b99 Fixed coverity issue 1047603 2013-09-05 12:14:32 +02:00
Armin Novak
a55afb58a4 Fixed coverity issue 1047634 2013-09-05 12:14:31 +02:00
Marc-André Moreau
7edfe66274 freerdp: various missing link dependencies and symbol exports 2013-09-03 21:48:26 -04:00
Marc-André Moreau
41f53696d5 Merge branch 'xrdp-ng' of github.com:awakecoding/FreeRDP into xrdp-ng 2013-09-03 18:50:18 -04:00
Marc-André Moreau
ee36541fb7 freerdp: merge with master 2013-09-03 18:49:48 -04:00
Bernhard Miklautz
90c2cb22ab winpr: fixed test building 2013-08-29 09:44:41 +02:00
Marc-André Moreau
e429136c0c libwinpr-wtsapi: started internal RPC stubs 2013-08-23 00:06:22 -04:00
Marc-André Moreau
8423fccbc2 libwinpr-pipe: add support for overlapped i/o with named pipes (synchronous, compatible implementation) 2013-08-22 22:36:37 -04:00
Marc-André Moreau
c1625c1ead libwinpr-wtsapi: start implementation, extend NtApi 2013-08-22 19:20:59 -04:00
Marc-André Moreau
d5679889f3 libwinpr-nt: start implementing core NTDLL functions 2013-08-22 13:30:44 -04:00
Marc-André Moreau
68ec10a9d9 libwinpr-nt: implement NtCurrentTeb() 2013-08-22 10:18:38 -04:00
Marc-André Moreau
cea6de16ee libwinpr-wtsapi: add VC API 2013-08-20 15:22:31 -04:00
Marc-André Moreau
9d1dd14581 libwinpr-wtsapi: updated interface definition 2013-08-19 20:58:42 -04:00
Marc-André Moreau
7a88e7cb35 libwinpr-wtsapi: initial stubs 2013-08-19 20:38:43 -04:00
Marc-André Moreau
0ca78c877e libwinpr-wtsapi: added empty module 2013-08-19 19:18:31 -04:00
Marc-André Moreau
1068a1f3cc libwinpr-com: create empty module 2013-08-19 19:06:47 -04:00
Marc-André Moreau
d7656ada48 libfreerdp-codec: fix NSCodec encoding and buffer pool usage 2013-08-19 18:21:34 -04:00
Marc-André Moreau
317ffb2ca3 libwinpr-utils: backport fixed-size buffer pool inside variable size buffer pool 2013-08-19 17:14:24 -04:00
Armin Novak
2f20a8c12b Fixed various memory leaks and resource deallocation problems. 2013-08-19 17:44:52 +02:00
Armin Novak
1a3a6c3e0f Fixed check for _GNU_SOURCE pthread extensions. 2013-08-16 11:49:35 +02:00
Marc-André Moreau
1d3cf89cbc libwinpr-synch: fix wait.c build on Mac OS X 2013-08-15 15:02:24 -04:00
Marc-André Moreau
87593b4f19 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-08-15 13:16:05 -04:00
Marc-André Moreau
efff23acb5 Merge pull request #1395 from richterger/client_redir
Fix memory corruption in client redirection
2013-08-15 10:15:11 -07:00
Marc-André Moreau
9f25c4fc25 libfreerdp-codec: initial working fragmented NSCodec encoder 2013-08-15 13:13:02 -04:00
Marc-André Moreau
c149ede6f2 libwinpr-utils: add support for variable size buffer pool 2013-08-15 00:01:42 -04:00
Armin Novak
86fd873907 Added error messages for not implemented functions. 2013-08-14 13:19:57 +02:00
Armin Novak
0752597e00 Thread timed join now only available with _GUN_SOURCE. 2013-08-14 13:18:18 +02:00
Armin Novak
c3e847f472 Implemented timeouts for WaitForSingleObject.
Added assertions for functions not implemented.
2013-08-14 13:18:18 +02:00
Marc-André Moreau
b972830841 libfreerdp-codec: make use of ObjectPool for tiles 2013-08-13 09:34:15 -04:00
Marc-André Moreau
f8e870a258 libwinpr-utils: implement asynchronous mode for ListDictionary 2013-08-12 17:48:32 -04:00
Marc-André Moreau
356186ed54 Merge branch 'master' of github.com:awakecoding/FreeRDP 2013-08-12 12:09:44 -04:00
Marc-André Moreau
bb30ceb006 mfreerdp: cleanup 2013-08-09 21:23:08 -04:00
Alessandro Pilotti
644e0efa76 Fixes libwinpr build issue on Windows
Adds conditional statements in file.c to solve a Posix portability
issue on Windows introduced with the following commit:

913d532e0d
2013-08-09 02:45:31 +03:00
Marc-André Moreau
e31b9b7709 libwinpr-pipe: add missing link dependency 2013-08-07 16:00:21 -04:00
Marc-André Moreau
a9bf93ed6a libwinpr-pipe: add missing link dependencies for test code 2013-08-07 15:56:05 -04:00
Marc-André Moreau
34f9985add freerdp: merge with master 2013-08-07 15:48:57 -04:00
Marc-André Moreau
331933635c Merge pull request #1401 from nfedera/fix-2013-08-07-02
libwinpr-utils: Use criticalsection with spincount
2013-08-07 12:35:46 -07:00
Norbert Federa
3a58934eb2 libwinpr-utils: Use criticalsection with spincount
Use InitializeCriticalSectionAndSpinCount instead of IntializeCriticalSection.
Using spin counts for critical sections of short duration enables the calling
thread to avoid the wait operation in most situations which can dramatically
improve the overall performance on multiprocessor systems.

On Linux this change has no effect because the new winpr critical section
implementation does not use the SpinCount field under Linux because the NPTL
synchronization primitives are implemented using the extremely performant
futex system calls which have this magic already built in.

However, on Mac OS X this change improved the overall performance of the
multithreaded RemoteFX decoder by 25 percent.

I've used a SpinCount of 4000 which avoided 99 percent of the wait calls.
This value is also used by Microsoft's heap manager for its per-heap
critical sections.

Note: This change requires pull request #1397 to be merged.
2013-08-07 18:16:01 +02:00
Norbert Federa
2b25b4a520 libwinpr-sync: New complete critical section code
- Complete implementation including recursion support
- Added an intensive ctest (TestSynchCritical)
- Struct members are used exactly as Windows does it internally:
  LockCount starts at -1, RecursionCount at 0
- Same performance optimizations as internally on Windows:
    - Fast lock acquisition path using CAS -> SpinCount -> wait
    - SpinCount automatically disabled on uniprocessor systems
- On Linux SpinCount is disabled because it provided no advantage over NPTL/futex in all tests

Support for CRITICAL_SECTION's DebugInfo is not yet included (but trivial to add).
2013-08-07 10:20:04 +02:00
richterger
505facbb6f Fix off by one problem in StreamPool allocation 2013-08-07 08:01:33 +02:00
Marc-André Moreau
7b80b19306 cmake: add FindPixman.cmake 2013-08-05 20:50:23 -04:00
Marc-André Moreau
13872f33bf libwinpr-utils: implement doubly-linked list 2013-08-05 17:29:14 -04:00
Marc-André Moreau
190ed85a3d libwinpr-synch: add detection of timerfd support 2013-08-03 19:50:17 -04:00
Marc-André Moreau
ecc543d87d Merge branch 'master' of github.com:FreeRDP/FreeRDP into multitouch 2013-08-03 16:22:09 -04:00
Norbert Federa
81ef251fc8 winpr: improve and fix locking for data structures
- Improved/completed(almost) winpr's critical section implementation
- Replaced WaitForSingleObject locking with critical sections

Note:
WaitForSingleObject should _never_ be used for granular low-contention
locks as it _always_ enters the kernel.

Just replacing WaitForSingleObject locking in Bufferpool with
EnterCriticalSection boosts the multithreaded rfx decoder
performance by almost 400% on win32.
2013-08-02 12:07:05 +02:00
Marc-André Moreau
913d532e0d winpr: fix build on Linux 2013-07-30 10:57:54 -04:00
Marc-André Moreau
4d2bc6ba46 libwinpr-synch: add unit tests, initial waitable timer support 2013-07-29 13:07:39 -04:00
Marc-André Moreau
007bd87ff4 libwinpr-synch: start implementing waitable timers 2013-07-29 11:57:29 -04:00
Marc-André Moreau
8a4e83bdfb libfreerdp-core: fix server-side update encoding edge case 2013-07-28 16:31:38 -04:00
Benoît LeBlanc
03a401b8e6 CMakelists:
disabled installation of headers and libraries for the wayk client.
2013-07-25 21:59:21 -04:00
Marc-André Moreau
bef2ad5c92 libwinpr-pipe: added overlapped io tests for named pipes 2013-07-23 15:03:08 -04:00
Marc-André Moreau
507899ade9 libwinpr-pipe: initial basic named pipe support 2013-07-22 23:17:08 -04:00
Marc-André Moreau
65bc944def libwinpr-pipe: implement of more named pipes 2013-07-22 22:53:44 -04:00
Marc-André Moreau
afe1f22bcf libwinpr-pipe: start implementing named pipes 2013-07-22 18:20:34 -04:00
Marc-André Moreau
c6764f9034 libwinpr-pipe: added stubs for named pipes 2013-07-22 16:30:25 -04:00
Benoît LeBlanc
163cc975d9 Merge branch 'master' of git://github.com/awakecoding/FreeRDP
# By Marc-André Moreau
# Via Marc-André Moreau
* 'master' of git://github.com/awakecoding/FreeRDP:
  libwinpr-utils: implement ListDictionary
2013-07-07 22:02:09 -04:00
Marc-André Moreau
b3265b6958 libwinpr-utils: implement ListDictionary 2013-07-05 18:23:26 -04:00
Benoît LeBlanc
d72452b4f5 Merge branch 'master' of git://github.com/awakecoding/FreeRDP
# By Bernhard Miklautz (4) and others
# Via Marc-André Moreau
* 'master' of git://github.com/awakecoding/FreeRDP:
  libfreerdp-core: fix unused variable
  libfreerdp-codec: add bitmap encoder
  cmdline: unix/windows return detected error
  client/common: fixed command line parsing issue
  channels/serial: bring it back to life
  nla: invalidate sec handle after creation
  tls: updated certificate mismatch message
2013-07-05 16:35:08 -04:00
Benoît LeBlanc
c17c2f811b FreeRDP:
- replaced char* by const char* in function prototypes
- MacFreeRDP: moved assignation of context function pointers
- freerdp: added more pointer and return value validations to prevent crashes
2013-07-04 14:42:40 -04:00