Chip Davis
289d456dd6
ntdll: Fix tick count calculation on Mac.
...
Inspired by a patch by Andrew Eikum.
macOS's mach_absolute_time() stops counting when the computer goes to
sleep/suspend/hibernate/etc. However, Windows's GetTickCount() does not
stop counting. mach_continuous_time() matches Windows's behavior.
BSD's CLOCK_MONOTONIC already counts asleep time.
Unfortunately, there is no clock source on Linux which does exactly what
we want. CLOCK_MONOTONIC_RAW is unaffected by NTP adjustment, but like
mach_absolute_time() doesn't keep ticking when the computer is asleep.
CLOCK_BOOTTIME does keep ticking, but it is affected by NTP adjustments.
CLOCK_MONOTONIC has both problems. What's needed is a
CLOCK_BOOTTIME_RAW, which would not be slewed by adjtimex(2) and would
count time spent asleep.
To avoid issues with skew and performance, this patch falls back to
mach_absolute_time() on macOS if mach_continuous_time() is unavailable.
Note that mach_continuous_time() was introduced in macOS 10.12, meaning
that if the minimum version required is less than that, it will be
linked weakly. Therefore we must check that it is nonnull before
attempting to call it.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 20:45:46 +01:00
Jacek Caban
b2a546c92d
server: Introduce kernel_object struct for generic association between server and kernel objects.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:55:15 +01:00
Alexandre Julliard
ac7ae92af1
server: Allow specifying the security descriptor for a new process.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-20 14:50:48 +02:00
Alexandre Julliard
af8f3ae333
server: Move initial thread creation out of the create_process() function.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-20 14:50:48 +02:00
Alexandre Julliard
be40b01c37
server: Align object attributes to a DWORD-boundary.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-20 12:59:32 +02:00
Alexandre Julliard
aec7befb51
server: Avoid potential size overflow for empty object attributes.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-18 20:19:11 +02:00
Ken Thomases
1984e86b44
server: On macOS, don't use clock_gettime() even if it's available.
...
The problem is building against the 10.12 or later SDK but deploying to 10.11
or earlier. Support for clock_gettime() is new with 10.12 so configure finds
it and the code uses it, but the symbol is weak linked and resolves to NULL
when running on earlier versions.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-02 10:33:16 +02:00
Jacek Caban
ad1e0609a0
server: Get rid of no loner used cancel_async from fd_ops.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-01 13:50:59 +01:00
Alexandre Julliard
438dae524d
server: Avoid some compiler warnings when EWOULDBLOCK == EAGAIN.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-30 19:09:20 +09:00
Alexandre Julliard
ff9d90bbb0
server: Use a standard object for object attribute roots instead of a directory.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-12 23:07:30 +09:00
Alexandre Julliard
f55db7882d
server: Add link_name and unlink_name object operations.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-04 21:07:19 +09:00
Alexandre Julliard
37503be654
server: Fix checks for a valid directory in object attributes.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-01 14:57:37 +09:00
Alexandre Julliard
cd6e9c38e4
server: Fix constraints on the length of NT object names.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-19 20:48:08 +09:00
Alexandre Julliard
c4843d4a45
server: Add a helper function to skip the object attributes structure.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-19 20:48:07 +09:00
Alexandre Julliard
4c763a41ee
server: Allow the object attributes to be omitted in requests.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-16 00:05:57 +09:00
Alexandre Julliard
9504e2addf
server: Add a helper function to validate and return object attributes.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-16 00:05:57 +09:00
Alexandre Julliard
ea919d9de4
server: Use strerror instead of perror.
2013-05-07 12:19:22 +02:00
Alexandre Julliard
9fdf7bc771
server: Use socklen_t where appropriate.
2013-03-06 13:40:58 +01:00
Alexandre Julliard
a74dc1a119
server: Use the monotonic time counter also on the server side.
2013-01-30 13:05:30 +01:00
Adrian Bunk
9d5c178b24
server: Use waitpid() instead of wait4().
2012-09-24 22:27:30 +02:00
Alexandre Julliard
3acc2068a0
server: Cope with stdio file descriptors being closed on startup.
2011-11-15 11:39:42 +01:00
Alexandre Julliard
179715251d
server: Make the fd passing code slightly more portable.
2010-09-30 11:53:07 +02:00
Alexandre Julliard
0d3d456bd0
server: Make object handles ints instead of pointers.
2008-12-08 16:04:20 +01:00
Alexandre Julliard
161160f05a
server: Keep a file descriptor open to the config directory to make sure we don't write the registry in the wrong place.
2008-04-17 12:41:34 +02:00
Alexandre Julliard
2f1e73cb35
server: Wait for the expiration of all the process SIGKILL timers before exiting the server.
2008-01-07 17:19:05 +01:00
Alexandre Julliard
af268c6211
server: Redesign the server shutdown processing.
...
System processes are now killed only after the server persistence
delay has expired. New processes are not allowed to start during
shutdown.
2008-01-03 11:40:03 +01:00
Alexandre Julliard
307cb09a62
server: Use exponential backoff when waiting for wineserver -k to complete.
2008-01-02 16:13:08 +01:00
Alexandre Julliard
8382eb01b2
server: Return correct object types in the get_directory_entry request.
2007-12-05 18:16:42 +01:00
Rob Shearman
c1707d8938
server: Add get_sd and set_sd object operations to allow the security descriptor to be stored somewhere other than server memory, such as on disk.
2007-10-04 12:30:52 +02:00
Alexandre Julliard
aaf477f292
server: Change the timeout handling to use NT-style 64-bit timeouts everywhere.
2007-04-17 20:08:59 +02:00
Alexandre Julliard
635714397f
server: Add infrastructure for ioctl server request.
2007-04-16 14:45:03 +02:00
Alexandre Julliard
3f0575943e
server: Don't bother with default entry points for objects that don't even return an fd.
2007-04-12 20:21:53 +02:00
Alexandre Julliard
7a9363a4d4
server: Rename the get_file_info function to get_fd_type and get rid of the flags.
2007-04-10 22:26:23 +02:00
Alexandre Julliard
f85437c57f
server: Store the opening options in the file descriptor instead of in the individual objects.
...
Allows moving the FD_FLAG_OVERLAPPED support to the generic
get_handle_fd request handling.
2007-04-10 22:25:07 +02:00
Alexandre Julliard
72bff2e445
server: Add support for restarting an async I/O when the client side couldn't finish it right away.
2007-04-10 17:07:27 +02:00
Alexandre Julliard
7e71c1ddee
server: Add an open_file() function to the object operations.
2007-03-22 11:44:29 +01:00
Alexandre Julliard
cd1c7fc056
server: Add hooks to support process tracing mechanisms other than ptrace.
2006-12-29 16:56:11 +01:00
Michael Stefaniuc
5cecceccb2
server: Remove redundant NULL check before free() (found by Smatch).
2006-10-10 12:56:16 +02:00
Alexandre Julliard
81977b773b
server: Kill the process without SIGTERM when the fd socket is closed.
2006-09-21 11:14:45 +02:00
Alexandre Julliard
3a4c04dce4
server: Make sure to completely kill processes before returning from a wineserver -k.
2006-08-14 20:40:31 +02:00
Alexandre Julliard
753c8706f5
server: Only call gettimeofday once per poll loop.
2006-08-10 16:42:09 +02:00
Alexandre Julliard
5522446848
server: Don't crash on invalid request sizes.
2006-07-27 14:39:33 +02:00
Alexandre Julliard
c627601c3b
server: Convert the server start time to the abs_time_t type.
2006-07-26 14:50:55 +02:00
Alexandre Julliard
0f273c17ff
server: Added data_size_t type to represent sizes in the server protocol.
...
Make it an unsigned int to save some space on Win64, if we need to
transfer more than 4Gb over the server pipe something is seriously
wrong.
2006-07-26 11:11:03 +02:00
Alexandre Julliard
c316f0e47f
server: Simplify process creation.
...
Pass the socket for the new process from the parent through the
environment.
Perform initialisations during the new_process request.
2006-07-19 14:00:10 +02:00
Alexandre Julliard
5558652ea3
server: Don't report a fatal protocol error for things that we can recover from.
2006-06-08 10:26:02 +02:00
Alexandre Julliard
202ef6901e
server: Print process/thread id instead of pointer in protocol errors.
2006-06-07 14:20:38 +02:00
Alexandre Julliard
4ec9e110b0
server: Return an error for invalid requests instead of killing the client process.
2006-05-28 18:27:02 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Alexandre Julliard
c5c599d478
server: Avoid crash on startup when the configuration dir doesn't exist.
2006-03-31 13:06:04 +02:00