Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
fff13d27
Commit
fff13d27
authored
Feb 12, 2007
by
Francois Gouget
Committed by
Alexandre Julliard
Feb 12, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Fix compilation on systems that don't support nameless structs.
parent
76e258cb
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
22 additions
and
21 deletions
+22
-21
rtl.c
dlls/ntdll/rtl.c
+20
-19
winnt.h
include/winnt.h
+2
-2
No files found.
dlls/ntdll/rtl.c
View file @
fff13d27
...
...
@@ -31,6 +31,7 @@
#include <stdio.h>
#include <string.h>
#include "ntstatus.h"
#define NONAMELESSSTRUCT
#define WIN32_NO_STATUS
#include "windef.h"
#include "winternl.h"
...
...
@@ -944,7 +945,7 @@ WORD WINAPI RtlQueryDepthSList(PSLIST_HEADER ListHeader)
FIXME
(
"stub
\n
"
);
return
NULL
;
#else
return
ListHeader
->
Depth
;
return
ListHeader
->
s
.
Depth
;
#endif
}
...
...
@@ -955,7 +956,7 @@ PSLIST_ENTRY WINAPI RtlFirstEntrySList(const SLIST_HEADER* ListHeader)
FIXME
(
"stub
\n
"
);
return
NULL
;
#else
return
ListHeader
->
Next
.
Next
;
return
ListHeader
->
s
.
Next
.
Next
;
#endif
}
...
...
@@ -967,17 +968,17 @@ PSLIST_ENTRY WINAPI RtlInterlockedFlushSList(PSLIST_HEADER ListHeader)
FIXME
(
"stub
\n
"
);
return
NULL
;
#else
if
(
ListHeader
->
Depth
==
0
)
if
(
ListHeader
->
s
.
Depth
==
0
)
return
NULL
;
newHeader
.
Alignment
=
0
;
do
{
oldHeader
=
*
ListHeader
;
newHeader
.
Sequence
=
ListHeader
->
Sequence
+
1
;
newHeader
.
s
.
Sequence
=
ListHeader
->
s
.
Sequence
+
1
;
}
while
(
interlocked_cmpxchg64
((
__int64
*
)
&
ListHeader
->
Alignment
,
newHeader
.
Alignment
,
oldHeader
.
Alignment
)
!=
oldHeader
.
Alignment
);
return
oldHeader
.
Next
.
Next
;
return
oldHeader
.
s
.
Next
.
Next
;
#endif
}
...
...
@@ -990,17 +991,17 @@ PSLIST_ENTRY WINAPI RtlInterlockedPushEntrySList(PSLIST_HEADER ListHeader,
FIXME
(
"stub
\n
"
);
return
NULL
;
#else
newHeader
.
Next
.
Next
=
ListEntry
;
newHeader
.
s
.
Next
.
Next
=
ListEntry
;
do
{
oldHeader
=
*
ListHeader
;
ListEntry
->
Next
=
ListHeader
->
Next
.
Next
;
newHeader
.
Depth
=
ListHeader
->
Depth
+
1
;
newHeader
.
Sequence
=
ListHeader
->
Sequence
+
1
;
ListEntry
->
Next
=
ListHeader
->
s
.
Next
.
Next
;
newHeader
.
s
.
Depth
=
ListHeader
->
s
.
Depth
+
1
;
newHeader
.
s
.
Sequence
=
ListHeader
->
s
.
Sequence
+
1
;
}
while
(
interlocked_cmpxchg64
((
__int64
*
)
&
ListHeader
->
Alignment
,
newHeader
.
Alignment
,
oldHeader
.
Alignment
)
!=
oldHeader
.
Alignment
);
return
oldHeader
.
Next
.
Next
;
return
oldHeader
.
s
.
Next
.
Next
;
#endif
}
...
...
@@ -1016,15 +1017,15 @@ PSLIST_ENTRY WINAPI RtlInterlockedPopEntrySList(PSLIST_HEADER ListHeader)
do
{
oldHeader
=
*
ListHeader
;
entry
=
ListHeader
->
Next
.
Next
;
entry
=
ListHeader
->
s
.
Next
.
Next
;
if
(
entry
==
NULL
)
return
NULL
;
/* entry could be deleted by another thread */
__TRY
{
newHeader
.
Next
.
Next
=
entry
->
Next
;
newHeader
.
Depth
=
ListHeader
->
Depth
-
1
;
newHeader
.
Sequence
=
ListHeader
->
Sequence
+
1
;
newHeader
.
s
.
Next
.
Next
=
entry
->
Next
;
newHeader
.
s
.
Depth
=
ListHeader
->
s
.
Depth
-
1
;
newHeader
.
s
.
Sequence
=
ListHeader
->
s
.
Sequence
+
1
;
}
__EXCEPT_PAGE_FAULT
{
...
...
@@ -1051,16 +1052,16 @@ PSLIST_ENTRY WINAPI RtlInterlockedPushListSList(PSLIST_HEADER ListHeader,
FIXME
(
"stub
\n
"
);
return
NULL
;
#else
newHeader
.
Next
.
Next
=
FirstEntry
;
newHeader
.
s
.
Next
.
Next
=
FirstEntry
;
do
{
oldHeader
=
*
ListHeader
;
newHeader
.
Depth
=
ListHeader
->
Depth
+
Count
;
newHeader
.
Sequence
=
ListHeader
->
Sequence
+
1
;
LastEntry
->
Next
=
ListHeader
->
Next
.
Next
;
newHeader
.
s
.
Depth
=
ListHeader
->
s
.
Depth
+
Count
;
newHeader
.
s
.
Sequence
=
ListHeader
->
s
.
Sequence
+
1
;
LastEntry
->
Next
=
ListHeader
->
s
.
Next
.
Next
;
}
while
(
interlocked_cmpxchg64
((
__int64
*
)
&
ListHeader
->
Alignment
,
newHeader
.
Alignment
,
oldHeader
.
Alignment
)
!=
oldHeader
.
Alignment
);
return
oldHeader
.
Next
.
Next
;
return
oldHeader
.
s
.
Next
.
Next
;
#endif
}
include/winnt.h
View file @
fff13d27
...
...
@@ -609,7 +609,7 @@ typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
struct
{
ULONGLONG
Alignment
;
ULONGLONG
Region
;
};
}
DUMMYSTRUCTNAME
;
struct
{
ULONGLONG
Depth
:
16
;
ULONGLONG
Sequence
:
9
;
...
...
@@ -642,7 +642,7 @@ typedef union _SLIST_HEADER {
SLIST_ENTRY
Next
;
WORD
Depth
;
WORD
Sequence
;
};
}
DUMMYSTRUCTNAME
;
}
SLIST_HEADER
,
*
PSLIST_HEADER
;
#endif
...
...
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