Author: hbelusca
Date: Thu Mar 19 00:06:54 2015
New Revision: 66794
URL: http://svn.reactos.org/svn/reactos?rev=66794&view=rev
Log:
[NTOS]: Heh Arch, use the Process parameter of the function, instead of PsGetCurrentProcess()!! (bug found by Thomas, because I quickly copied the code from ke/i386/v86vdm.c function Ke386CallBios lines 693 and below without adapting it to the present case ^^).
Modified:
trunk/reactos/ntoskrnl/ps/i386/psldt.c
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] Thu Mar 19 00:06:54 2015
@@ -27,15 +27,15 @@
PspDeleteVdmObjects(PEPROCESS Process)
{
/* If there are no VDM objects, just exit */
- if (PsGetCurrentProcess()->VdmObjects == NULL)
+ if (Process->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;
+ ExFreePoolWithTag(Process->VdmObjects, ' eK');
+ Process->VdmObjects = NULL;
}
NTSTATUS
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