On Mon, Feb 19, 2024, at 23:38, Elizabeth Figura wrote:
NtWaitForMultipleObjects() can receive a timeout in two forms, relative or absolute. Relative timeouts are unaffected by changes to the system time and do not count down while the system suspends; for absolute timeouts the opposite is true.
In order to make the interface and implementation simpler, the ntsync driver only deals in absolute timeouts. However, we need to be able to emulate both behaviours apropos suspension and time adjustment, which is achieved by allowing either the MONOTONIC or REALTIME clock to be used.
Signed-off-by: Elizabeth Figura zfigura@codeweavers.com
I understand that there is no practical problem in building up the API one patch at a time in the initial merge, but it still feels wrong to have an incompatible ABI change in the middle of the series:
@@ -35,6 +37,8 @@ struct ntsync_wait_args { __u32 owner; __u32 index; __u32 alert;
- __u32 flags;
- __u32 pad;
};
If this was patch to get merged at any later point, you'd have to support both the shorter and the longer structure layout with their distinct ioctl command codes.
If you do a v3 series, maybe just merge this patch into the one that introduces the struct ntsync_wait_args. Overall, you could probably have fewer but larger patches anyway without harming the review process, but other than this one that is not a problem.
Arnd