4 * Copyright (C) 2020 Alexandre Julliard
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #ifndef __NTDLL_UNIXLIB_H
22 #define __NTDLL_UNIXLIB_H
24 #include "wine/debug.h"
26 struct _DISPATCHER_CONTEXT
;
28 /* increment this when you change the function table */
29 #define NTDLL_UNIXLIB_VERSION 125
35 TEB
* (WINAPI
*NtCurrentTeb
)(void);
38 /* other Win32 API functions */
39 NTSTATUS (WINAPI
*DbgUiIssueRemoteBreakin
)( HANDLE process
);
40 LONGLONG (WINAPI
*RtlGetSystemTimePrecise
)(void);
41 NTSTATUS (WINAPI
*RtlWaitOnAddress
)( const void *addr
, const void *cmp
, SIZE_T size
,
42 const LARGE_INTEGER
*timeout
);
43 void (WINAPI
*RtlWakeAddressAll
)( const void *addr
);
44 void (WINAPI
*RtlWakeAddressSingle
)( const void *addr
);
47 NTSTATUS (CDECL
*fast_RtlpWaitForCriticalSection
)( RTL_CRITICAL_SECTION
*crit
, int timeout
);
48 NTSTATUS (CDECL
*fast_RtlpUnWaitCriticalSection
)( RTL_CRITICAL_SECTION
*crit
);
49 NTSTATUS (CDECL
*fast_RtlDeleteCriticalSection
)( RTL_CRITICAL_SECTION
*crit
);
50 NTSTATUS (CDECL
*fast_RtlTryAcquireSRWLockExclusive
)( RTL_SRWLOCK
*lock
);
51 NTSTATUS (CDECL
*fast_RtlAcquireSRWLockExclusive
)( RTL_SRWLOCK
*lock
);
52 NTSTATUS (CDECL
*fast_RtlTryAcquireSRWLockShared
)( RTL_SRWLOCK
*lock
);
53 NTSTATUS (CDECL
*fast_RtlAcquireSRWLockShared
)( RTL_SRWLOCK
*lock
);
54 NTSTATUS (CDECL
*fast_RtlReleaseSRWLockExclusive
)( RTL_SRWLOCK
*lock
);
55 NTSTATUS (CDECL
*fast_RtlReleaseSRWLockShared
)( RTL_SRWLOCK
*lock
);
56 NTSTATUS (CDECL
*fast_RtlWakeConditionVariable
)( RTL_CONDITION_VARIABLE
*variable
, int count
);
57 NTSTATUS (CDECL
*fast_wait_cv
)( RTL_CONDITION_VARIABLE
*variable
, const void *value
,
58 const LARGE_INTEGER
*timeout
);
61 double (CDECL
*atan
)( double d
);
62 double (CDECL
*ceil
)( double d
);
63 double (CDECL
*cos
)( double d
);
64 double (CDECL
*fabs
)( double d
);
65 double (CDECL
*floor
)( double d
);
66 double (CDECL
*log
)( double d
);
67 double (CDECL
*pow
)( double x
, double y
);
68 double (CDECL
*sin
)( double d
);
69 double (CDECL
*sqrt
)( double d
);
70 double (CDECL
*tan
)( double d
);
72 /* loader functions */
73 NTSTATUS (CDECL
*load_so_dll
)( UNICODE_STRING
*nt_name
, void **module
);
74 NTSTATUS (CDECL
*init_unix_lib
)( void *module
, DWORD reason
, const void *ptr_in
, void *ptr_out
);
75 NTSTATUS (CDECL
*unwind_builtin_dll
)( ULONG type
, struct _DISPATCHER_CONTEXT
*dispatch
,
79 #endif /* __NTDLL_UNIXLIB_H */