Rebase against fa262317480e52eb3420c4e0ba9bae9e17db4457

This commit is contained in:
Alistair Leslie-Hughes 2019-03-15 11:44:38 +11:00
parent 3d9797093d
commit 65e6bb8111
4 changed files with 76 additions and 64 deletions

View File

@ -1,4 +1,4 @@
From 25d8d0cbbab19ec990505c7cf1af4bcfcf7f5bfd Mon Sep 17 00:00:00 2001
From cadd504fc3631e7b0ceee0add7100b4182f9173e Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 16 Oct 2018 15:34:38 +1100
Subject: [PATCH] hid: Implement HidD_FlushQueue
@ -11,7 +11,7 @@ Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/dlls/hid/hid.spec b/dlls/hid/hid.spec
index cbae14c..549ceea 100644
index e4d4202..505c3d2 100644
--- a/dlls/hid/hid.spec
+++ b/dlls/hid/hid.spec
@@ -1,4 +1,4 @@
@ -21,12 +21,12 @@ index cbae14c..549ceea 100644
@ stdcall HidD_GetAttributes(long ptr)
@ stub HidD_GetConfiguration
diff --git a/dlls/hid/hidd.c b/dlls/hid/hidd.c
index 614e7c4..fa96bf9 100644
index 4b703ca..a4384aa 100644
--- a/dlls/hid/hidd.c
+++ b/dlls/hid/hidd.c
@@ -145,3 +145,11 @@ BOOLEAN WINAPI HidD_SetOutputReport(HANDLE HidDeviceObject, void *ReportBuffer,
@@ -158,3 +158,11 @@ BOOLEAN WINAPI HidD_SetOutputReport(HANDLE HidDeviceObject, void *ReportBuffer,
TRACE("(%p %p %u)\n", HidDeviceObject, ReportBuffer, ReportBufferLength);
return DeviceIoControl(HidDeviceObject, IOCTL_HID_SET_OUTPUT_REPORT, ReportBuffer, ReportBufferLength, NULL, 0, NULL, NULL);
return sync_ioctl(HidDeviceObject, IOCTL_HID_SET_OUTPUT_REPORT, ReportBuffer, ReportBufferLength, NULL, 0, NULL);
}
+
+BOOLEAN WINAPI HidD_FlushQueue(HANDLE HidDeviceObject)

View File

@ -1,17 +1,17 @@
From fac19f4dd587a1b8b23c87fe5ad11339d3cd3851 Mon Sep 17 00:00:00 2001
From 858272e45212c9bbcbd121b6a5fc7f25358cd40f Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 5 Aug 2017 03:39:37 +0200
Subject: ntdll: Use fast CS functions for threadpool locking.
Subject: [PATCH] ntdll: Use fast CS functions for threadpool locking.
---
dlls/ntdll/threadpool.c | 96 ++++++++++++++++++++++++-------------------------
1 file changed, 48 insertions(+), 48 deletions(-)
diff --git a/dlls/ntdll/threadpool.c b/dlls/ntdll/threadpool.c
index b723e6f66f8..f9dc6a5a441 100644
index db7391b..639e032 100644
--- a/dlls/ntdll/threadpool.c
+++ b/dlls/ntdll/threadpool.c
@@ -1191,7 +1191,7 @@ static void CALLBACK timerqueue_thread_proc( void *param )
@@ -1206,7 +1206,7 @@ static void CALLBACK timerqueue_thread_proc( void *param )
TRACE( "starting timer queue thread\n" );
@ -20,7 +20,7 @@ index b723e6f66f8..f9dc6a5a441 100644
for (;;)
{
NtQuerySystemTime( &now );
@@ -1265,7 +1265,7 @@ static void CALLBACK timerqueue_thread_proc( void *param )
@@ -1280,7 +1280,7 @@ static void CALLBACK timerqueue_thread_proc( void *param )
}
timerqueue.thread_running = FALSE;
@ -29,7 +29,7 @@ index b723e6f66f8..f9dc6a5a441 100644
TRACE( "terminating timer queue thread\n" );
RtlExitUserThread( 0 );
@@ -1311,7 +1311,7 @@ static NTSTATUS tp_timerqueue_lock( struct threadpool_object *timer )
@@ -1326,7 +1326,7 @@ static NTSTATUS tp_timerqueue_lock( struct threadpool_object *timer )
timer->u.timer.period = 0;
timer->u.timer.window_length = 0;
@ -38,7 +38,7 @@ index b723e6f66f8..f9dc6a5a441 100644
/* Make sure that the timerqueue thread is running. */
if (!timerqueue.thread_running)
@@ -1332,7 +1332,7 @@ static NTSTATUS tp_timerqueue_lock( struct threadpool_object *timer )
@@ -1347,7 +1347,7 @@ static NTSTATUS tp_timerqueue_lock( struct threadpool_object *timer )
timerqueue.objcount++;
}
@ -47,7 +47,7 @@ index b723e6f66f8..f9dc6a5a441 100644
return status;
}
@@ -1345,7 +1345,7 @@ static void tp_timerqueue_unlock( struct threadpool_object *timer )
@@ -1360,7 +1360,7 @@ static void tp_timerqueue_unlock( struct threadpool_object *timer )
{
assert( timer->type == TP_OBJECT_TYPE_TIMER );
@ -56,7 +56,7 @@ index b723e6f66f8..f9dc6a5a441 100644
if (timer->u.timer.timer_initialized)
{
/* If timer was pending, remove it. */
@@ -1364,7 +1364,7 @@ static void tp_timerqueue_unlock( struct threadpool_object *timer )
@@ -1379,7 +1379,7 @@ static void tp_timerqueue_unlock( struct threadpool_object *timer )
timer->u.timer.timer_initialized = FALSE;
}
@ -65,7 +65,7 @@ index b723e6f66f8..f9dc6a5a441 100644
}
/***********************************************************************
@@ -1382,7 +1382,7 @@ static void CALLBACK waitqueue_thread_proc( void *param )
@@ -1397,7 +1397,7 @@ static void CALLBACK waitqueue_thread_proc( void *param )
TRACE( "starting wait queue thread\n" );
@ -74,7 +74,7 @@ index b723e6f66f8..f9dc6a5a441 100644
for (;;)
{
@@ -1419,10 +1419,10 @@ static void CALLBACK waitqueue_thread_proc( void *param )
@@ -1434,10 +1434,10 @@ static void CALLBACK waitqueue_thread_proc( void *param )
/* All wait objects have been destroyed, if no new wait objects are created
* within some amount of time, then we can shutdown this thread. */
assert( num_handles == 0 );
@ -87,7 +87,7 @@ index b723e6f66f8..f9dc6a5a441 100644
if (status == STATUS_TIMEOUT && !bucket->objcount)
break;
@@ -1430,9 +1430,9 @@ static void CALLBACK waitqueue_thread_proc( void *param )
@@ -1445,9 +1445,9 @@ static void CALLBACK waitqueue_thread_proc( void *param )
else
{
handles[num_handles] = bucket->update_event;
@ -99,7 +99,7 @@ index b723e6f66f8..f9dc6a5a441 100644
if (status >= STATUS_WAIT_0 && status < STATUS_WAIT_0 + num_handles)
{
@@ -1505,7 +1505,7 @@ static void CALLBACK waitqueue_thread_proc( void *param )
@@ -1520,7 +1520,7 @@ static void CALLBACK waitqueue_thread_proc( void *param )
if (!--waitqueue.num_buckets)
assert( list_empty( &waitqueue.buckets ) );
@ -108,7 +108,7 @@ index b723e6f66f8..f9dc6a5a441 100644
TRACE( "terminating wait queue thread\n" );
@@ -1534,7 +1534,7 @@ static NTSTATUS tp_waitqueue_lock( struct threadpool_object *wait )
@@ -1549,7 +1549,7 @@ static NTSTATUS tp_waitqueue_lock( struct threadpool_object *wait )
wait->u.wait.timeout = 0;
wait->u.wait.handle = INVALID_HANDLE_VALUE;
@ -117,7 +117,7 @@ index b723e6f66f8..f9dc6a5a441 100644
/* Try to assign to existing bucket if possible. */
LIST_FOR_EACH_ENTRY( bucket, &waitqueue.buckets, struct waitqueue_bucket, bucket_entry )
@@ -1590,7 +1590,7 @@ static NTSTATUS tp_waitqueue_lock( struct threadpool_object *wait )
@@ -1605,7 +1605,7 @@ static NTSTATUS tp_waitqueue_lock( struct threadpool_object *wait )
}
out:
@ -126,7 +126,7 @@ index b723e6f66f8..f9dc6a5a441 100644
return status;
}
@@ -1601,7 +1601,7 @@ static void tp_waitqueue_unlock( struct threadpool_object *wait )
@@ -1616,7 +1616,7 @@ static void tp_waitqueue_unlock( struct threadpool_object *wait )
{
assert( wait->type == TP_OBJECT_TYPE_WAIT );
@ -135,7 +135,7 @@ index b723e6f66f8..f9dc6a5a441 100644
if (wait->u.wait.bucket)
{
struct waitqueue_bucket *bucket = wait->u.wait.bucket;
@@ -1613,7 +1613,7 @@ static void tp_waitqueue_unlock( struct threadpool_object *wait )
@@ -1628,7 +1628,7 @@ static void tp_waitqueue_unlock( struct threadpool_object *wait )
NtSetEvent( bucket->update_event, NULL );
}
@ -144,7 +144,7 @@ index b723e6f66f8..f9dc6a5a441 100644
}
/***********************************************************************
@@ -1721,7 +1721,7 @@ static NTSTATUS tp_threadpool_lock( struct threadpool **out, TP_CALLBACK_ENVIRON
@@ -1759,7 +1759,7 @@ static NTSTATUS tp_threadpool_lock( struct threadpool **out, TP_CALLBACK_ENVIRON
pool = default_threadpool;
}
@ -153,7 +153,7 @@ index b723e6f66f8..f9dc6a5a441 100644
/* Make sure that the threadpool has at least one thread. */
if (!pool->num_workers)
@@ -1735,7 +1735,7 @@ static NTSTATUS tp_threadpool_lock( struct threadpool **out, TP_CALLBACK_ENVIRON
@@ -1773,7 +1773,7 @@ static NTSTATUS tp_threadpool_lock( struct threadpool **out, TP_CALLBACK_ENVIRON
pool->objcount++;
}
@ -162,7 +162,7 @@ index b723e6f66f8..f9dc6a5a441 100644
if (status != STATUS_SUCCESS)
return status;
@@ -1751,9 +1751,9 @@ static NTSTATUS tp_threadpool_lock( struct threadpool **out, TP_CALLBACK_ENVIRON
@@ -1789,9 +1789,9 @@ static NTSTATUS tp_threadpool_lock( struct threadpool **out, TP_CALLBACK_ENVIRON
*/
static void tp_threadpool_unlock( struct threadpool *pool )
{
@ -174,7 +174,7 @@ index b723e6f66f8..f9dc6a5a441 100644
tp_threadpool_release( pool );
}
@@ -1882,10 +1882,10 @@ static void tp_object_initialize( struct threadpool_object *object, struct threa
@@ -1928,10 +1928,10 @@ static void tp_object_initialize( struct threadpool_object *object, struct threa
struct threadpool_group *group = object->group;
interlocked_inc( &group->refcount );
@ -187,7 +187,7 @@ index b723e6f66f8..f9dc6a5a441 100644
}
if (is_simple_callback)
@@ -1906,7 +1906,7 @@ static void tp_object_submit( struct threadpool_object *object, BOOL signaled )
@@ -1957,7 +1957,7 @@ static void tp_object_submit( struct threadpool_object *object, BOOL signaled )
assert( !object->shutdown );
assert( !pool->shutdown );
@ -196,7 +196,7 @@ index b723e6f66f8..f9dc6a5a441 100644
/* Start new worker threads if required. */
if (pool->num_busy_workers >= pool->num_workers &&
@@ -1929,7 +1929,7 @@ static void tp_object_submit( struct threadpool_object *object, BOOL signaled )
@@ -1980,7 +1980,7 @@ static void tp_object_submit( struct threadpool_object *object, BOOL signaled )
RtlWakeConditionVariable( &pool->update_event );
}
@ -205,7 +205,7 @@ index b723e6f66f8..f9dc6a5a441 100644
}
/***********************************************************************
@@ -1942,7 +1942,7 @@ static void tp_object_cancel( struct threadpool_object *object )
@@ -1993,7 +1993,7 @@ static void tp_object_cancel( struct threadpool_object *object )
struct threadpool *pool = object->pool;
LONG pending_callbacks = 0;
@ -214,7 +214,7 @@ index b723e6f66f8..f9dc6a5a441 100644
if (object->num_pending_callbacks)
{
pending_callbacks = object->num_pending_callbacks;
@@ -1952,7 +1952,7 @@ static void tp_object_cancel( struct threadpool_object *object )
@@ -2003,7 +2003,7 @@ static void tp_object_cancel( struct threadpool_object *object )
if (object->type == TP_OBJECT_TYPE_WAIT)
object->u.wait.signaled = 0;
}
@ -223,7 +223,7 @@ index b723e6f66f8..f9dc6a5a441 100644
while (pending_callbacks--)
tp_object_release( object );
@@ -1968,7 +1968,7 @@ static void tp_object_wait( struct threadpool_object *object, BOOL group_wait )
@@ -2019,7 +2019,7 @@ static void tp_object_wait( struct threadpool_object *object, BOOL group_wait )
{
struct threadpool *pool = object->pool;
@ -232,7 +232,7 @@ index b723e6f66f8..f9dc6a5a441 100644
if (group_wait)
{
while (object->num_pending_callbacks || object->num_running_callbacks)
@@ -1979,7 +1979,7 @@ static void tp_object_wait( struct threadpool_object *object, BOOL group_wait )
@@ -2030,7 +2030,7 @@ static void tp_object_wait( struct threadpool_object *object, BOOL group_wait )
while (object->num_pending_callbacks || object->num_associated_callbacks)
RtlSleepConditionVariableCS( &object->finished_event, &pool->cs, NULL );
}
@ -241,7 +241,7 @@ index b723e6f66f8..f9dc6a5a441 100644
}
/***********************************************************************
@@ -2017,13 +2017,13 @@ static BOOL tp_object_release( struct threadpool_object *object )
@@ -2068,13 +2068,13 @@ static BOOL tp_object_release( struct threadpool_object *object )
{
struct threadpool_group *group = object->group;
@ -257,7 +257,7 @@ index b723e6f66f8..f9dc6a5a441 100644
tp_group_release( group );
}
@@ -2052,7 +2052,7 @@ static void CALLBACK threadpool_worker_proc( void *param )
@@ -2117,7 +2117,7 @@ static void CALLBACK threadpool_worker_proc( void *param )
TRACE( "starting worker thread for pool %p\n", pool );
@ -266,7 +266,7 @@ index b723e6f66f8..f9dc6a5a441 100644
pool->num_busy_workers--;
for (;;)
{
@@ -2078,7 +2078,7 @@ static void CALLBACK threadpool_worker_proc( void *param )
@@ -2143,7 +2143,7 @@ static void CALLBACK threadpool_worker_proc( void *param )
object->num_associated_callbacks++;
object->num_running_callbacks++;
pool->num_busy_workers++;
@ -275,7 +275,7 @@ index b723e6f66f8..f9dc6a5a441 100644
/* Initialize threadpool instance struct. */
callback_instance = (TP_CALLBACK_INSTANCE *)&instance;
@@ -2171,7 +2171,7 @@ static void CALLBACK threadpool_worker_proc( void *param )
@@ -2236,7 +2236,7 @@ static void CALLBACK threadpool_worker_proc( void *param )
}
skip_cleanup:
@ -284,7 +284,7 @@ index b723e6f66f8..f9dc6a5a441 100644
pool->num_busy_workers--;
/* Simple callbacks are automatically shutdown after execution. */
@@ -2213,7 +2213,7 @@ static void CALLBACK threadpool_worker_proc( void *param )
@@ -2278,7 +2278,7 @@ static void CALLBACK threadpool_worker_proc( void *param )
}
}
pool->num_workers--;
@ -293,7 +293,7 @@ index b723e6f66f8..f9dc6a5a441 100644
TRACE( "terminating worker thread for pool %p\n", pool );
tp_threadpool_release( pool );
@@ -2389,7 +2389,7 @@ NTSTATUS WINAPI TpCallbackMayRunLong( TP_CALLBACK_INSTANCE *instance )
@@ -2454,7 +2454,7 @@ NTSTATUS WINAPI TpCallbackMayRunLong( TP_CALLBACK_INSTANCE *instance )
return STATUS_SUCCESS;
pool = object->pool;
@ -302,7 +302,7 @@ index b723e6f66f8..f9dc6a5a441 100644
/* Start new worker threads if required. */
if (pool->num_busy_workers >= pool->num_workers)
@@ -2404,7 +2404,7 @@ NTSTATUS WINAPI TpCallbackMayRunLong( TP_CALLBACK_INSTANCE *instance )
@@ -2469,7 +2469,7 @@ NTSTATUS WINAPI TpCallbackMayRunLong( TP_CALLBACK_INSTANCE *instance )
}
}
@ -311,7 +311,7 @@ index b723e6f66f8..f9dc6a5a441 100644
this->may_run_long = TRUE;
return status;
}
@@ -2485,13 +2485,13 @@ VOID WINAPI TpDisassociateCallback( TP_CALLBACK_INSTANCE *instance )
@@ -2550,13 +2550,13 @@ VOID WINAPI TpDisassociateCallback( TP_CALLBACK_INSTANCE *instance )
return;
pool = object->pool;
@ -327,7 +327,7 @@ index b723e6f66f8..f9dc6a5a441 100644
this->associated = FALSE;
}
@@ -2543,7 +2543,7 @@ VOID WINAPI TpReleaseCleanupGroupMembers( TP_CLEANUP_GROUP *group, BOOL cancel_p
@@ -2608,7 +2608,7 @@ VOID WINAPI TpReleaseCleanupGroupMembers( TP_CLEANUP_GROUP *group, BOOL cancel_p
TRACE( "%p %u %p\n", group, cancel_pending, userdata );
@ -336,7 +336,7 @@ index b723e6f66f8..f9dc6a5a441 100644
/* Unset group, increase references, and mark objects for shutdown */
LIST_FOR_EACH_ENTRY_SAFE( object, next, &this->members, struct threadpool_object, group_entry )
@@ -2569,7 +2569,7 @@ VOID WINAPI TpReleaseCleanupGroupMembers( TP_CLEANUP_GROUP *group, BOOL cancel_p
@@ -2634,7 +2634,7 @@ VOID WINAPI TpReleaseCleanupGroupMembers( TP_CLEANUP_GROUP *group, BOOL cancel_p
list_init( &members );
list_move_tail( &members, &this->members );
@ -345,7 +345,7 @@ index b723e6f66f8..f9dc6a5a441 100644
/* Cancel pending callbacks if requested */
if (cancel_pending)
@@ -2669,10 +2669,10 @@ VOID WINAPI TpSetPoolMaxThreads( TP_POOL *pool, DWORD maximum )
@@ -2734,10 +2734,10 @@ VOID WINAPI TpSetPoolMaxThreads( TP_POOL *pool, DWORD maximum )
TRACE( "%p %u\n", pool, maximum );
@ -358,7 +358,7 @@ index b723e6f66f8..f9dc6a5a441 100644
}
/***********************************************************************
@@ -2685,7 +2685,7 @@ BOOL WINAPI TpSetPoolMinThreads( TP_POOL *pool, DWORD minimum )
@@ -2750,7 +2750,7 @@ BOOL WINAPI TpSetPoolMinThreads( TP_POOL *pool, DWORD minimum )
TRACE( "%p %u\n", pool, minimum );
@ -367,7 +367,7 @@ index b723e6f66f8..f9dc6a5a441 100644
while (this->num_workers < minimum)
{
@@ -2700,7 +2700,7 @@ BOOL WINAPI TpSetPoolMinThreads( TP_POOL *pool, DWORD minimum )
@@ -2765,7 +2765,7 @@ BOOL WINAPI TpSetPoolMinThreads( TP_POOL *pool, DWORD minimum )
this->max_workers = max( this->min_workers, this->max_workers );
}
@ -376,7 +376,7 @@ index b723e6f66f8..f9dc6a5a441 100644
return !status;
}
@@ -2716,7 +2716,7 @@ VOID WINAPI TpSetTimer( TP_TIMER *timer, LARGE_INTEGER *timeout, LONG period, LO
@@ -2781,7 +2781,7 @@ VOID WINAPI TpSetTimer( TP_TIMER *timer, LARGE_INTEGER *timeout, LONG period, LO
TRACE( "%p %p %u %u\n", timer, timeout, period, window_length );
@ -385,7 +385,7 @@ index b723e6f66f8..f9dc6a5a441 100644
assert( this->u.timer.timer_initialized );
this->u.timer.timer_set = timeout != NULL;
@@ -2776,7 +2776,7 @@ VOID WINAPI TpSetTimer( TP_TIMER *timer, LARGE_INTEGER *timeout, LONG period, LO
@@ -2841,7 +2841,7 @@ VOID WINAPI TpSetTimer( TP_TIMER *timer, LARGE_INTEGER *timeout, LONG period, LO
this->u.timer.timer_pending = TRUE;
}
@ -394,7 +394,7 @@ index b723e6f66f8..f9dc6a5a441 100644
if (submit_timer)
tp_object_submit( this, FALSE );
@@ -2793,7 +2793,7 @@ VOID WINAPI TpSetWait( TP_WAIT *wait, HANDLE handle, LARGE_INTEGER *timeout )
@@ -2858,7 +2858,7 @@ VOID WINAPI TpSetWait( TP_WAIT *wait, HANDLE handle, LARGE_INTEGER *timeout )
TRACE( "%p %p %p\n", wait, handle, timeout );
@ -403,7 +403,7 @@ index b723e6f66f8..f9dc6a5a441 100644
assert( this->u.wait.bucket );
this->u.wait.handle = handle;
@@ -2837,7 +2837,7 @@ VOID WINAPI TpSetWait( TP_WAIT *wait, HANDLE handle, LARGE_INTEGER *timeout )
@@ -2902,7 +2902,7 @@ VOID WINAPI TpSetWait( TP_WAIT *wait, HANDLE handle, LARGE_INTEGER *timeout )
NtSetEvent( bucket->update_event, NULL );
}
@ -413,5 +413,5 @@ index b723e6f66f8..f9dc6a5a441 100644
if (submit_wait)
tp_object_submit( this, FALSE );
--
2.13.1
1.9.1

View File

@ -1,4 +1,4 @@
From 81cc694e55e5febfc063f6b323fea0546c75984a Mon Sep 17 00:00:00 2001
From 58c4900ecbdb4dbf745c9af78c040d2cfdcff288 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Tue, 19 Aug 2014 22:10:49 -0600
Subject: [PATCH] ntdll: Implement retrieving DOS attributes in
@ -7,17 +7,17 @@ Subject: [PATCH] ntdll: Implement retrieving DOS attributes in
---
configure.ac | 12 ++++++++++++
dlls/ntdll/file.c | 22 +++++++++++++++++++++-
include/wine/port.h | 8 ++++++++
include/wine/port.h | 20 ++++++++++++++++++++
libs/port/Makefile.in | 3 ++-
libs/port/xattr.c | 39 +++++++++++++++++++++++++++++++++++++++
5 files changed, 82 insertions(+), 2 deletions(-)
5 files changed, 94 insertions(+), 2 deletions(-)
create mode 100644 libs/port/xattr.c
diff --git a/configure.ac b/configure.ac
index dfa130e..affa3f9 100644
index 5c4e6fd..9e0dcf0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -83,6 +83,7 @@ AC_ARG_WITH(udev, AS_HELP_STRING([--without-udev],[do not use udev (plug an
@@ -84,6 +84,7 @@ AC_ARG_WITH(udev, AS_HELP_STRING([--without-udev],[do not use udev (plug an
AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)]))
AC_ARG_WITH(vkd3d, AS_HELP_STRING([--without-vkd3d],[do not use vkd3d (Direct3D 12 support)]))
AC_ARG_WITH(vulkan, AS_HELP_STRING([--without-vulkan],[do not use Vulkan]))
@ -25,7 +25,7 @@ index dfa130e..affa3f9 100644
AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi])
AC_ARG_WITH(xcursor, AS_HELP_STRING([--without-xcursor],[do not use the Xcursor extension]),
@@ -716,6 +717,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
@@ -703,6 +704,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
#include <sys/socket.h>
#endif])
@ -44,7 +44,7 @@ index dfa130e..affa3f9 100644
AC_SUBST(DLLFLAGS,"-D_REENTRANT")
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index 8e4f52c..af6f6a4 100644
index d0aaadf..27d2ce0 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -122,6 +122,22 @@ mode_t FILE_umask = 0;
@ -89,13 +89,25 @@ index 8e4f52c..af6f6a4 100644
}
diff --git a/include/wine/port.h b/include/wine/port.h
index a3b6c6f..f3b6eb5 100644
index 2f6e9eb..902d674 100644
--- a/include/wine/port.h
+++ b/include/wine/port.h
@@ -391,6 +391,14 @@ extern int mkstemps(char *template, int suffix_len);
extern int _spawnvp(int mode, const char *cmdname, const char * const argv[]);
#endif
@@ -335,6 +335,26 @@ int usleep (unsigned int useconds);
extern int mkstemps(char *template, int suffix_len);
+/* Process creation flags */
+#ifndef _P_WAIT
+# define _P_WAIT 0
+# define _P_NOWAIT 1
+# define _P_OVERLAY 2
+# define _P_NOWAITO 3
+# define _P_DETACH 4
+#endif
+#ifndef HAVE__SPAWNVP
+extern int _spawnvp(int mode, const char *cmdname, const char * const argv[]);
+#endif
+
+/* Extended attribute functions */
+
+#ifndef XATTR_USER_PREFIX
@ -108,10 +120,10 @@ index a3b6c6f..f3b6eb5 100644
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
diff --git a/libs/port/Makefile.in b/libs/port/Makefile.in
index c87b99de..111807a 100644
index 86b9022..b09dc54 100644
--- a/libs/port/Makefile.in
+++ b/libs/port/Makefile.in
@@ -106,4 +106,5 @@ C_SRCS = \
@@ -102,4 +102,5 @@ C_SRCS = \
symlink.c \
usleep.c \
utf8.c \

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "73355cab96de112f5125907424b37289afc6ebe7"
echo "fa262317480e52eb3420c4e0ba9bae9e17db4457"
}
# Show version information