Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
f7f4e9e3
Commit
f7f4e9e3
authored
May 07, 2010
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
include: Force inlining exported API functions to avoid duplicate definitions.
parent
91431e08
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
37 deletions
+32
-37
winbase.h
include/winbase.h
+22
-22
library.h
include/wine/library.h
+4
-9
winnt.h
include/winnt.h
+6
-6
No files found.
include/winbase.h
View file @
f7f4e9e3
...
...
@@ -2318,9 +2318,9 @@ extern WCHAR * CDECL wine_get_dos_file_name( LPCSTR str );
/* Interlocked functions */
#ifdef __i386__
# if defined(__GNUC__) && !defined(_NTSYSTEM_)
# if defined(__GNUC__) && !defined(_NTSYSTEM_)
&& ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)))
static
inline
LONG
WINAPI
InterlockedCompareExchange
(
LONG
volatile
*
dest
,
LONG
xchg
,
LONG
compare
)
static
FORCEINLINE
LONG
WINAPI
InterlockedCompareExchange
(
LONG
volatile
*
dest
,
LONG
xchg
,
LONG
compare
)
{
LONG
ret
;
__asm__
__volatile__
(
"lock; cmpxchgl %2,(%1)"
...
...
@@ -2328,7 +2328,7 @@ static inline LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG
return
ret
;
}
static
inline
LONG
WINAPI
InterlockedExchange
(
LONG
volatile
*
dest
,
LONG
val
)
static
FORCEINLINE
LONG
WINAPI
InterlockedExchange
(
LONG
volatile
*
dest
,
LONG
val
)
{
LONG
ret
;
__asm__
__volatile__
(
"lock; xchgl %0,(%1)"
...
...
@@ -2336,7 +2336,7 @@ static inline LONG WINAPI InterlockedExchange( LONG volatile *dest, LONG val )
return
ret
;
}
static
inline
LONG
WINAPI
InterlockedExchangeAdd
(
LONG
volatile
*
dest
,
LONG
incr
)
static
FORCEINLINE
LONG
WINAPI
InterlockedExchangeAdd
(
LONG
volatile
*
dest
,
LONG
incr
)
{
LONG
ret
;
__asm__
__volatile__
(
"lock; xaddl %0,(%1)"
...
...
@@ -2344,12 +2344,12 @@ static inline LONG WINAPI InterlockedExchangeAdd( LONG volatile *dest, LONG incr
return
ret
;
}
static
inline
LONG
WINAPI
InterlockedIncrement
(
LONG
volatile
*
dest
)
static
FORCEINLINE
LONG
WINAPI
InterlockedIncrement
(
LONG
volatile
*
dest
)
{
return
InterlockedExchangeAdd
(
dest
,
1
)
+
1
;
}
static
inline
LONG
WINAPI
InterlockedDecrement
(
LONG
volatile
*
dest
)
static
FORCEINLINE
LONG
WINAPI
InterlockedDecrement
(
LONG
volatile
*
dest
)
{
return
InterlockedExchangeAdd
(
dest
,
-
1
)
-
1
;
}
...
...
@@ -2364,12 +2364,12 @@ WINBASEAPI LONG WINAPI InterlockedIncrement(LONG volatile*);
# endif
/* __GNUC__ */
static
inline
PVOID
WINAPI
InterlockedCompareExchangePointer
(
PVOID
volatile
*
dest
,
PVOID
xchg
,
PVOID
compare
)
static
FORCEINLINE
PVOID
WINAPI
InterlockedCompareExchangePointer
(
PVOID
volatile
*
dest
,
PVOID
xchg
,
PVOID
compare
)
{
return
(
PVOID
)
InterlockedCompareExchange
(
(
LONG
volatile
*
)
dest
,
(
LONG
)
xchg
,
(
LONG
)
compare
);
}
static
inline
PVOID
WINAPI
InterlockedExchangePointer
(
PVOID
volatile
*
dest
,
PVOID
val
)
static
FORCEINLINE
PVOID
WINAPI
InterlockedExchangePointer
(
PVOID
volatile
*
dest
,
PVOID
val
)
{
return
(
PVOID
)
InterlockedExchange
(
(
LONG
volatile
*
)
dest
,
(
LONG
)
val
);
}
...
...
@@ -2378,7 +2378,7 @@ WINBASEAPI LONGLONG WINAPI InterlockedCompareExchange64(LONGLONG volatile*,LONGL
#else
/* __i386__ */
static
inline
LONG
WINAPI
InterlockedCompareExchange
(
LONG
volatile
*
dest
,
LONG
xchg
,
LONG
compare
)
static
FORCEINLINE
LONG
WINAPI
InterlockedCompareExchange
(
LONG
volatile
*
dest
,
LONG
xchg
,
LONG
compare
)
{
#if defined(__x86_64__) && defined(__GNUC__)
LONG
ret
;
...
...
@@ -2391,7 +2391,7 @@ static inline LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG
#endif
}
static
inline
PVOID
WINAPI
InterlockedCompareExchangePointer
(
PVOID
volatile
*
dest
,
PVOID
xchg
,
PVOID
compare
)
static
FORCEINLINE
PVOID
WINAPI
InterlockedCompareExchangePointer
(
PVOID
volatile
*
dest
,
PVOID
xchg
,
PVOID
compare
)
{
#if defined(__x86_64__) && defined(__GNUC__)
PVOID
ret
;
...
...
@@ -2404,7 +2404,7 @@ static inline PVOID WINAPI InterlockedCompareExchangePointer( PVOID volatile *de
#endif
}
static
inline
LONGLONG
WINAPI
InterlockedCompareExchange64
(
LONGLONG
volatile
*
dest
,
LONGLONG
xchg
,
LONGLONG
compare
)
static
FORCEINLINE
LONGLONG
WINAPI
InterlockedCompareExchange64
(
LONGLONG
volatile
*
dest
,
LONGLONG
xchg
,
LONGLONG
compare
)
{
#if defined(__x86_64__) && defined(__GNUC__)
LONGLONG
ret
;
...
...
@@ -2417,7 +2417,7 @@ static inline LONGLONG WINAPI InterlockedCompareExchange64( LONGLONG volatile *d
#endif
}
static
inline
LONG
WINAPI
InterlockedExchange
(
LONG
volatile
*
dest
,
LONG
val
)
static
FORCEINLINE
LONG
WINAPI
InterlockedExchange
(
LONG
volatile
*
dest
,
LONG
val
)
{
#if defined(__x86_64__) && defined(__GNUC__)
LONG
ret
;
...
...
@@ -2430,7 +2430,7 @@ static inline LONG WINAPI InterlockedExchange( LONG volatile *dest, LONG val )
#endif
}
static
inline
PVOID
WINAPI
InterlockedExchangePointer
(
PVOID
volatile
*
dest
,
PVOID
val
)
static
FORCEINLINE
PVOID
WINAPI
InterlockedExchangePointer
(
PVOID
volatile
*
dest
,
PVOID
val
)
{
#if defined(__x86_64__) && defined(__GNUC__)
PVOID
ret
;
...
...
@@ -2443,7 +2443,7 @@ static inline PVOID WINAPI InterlockedExchangePointer( PVOID volatile *dest, PVO
#endif
}
static
inline
LONG
WINAPI
InterlockedExchangeAdd
(
LONG
volatile
*
dest
,
LONG
incr
)
static
FORCEINLINE
LONG
WINAPI
InterlockedExchangeAdd
(
LONG
volatile
*
dest
,
LONG
incr
)
{
#if defined(__x86_64__) && defined(__GNUC__)
LONG
ret
;
...
...
@@ -2456,12 +2456,12 @@ static inline LONG WINAPI InterlockedExchangeAdd( LONG volatile *dest, LONG incr
#endif
}
static
inline
LONG
WINAPI
InterlockedIncrement
(
LONG
volatile
*
dest
)
static
FORCEINLINE
LONG
WINAPI
InterlockedIncrement
(
LONG
volatile
*
dest
)
{
return
InterlockedExchangeAdd
(
dest
,
1
)
+
1
;
}
static
inline
LONG
WINAPI
InterlockedDecrement
(
LONG
volatile
*
dest
)
static
FORCEINLINE
LONG
WINAPI
InterlockedDecrement
(
LONG
volatile
*
dest
)
{
return
InterlockedExchangeAdd
(
dest
,
-
1
)
-
1
;
}
...
...
@@ -2470,9 +2470,9 @@ static inline LONG WINAPI InterlockedDecrement( LONG volatile *dest )
/* A few optimizations for gcc */
#if defined(__GNUC__) && !defined(__MINGW32__) && (defined(__i386__) || defined(__x86_64__))
#if defined(__GNUC__) && !defined(__MINGW32__) && (defined(__i386__) || defined(__x86_64__))
&& ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)))
static
inline
DWORD
WINAPI
GetLastError
(
void
)
static
FORCEINLINE
DWORD
WINAPI
GetLastError
(
void
)
{
DWORD
ret
;
#ifdef __x86_64__
...
...
@@ -2483,7 +2483,7 @@ static inline DWORD WINAPI GetLastError(void)
return
ret
;
}
static
inline
DWORD
WINAPI
GetCurrentProcessId
(
void
)
static
FORCEINLINE
DWORD
WINAPI
GetCurrentProcessId
(
void
)
{
DWORD
ret
;
#ifdef __x86_64__
...
...
@@ -2494,7 +2494,7 @@ static inline DWORD WINAPI GetCurrentProcessId(void)
return
ret
;
}
static
inline
DWORD
WINAPI
GetCurrentThreadId
(
void
)
static
FORCEINLINE
DWORD
WINAPI
GetCurrentThreadId
(
void
)
{
DWORD
ret
;
#ifdef __x86_64__
...
...
@@ -2505,7 +2505,7 @@ static inline DWORD WINAPI GetCurrentThreadId(void)
return
ret
;
}
static
inline
void
WINAPI
SetLastError
(
DWORD
err
)
static
FORCEINLINE
void
WINAPI
SetLastError
(
DWORD
err
)
{
#ifdef __x86_64__
__asm__
__volatile__
(
".byte 0x65
\n\t
movl %0,0x68"
:
:
"r"
(
err
)
:
"memory"
);
...
...
@@ -2514,7 +2514,7 @@ static inline void WINAPI SetLastError( DWORD err )
#endif
}
static
inline
HANDLE
WINAPI
GetProcessHeap
(
void
)
static
FORCEINLINE
HANDLE
WINAPI
GetProcessHeap
(
void
)
{
HANDLE
*
pdb
;
#ifdef __x86_64__
...
...
include/wine/library.h
View file @
f7f4e9e3
...
...
@@ -161,18 +161,13 @@ static inline int wine_ldt_is_empty( const LDT_ENTRY *ent )
/* segment register access */
# if
def __MINGW32__
# if
defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)))
# define __DEFINE_GET_SEG(seg) \
static inline unsigned short wine_get_##seg(void) \
{ unsigned short res; __asm__ __volatile__("movw %%" #seg ",%w0" : "=r"(res)); return res; }
# define __DEFINE_SET_SEG(seg) \
static inline void wine_set_##seg(int val) { __asm__("movw %w0,%%" #seg : : "r" (val)); }
# elif defined(__GNUC__)
# define __DEFINE_GET_SEG(seg) \
static inline unsigned short wine_get_##seg(void) \
static FORCEINLINE unsigned short wine_get_##seg(void) \
{ unsigned short res; __asm__ __volatile__("movw %%" #seg ",%w0" : "=r"(res)); return res; }
# define __DEFINE_SET_SEG(seg) \
static inline void wine_set_##seg(int val) { __asm__("movw %w0,%%" #seg : : "r" (val)); }
static FORCEINLINE void wine_set_##seg(int val) \
{ __asm__("movw %w0,%%" #seg : : "r" (val)); }
# elif defined(_MSC_VER)
# define __DEFINE_GET_SEG(seg) \
static inline unsigned short wine_get_##seg(void) \
...
...
include/winnt.h
View file @
f7f4e9e3
...
...
@@ -123,7 +123,7 @@ extern "C" {
# if defined(_MSC_VER) && (_MSC_VER >= 1200)
# define FORCEINLINE __forceinline
# elif defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)))
# define FORCEINLINE __attribute__((always_inline))
# define FORCEINLINE
inline
__attribute__((always_inline))
# else
# define FORCEINLINE inline
# endif
...
...
@@ -2466,15 +2466,15 @@ typedef struct _NT_TIB
struct
_TEB
;
#if defined(__i386__) && defined(__GNUC__)
static
inline
struct
_TEB
*
WINAPI
NtCurrentTeb
(
void
)
#if defined(__i386__) && defined(__GNUC__)
&& ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)))
static
FORCEINLINE
struct
_TEB
*
WINAPI
NtCurrentTeb
(
void
)
{
struct
_TEB
*
teb
;
__asm__
(
".byte 0x64
\n\t
movl (0x18),%0"
:
"=r"
(
teb
));
return
teb
;
}
#elif defined(__i386__) && defined(_MSC_VER)
static
inline
struct
_TEB
*
WINAPI
NtCurrentTeb
(
void
)
static
FORCEINLINE
struct
_TEB
*
WINAPI
NtCurrentTeb
(
void
)
{
struct
_TEB
*
teb
;
__asm
mov
eax
,
fs
:
[
0x18
];
...
...
@@ -2482,14 +2482,14 @@ static inline struct _TEB * WINAPI NtCurrentTeb(void)
return
teb
;
}
#elif defined(__x86_64__) && defined(__GNUC__)
static
inline
struct
_TEB
*
WINAPI
NtCurrentTeb
(
void
)
static
FORCEINLINE
struct
_TEB
*
WINAPI
NtCurrentTeb
(
void
)
{
struct
_TEB
*
teb
;
__asm__
(
".byte 0x65
\n\t
movq (0x30),%0"
:
"=r"
(
teb
));
return
teb
;
}
#elif defined(__x86_64__) && defined (_MSC_VER)
static
inline
struct
_TEB
*
WINAPI
NtCurrentTeb
(
void
)
static
FORCEINLINE
struct
_TEB
*
WINAPI
NtCurrentTeb
(
void
)
{
struct
_TEB
*
teb
;
__asm
mov
rax
,
gs
:
[
0x30
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment