Author: tkreuzer Date: Wed Jul 23 18:56:37 2008 New Revision: 34716
URL: http://svn.reactos.org/svn/reactos?rev=34716&view=rev Log: rtl: - amd64/add debug_asm.S (FIXME) - cast AtomName to ULONG_PTR instead of ULONG - RtlQueryProcessdebugInformation(): cast teb->Cid.UniqueProcess to ULONG_PTR for assignment to Pid. (should ProcessId parameter be ULONG_PTR, too?) - vs(w)nprintf: cast argument to ULONG_PTR instead of unsigned long for a %p - comment out some inlined Interlocked functions that shouldn't be there anyway Now rtl can be compiled
Added: branches/ros-amd64-bringup/reactos/lib/rtl/amd64/ branches/ros-amd64-bringup/reactos/lib/rtl/amd64/debug_asm.S (with props) Modified: branches/ros-amd64-bringup/reactos/lib/rtl/atom.c branches/ros-amd64-bringup/reactos/lib/rtl/dbgbuffer.c branches/ros-amd64-bringup/reactos/lib/rtl/rtl.rbuild branches/ros-amd64-bringup/reactos/lib/rtl/sprintf.c branches/ros-amd64-bringup/reactos/lib/rtl/srw.c branches/ros-amd64-bringup/reactos/lib/rtl/swprintf.c
Added: branches/ros-amd64-bringup/reactos/lib/rtl/amd64/debug_asm.S URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/rt... ============================================================================== --- branches/ros-amd64-bringup/reactos/lib/rtl/amd64/debug_asm.S (added) +++ branches/ros-amd64-bringup/reactos/lib/rtl/amd64/debug_asm.S [iso-8859-1] Wed Jul 23 18:56:37 2008 @@ -1,0 +1,77 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS Run-Time Library + * PURPOSE: Debug Routines + * FILE: lib/rtl/i386/debug.S + * PROGRAMER: Alex Ionescu (alex@relsoft.net) + */ + +.intel_syntax noprefix + +/* GLOBALS ****************************************************************/ + +.globl _DbgBreakPoint +.globl _DbgBreakPointWithStatus +.globl _DbgUserBreakPoint +.globl _DebugService +.globl _DebugService2 +.globl _DbgBreakPointNoBugCheck +.globl _RtlpBreakWithStatusInstruction + +/* FUNCTIONS ***************************************************************/ + +.func DbgBreakPointNoBugCheck +_DbgBreakPointNoBugCheck: + int 3 + ret +.endfunc + +.func DbgBreakPoint +_DbgBreakPoint: +_DbgUserBreakPoint: + int 3 + ret +.endfunc + +.func DbgBreakPointWithStatus +_DbgBreakPointWithStatus: + mov eax, ecx + +_RtlpBreakWithStatusInstruction: + int 3 + ret +.endfunc + +.func DebugService2 +_DebugService2: + /* Call the interrupt */ +// mov eax, [rbp+8] +// int 0x2D + int 3 + +.endfunc + +.func DebugService +_DebugService: + + /* Save the registers */ + push rcx + push rbx + push rdi + push rdi + push rbx + + /* Call the Interrupt */ + // FIXME: setup registers + int 0x2D + int 3 + + /* Restore registers */ + pop rbx + pop rdi + pop rdi + pop rbx + + /* Return */ + ret 20 +.endfunc
Propchange: branches/ros-amd64-bringup/reactos/lib/rtl/amd64/debug_asm.S ------------------------------------------------------------------------------ svn:eol-style = native
Modified: branches/ros-amd64-bringup/reactos/lib/rtl/atom.c URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/rt... ============================================================================== --- branches/ros-amd64-bringup/reactos/lib/rtl/atom.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/lib/rtl/atom.c [iso-8859-1] Wed Jul 23 18:56:37 2008 @@ -90,9 +90,9 @@ DPRINT("RtlpCheckIntegerAtom(AtomName '%S' AtomValue %p)\n", AtomName, AtomValue);
- if (!((ULONG)AtomName & 0xFFFF0000)) - { - LoValue = (USHORT)((ULONG)AtomName & 0xFFFF); + if (!((ULONG_PTR)AtomName & 0xFFFF0000)) + { + LoValue = (USHORT)((ULONG_PTR)AtomName & 0xFFFF);
if (LoValue == 0) LoValue = 0xC000;
Modified: branches/ros-amd64-bringup/reactos/lib/rtl/dbgbuffer.c URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/rt... ============================================================================== --- branches/ros-amd64-bringup/reactos/lib/rtl/dbgbuffer.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/lib/rtl/dbgbuffer.c [iso-8859-1] Wed Jul 23 18:56:37 2008 @@ -234,7 +234,7 @@ IN OUT PRTL_DEBUG_INFORMATION Buf) { NTSTATUS Status = STATUS_SUCCESS; - ULONG Pid = (ULONG) NtCurrentTeb()->Cid.UniqueProcess; + ULONG Pid = (ULONG_PTR) NtCurrentTeb()->Cid.UniqueProcess;
Buf->Flags = DebugInfoMask; Buf->OffsetFree = sizeof(RTL_DEBUG_INFORMATION); @@ -319,7 +319,7 @@ Buf->TargetProcessHandle = NtCurrentProcess();
ClientId.UniqueThread = 0; - ClientId.UniqueProcess = (HANDLE)ProcessId; + ClientId.UniqueProcess = (HANDLE)(ULONG_PTR)ProcessId; InitializeObjectAttributes(&ObjectAttributes, NULL, 0,
Modified: branches/ros-amd64-bringup/reactos/lib/rtl/rtl.rbuild URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/rt... ============================================================================== --- branches/ros-amd64-bringup/reactos/lib/rtl/rtl.rbuild [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/lib/rtl/rtl.rbuild [iso-8859-1] Wed Jul 23 18:56:37 2008 @@ -33,8 +33,13 @@ <directory name="arm"> <file>debug_asm.S</file> </directory> - <file>mem.c</file> - <file>memgen.c</file> + <file>mem.c</file> + <file>memgen.c</file> + </if> + <if property="ARCH" value="amd64"> + <directory name="amd64"> + <file>debug_asm.S</file> + </directory> </if> <directory name="austin"> <file>avl.c</file>
Modified: branches/ros-amd64-bringup/reactos/lib/rtl/sprintf.c URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/rt... ============================================================================== --- branches/ros-amd64-bringup/reactos/lib/rtl/sprintf.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/lib/rtl/sprintf.c [iso-8859-1] Wed Jul 23 18:56:37 2008 @@ -577,7 +577,7 @@ flags |= ZEROPAD; } str = number(str, end, - (unsigned long) va_arg(args, void *), 16, + (ULONG_PTR) va_arg(args, void *), 16, field_width, precision, flags); continue;
Modified: branches/ros-amd64-bringup/reactos/lib/rtl/srw.c URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/rt... ============================================================================== --- branches/ros-amd64-bringup/reactos/lib/rtl/srw.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/lib/rtl/srw.c [iso-8859-1] Wed Jul 23 18:56:37 2008 @@ -21,6 +21,7 @@ /* FIXME *********************************************************************/
/* FIXME: Interlocked functions that need to be made into a public header */ +#if 0 FORCEINLINE LONG InterlockedAnd(IN OUT volatile LONG *Target, @@ -60,6 +61,7 @@
return j; } +#endif
/* FUNCTIONS *****************************************************************/
@@ -87,7 +89,7 @@ RTL_SRWLOCK_SHARED | RTL_SRWLOCK_CONTENTION_LOCK) #define RTL_SRWLOCK_BITS 4
-#if defined(__GNUC__) +#if defined(__GNUC__) && !defined(_M_AMD64) /* This macro will cause the code to assert if compiled with a buggy version of GCC that doesn't align the wait blocks properly on the stack! */ #define ASSERT_SRW_WAITBLOCK(ptr) \
Modified: branches/ros-amd64-bringup/reactos/lib/rtl/swprintf.c URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/rt... ============================================================================== --- branches/ros-amd64-bringup/reactos/lib/rtl/swprintf.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/lib/rtl/swprintf.c [iso-8859-1] Wed Jul 23 18:56:37 2008 @@ -575,7 +575,7 @@ flags |= ZEROPAD; } str = number(str, end, - (unsigned long) va_arg(args, void *), 16, + (ULONG_PTR) va_arg(args, void *), 16, field_width, precision, flags); continue;