mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 21:03:00 +00:00
{RTL]
- Fix RtlLengthSecurityDescriptor - Fix pointer calculation in amd64 interlocked slist code - Assert that the slist entry pointer is 16 byte aligned [CRT] - Add amd64 stubs for acos and acosf svn path=/trunk/; revision=55512
This commit is contained in:
parent
0b2dbd9cea
commit
2de5176c84
5 changed files with 61 additions and 3 deletions
|
@ -18,7 +18,7 @@
|
||||||
#define SLIST8B_HEADERTYPE_MASK HEX(0000000000000001)
|
#define SLIST8B_HEADERTYPE_MASK HEX(0000000000000001)
|
||||||
#define SLIST8B_INIT_MASK HEX(0000000000000002)
|
#define SLIST8B_INIT_MASK HEX(0000000000000002)
|
||||||
#define SLIST8B_REGION_MASK HEX(E000000000000000)
|
#define SLIST8B_REGION_MASK HEX(E000000000000000)
|
||||||
#define SLIST8_POINTER_MASK HEX(000007FFFFFFFFF0)
|
#define SLIST8_POINTER_MASK HEX(000007FFFFFFFFFF)
|
||||||
|
|
||||||
#define SLIST16A_DEPTH_MASK HEX(000000000000FFFF)
|
#define SLIST16A_DEPTH_MASK HEX(000000000000FFFF)
|
||||||
#define SLIST16A_DEPTH_INC HEX(0000000000000001)
|
#define SLIST16A_DEPTH_INC HEX(0000000000000001)
|
||||||
|
@ -181,6 +181,15 @@ RtlInterlockedPopEntrySListEmpty16:
|
||||||
RtlInterlockedPushEntrySList:
|
RtlInterlockedPushEntrySList:
|
||||||
ExpInterlockedPushEntrySList:
|
ExpInterlockedPushEntrySList:
|
||||||
|
|
||||||
|
#if DBG
|
||||||
|
/* Make sure the ListEntry is 16 bytes aligned */
|
||||||
|
test rdx, HEX(0F)
|
||||||
|
jz ExpInterlockedPushEntrySListChecked
|
||||||
|
/* Not aligned, raise an assertion */
|
||||||
|
int HEX(2C)
|
||||||
|
ExpInterlockedPushEntrySListChecked:
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Load ListHead->Alignment into rax */
|
/* Load ListHead->Alignment into rax */
|
||||||
mov rax, [rcx]
|
mov rax, [rcx]
|
||||||
|
|
||||||
|
@ -301,7 +310,7 @@ ExpInterlockedFlushSList:
|
||||||
|
|
||||||
RtlInterlockedFlushSListLoop:
|
RtlInterlockedFlushSListLoop:
|
||||||
|
|
||||||
/* Zero ListHead->Alignment */
|
/* Zero ListHead->Alignment */
|
||||||
xor r8, r8
|
xor r8, r8
|
||||||
|
|
||||||
/* If [rcx] equals rax, exchange it with r8 */
|
/* If [rcx] equals rax, exchange it with r8 */
|
||||||
|
|
|
@ -250,10 +250,15 @@ RtlLengthSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor)
|
||||||
{
|
{
|
||||||
PSID Owner, Group;
|
PSID Owner, Group;
|
||||||
PACL Sacl, Dacl;
|
PACL Sacl, Dacl;
|
||||||
ULONG Length = sizeof(SECURITY_DESCRIPTOR);
|
ULONG Length;
|
||||||
|
|
||||||
PAGED_CODE_RTL();
|
PAGED_CODE_RTL();
|
||||||
|
|
||||||
|
if (((PISECURITY_DESCRIPTOR)SecurityDescriptor)->Control & SE_SELF_RELATIVE)
|
||||||
|
Length = sizeof(SECURITY_DESCRIPTOR_RELATIVE);
|
||||||
|
else
|
||||||
|
Length = sizeof(SECURITY_DESCRIPTOR);
|
||||||
|
|
||||||
RtlpQuerySecurityDescriptorPointers((PISECURITY_DESCRIPTOR)SecurityDescriptor,
|
RtlpQuerySecurityDescriptorPointers((PISECURITY_DESCRIPTOR)SecurityDescriptor,
|
||||||
&Owner,
|
&Owner,
|
||||||
&Group,
|
&Group,
|
||||||
|
|
|
@ -392,6 +392,8 @@ elseif(ARCH MATCHES amd64)
|
||||||
float/amd64/fpreset.S
|
float/amd64/fpreset.S
|
||||||
float/amd64/logb.S
|
float/amd64/logb.S
|
||||||
float/i386/statfp.c
|
float/i386/statfp.c
|
||||||
|
math/amd64/acos.S
|
||||||
|
math/amd64/acosf.S
|
||||||
math/amd64/atan.S
|
math/amd64/atan.S
|
||||||
math/amd64/atan2.S
|
math/amd64/atan2.S
|
||||||
math/amd64/ceil.S
|
math/amd64/ceil.S
|
||||||
|
|
21
reactos/lib/sdk/crt/math/amd64/acos.S
Normal file
21
reactos/lib/sdk/crt/math/amd64/acos.S
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of acos
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/acos.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <asm.inc>
|
||||||
|
|
||||||
|
/* CODE **********************************************************************/
|
||||||
|
.code64
|
||||||
|
|
||||||
|
PUBLIC acos
|
||||||
|
acos:
|
||||||
|
UNIMPLEMENTED acos
|
||||||
|
ret
|
||||||
|
|
||||||
|
END
|
21
reactos/lib/sdk/crt/math/amd64/acosf.S
Normal file
21
reactos/lib/sdk/crt/math/amd64/acosf.S
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of acosf
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/acosf.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <asm.inc>
|
||||||
|
|
||||||
|
/* CODE **********************************************************************/
|
||||||
|
.code64
|
||||||
|
|
||||||
|
PUBLIC acosf
|
||||||
|
acosf:
|
||||||
|
UNIMPLEMENTED acos
|
||||||
|
ret
|
||||||
|
|
||||||
|
END
|
Loading…
Add table
Add a link
Reference in a new issue