Author: hbelusca
Date: Wed Mar 18 20:43:22 2015
New Revision: 66793
URL: http://svn.reactos.org/svn/reactos?rev=66793&view=rev
Log:
[NTOS]
- Let us know if we need to handle FPU emulation.
- The PspDeleteLdt and PspDeleteVdmObjects do not need to return anything, they just clean possible existing structures only.
- Use ExFreePoolWithTag when freeing Process->VdmObjects (help in detecting possible memory corruption).
- Since we sometimes toy with Process->VdmObjects, give a basic implementation of PspDeleteVdmObjects that just frees VdmObjects for now. Also, add an assert in PspDeleteLdt because the LdtInformation process member should remain NULL for now (since we don't use it).
Modified:
trunk/reactos/ntoskrnl/include/internal/ps.h
trunk/reactos/ntoskrnl/ke/i386/exp.c
trunk/reactos/ntoskrnl/ke/i386/v86vdm.c
trunk/reactos/ntoskrnl/ps/i386/psldt.c
Modified: trunk/reactos/ntoskrnl/include/internal/ps.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/ps.h [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/include/internal/ps.h [iso-8859-1] Wed Mar 18 20:43:22 2015
@@ -313,13 +313,13 @@
//
// VDM and LDT Support
//
-NTSTATUS
+VOID
NTAPI
PspDeleteLdt(
IN PEPROCESS Process
);
-NTSTATUS
+VOID
NTAPI
PspDeleteVdmObjects(
IN PEPROCESS Process
Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/exp.c?rev…
==============================================================================
--- trunk/reactos/ntoskrnl/ke/i386/exp.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ke/i386/exp.c [iso-8859-1] Wed Mar 18 20:43:22 2015
@@ -549,6 +549,7 @@
{
/* FIXME: Handle FPU Emulation */
//ASSERT(FALSE);
+ UNIMPLEMENTED;
}
}
Modified: trunk/reactos/ntoskrnl/ke/i386/v86vdm.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86vdm.c?…
==============================================================================
--- trunk/reactos/ntoskrnl/ke/i386/v86vdm.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ke/i386/v86vdm.c [iso-8859-1] Wed Mar 18 20:43:22 2015
@@ -691,7 +691,7 @@
Context->ContextFlags = CONTEXT_FULL;
/* Free VDM objects */
- ExFreePool(PsGetCurrentProcess()->VdmObjects);
+ ExFreePoolWithTag(PsGetCurrentProcess()->VdmObjects, ' eK');
PsGetCurrentProcess()->VdmObjects = NULL;
/* Return status */
Modified: trunk/reactos/ntoskrnl/ps/i386/psldt.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/i386/psldt.c?r…
==============================================================================
--- trunk/reactos/ntoskrnl/ps/i386/psldt.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ps/i386/psldt.c [iso-8859-1] Wed Mar 18 20:43:22 2015
@@ -14,20 +14,28 @@
/* FUNCTIONS *****************************************************************/
-NTSTATUS
+VOID
NTAPI
PspDeleteLdt(PEPROCESS Process)
{
- /* FIXME */
- return STATUS_SUCCESS;
+ /* FIXME - LdtInformation must be null as long as we don't implement VDMs */
+ ASSERT(Process->LdtInformation == NULL);
}
-NTSTATUS
+VOID
NTAPI
PspDeleteVdmObjects(PEPROCESS Process)
{
- /* FIXME */
- return STATUS_SUCCESS;
+ /* If there are no VDM objects, just exit */
+ if (PsGetCurrentProcess()->VdmObjects == NULL)
+ return;
+
+ /* FIXME: Need to do more than just freeing the main VdmObjects member! */
+ UNIMPLEMENTED;
+
+ /* Free VDM objects */
+ ExFreePoolWithTag(PsGetCurrentProcess()->VdmObjects, ' eK');
+ PsGetCurrentProcess()->VdmObjects = NULL;
}
NTSTATUS