[ros-diffs] [tkreuzer] 43491: Add some missing macros

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Thu Oct 15 21:22:10 CEST 2009


Author: tkreuzer
Date: Thu Oct 15 21:22:09 2009
New Revision: 43491

URL: http://svn.reactos.org/svn/reactos?rev=43491&view=rev
Log:
Add some missing macros

Modified:
    branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/ke.h
    branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/mm.h

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/ke.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/ke.h?rev=43491&r1=43490&r2=43491&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/ke.h [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/ke.h [iso-8859-1] Thu Oct 15 21:22:09 2009
@@ -75,6 +75,31 @@
 #define KD_BREAKPOINT_TYPE        UCHAR
 #define KD_BREAKPOINT_SIZE        sizeof(UCHAR)
 #define KD_BREAKPOINT_VALUE       0xCC
+
+//
+// Macros for getting and setting special purpose registers in portable code
+//
+#define KeGetContextPc(Context) \
+    ((Context)->Rip)
+
+#define KeSetContextPc(Context, ProgramCounter) \
+    ((Context)->Rip = (ProgramCounter))
+
+#define KeGetTrapFramePc(TrapFrame) \
+    ((TrapFrame)->Rip)
+
+#define KeGetContextReturnRegister(Context) \
+    ((Context)->Rax)
+
+#define KeSetContextReturnRegister(Context, ReturnValue) \
+    ((Context)->Rax = (ReturnValue))
+
+//
+// Returns the Interrupt State from a Trap Frame.
+// ON = TRUE, OFF = FALSE
+//
+#define KeGetTrapFrameInterruptState(TrapFrame) \
+        BooleanFlagOn((TrapFrame)->EFlags, EFLAGS_INTERRUPT_MASK)
 
 
 struct _KPCR;

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/mm.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/mm.h?rev=43491&r1=43490&r2=43491&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/mm.h [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/mm.h [iso-8859-1] Thu Oct 15 21:22:09 2009
@@ -47,4 +47,14 @@
 /* Easy accessing PFN in PTE */
 #define PFN_FROM_PTE(v) ((v)->u.Hard.PageFrameNumber)
 
+// FIXME, only copied from x86
+#define MI_MAKE_LOCAL_PAGE(x)      ((x)->u.Hard.Global = 0)
+#define MI_MAKE_DIRTY_PAGE(x)      ((x)->u.Hard.Dirty = 1)
+#define MI_PAGE_DISABLE_CACHE(x)   ((x)->u.Hard.CacheDisable = 1)
+#define MI_PAGE_WRITE_THROUGH(x)   ((x)->u.Hard.WriteThrough = 1)
+#define MI_PAGE_WRITE_COMBINED(x)  ((x)->u.Hard.WriteThrough = 0)
+#define MI_IS_PAGE_WRITEABLE(x)    ((x)->u.Hard.Write == 1)
+#define MI_IS_PAGE_COPY_ON_WRITE(x)((x)->u.Hard.CopyOnWrite == 1)
+#define MI_IS_PAGE_DIRTY(x)        ((x)->u.Hard.Dirty == 1)
+
 #endif /* __NTOSKRNL_INCLUDE_INTERNAL_AMD64_MM_H */




More information about the Ros-diffs mailing list