Author: greatlrd
Date: Wed Oct 24 15:05:44 2007
New Revision: 29848
URL:
http://svn.reactos.org/svn/reactos?rev=29848&view=rev
Log:
add complete startup process code for dxg.sys
Added:
branches/reactx/reactos/drivers/directx/dxg/eng.c (with props)
branches/reactx/reactos/drivers/directx/dxg/tags.h (with props)
Modified:
branches/reactx/reactos/drivers/directx/dxg/dxg.rbuild
branches/reactx/reactos/drivers/directx/dxg/dxg_int.h
branches/reactx/reactos/drivers/directx/dxg/main.c
Modified: branches/reactx/reactos/drivers/directx/dxg/dxg.rbuild
URL:
http://svn.reactos.org/svn/reactos/branches/reactx/reactos/drivers/directx/…
==============================================================================
--- branches/reactx/reactos/drivers/directx/dxg/dxg.rbuild (original)
+++ branches/reactx/reactos/drivers/directx/dxg/dxg.rbuild Wed Oct 24 15:05:44 2007
@@ -6,7 +6,9 @@
<include base="dxg">.</include>
<define name="__USE_W32API" />
<library>dxgthk</library>
+ <library>ntoskrnl</library>
<file>main.c</file>
+ <file>eng.c</file>
<file>historic.c</file>
<file>dxg.rc</file>
</module>
Modified: branches/reactx/reactos/drivers/directx/dxg/dxg_int.h
URL:
http://svn.reactos.org/svn/reactos/branches/reactx/reactos/drivers/directx/…
==============================================================================
--- branches/reactx/reactos/drivers/directx/dxg/dxg_int.h (original)
+++ branches/reactx/reactos/drivers/directx/dxg/dxg_int.h Wed Oct 24 15:05:44 2007
@@ -27,6 +27,8 @@
#include <reactos/drivers/directx/dxg.h>
#include <reactos/drivers/directx/dxeng.h>
+#include "tags.h"
+
/* exported functions */
NTSTATUS DriverEntry(IN PVOID Context1, IN PVOID Context2);
@@ -39,5 +41,6 @@
DWORD STDCALL DxDdIoctl(ULONG ulIoctl, PVOID pBuffer, ULONG ulBufferSize);
/* Internel functions */
+BOOL DdHmgCreate();
BOOL DdHmgDestroy();
Added: branches/reactx/reactos/drivers/directx/dxg/eng.c
URL:
http://svn.reactos.org/svn/reactos/branches/reactx/reactos/drivers/directx/…
==============================================================================
--- branches/reactx/reactos/drivers/directx/dxg/eng.c (added)
+++ branches/reactx/reactos/drivers/directx/dxg/eng.c Wed Oct 24 15:05:44 2007
@@ -1,0 +1,14 @@
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS kernel
+ * PURPOSE: Native driver for dxg implementation
+ * FILE: drivers/directx/dxg/main.c
+ * PROGRAMER: Magnus olsen (magnus(a)greatlord.com)
+ * REVISION HISTORY:
+ * 15/10-2007 Magnus Olsen
+ */
+
+
+
+
+
Propchange: branches/reactx/reactos/drivers/directx/dxg/eng.c
------------------------------------------------------------------------------
svn:eol-style = native
Modified: branches/reactx/reactos/drivers/directx/dxg/main.c
URL:
http://svn.reactos.org/svn/reactos/branches/reactx/reactos/drivers/directx/…
==============================================================================
--- branches/reactx/reactos/drivers/directx/dxg/main.c (original)
+++ branches/reactx/reactos/drivers/directx/dxg/main.c Wed Oct 24 15:05:44 2007
@@ -20,6 +20,11 @@
HSEMAPHORE ghsemDummyPage = NULL;
VOID *gpDummyPage = NULL;
PEPROCESS gpepSession = NULL;
+PLARGE_INTEGER gpLockShortDelay = NULL;
+HANDLE ghFreeDdHmgr = 0;
+VOID *gpentDdHmgr = NULL;
+VOID *gpentDdHmgrLast = NULL;
+
PDRVFN gpEngFuncs;
const ULONG gcDxgFuncs = DXG_INDEX_DxDdIoctl + 1;
@@ -92,7 +97,6 @@
/* Note 12/1-2004 : Why is this set to 0x618 */
*DirectDrawContext = 0x618;
-#if 0
if (DdHmgCreate())
{
ghsemDummyPage = EngCreateSemaphore();
@@ -103,7 +107,6 @@
return STATUS_SUCCESS;
}
}
-#endif
DdHmgDestroy();
@@ -119,16 +122,13 @@
NTSTATUS
DxDdCleanupDxGraphics()
{
-
DdHmgDestroy();
if (!ghsemDummyPage)
{
if (!gpDummyPage)
{
-#if 0
ExFreePoolWithTag(gpDummyPage,0);
-#endif
gpDummyPage = NULL;
gcDummyPageRefCnt = 0;
}
@@ -143,16 +143,15 @@
{
gcMaxDdHmgr = 0;
gcSizeDdHmgr = 0;
-#if 0
ghFreeDdHmgr = 0;
- gpentDdHmgrLast = 0;
+ gpentDdHmgrLast = NULL;
if (gpentDdHmgr)
{
EngFreeMem(gpentDdHmgr);
- gpentDdHmgr = 0;
+ gpentDdHmgr = NULL;
}
-#endif
+
if (ghsemHmgr)
{
EngDeleteSemaphore(ghsemHmgr);
@@ -162,3 +161,35 @@
return TRUE;
}
+
+BOOL
+DdHmgCreate()
+{
+ gpentDdHmgr = EngAllocMem(FL_ZERO_MEMORY, gcSizeDdHmgr, TAG_THDD);
+ ghFreeDdHmgr = 0;
+ gcMaxDdHmgr = 1;
+
+ if (gpentDdHmgr)
+ {
+ ghsemHmgr = EngCreateSemaphore();
+
+ if (ghsemHmgr)
+ {
+ gpLockShortDelay = EngAllocMem(FL_ZERO_MEMORY | FL_NONPAGED_MEMORY,
sizeof(LARGE_INTEGER), TAG_GINI);
+
+ if (gpLockShortDelay)
+ {
+ gpLockShortDelay->QuadPart = ((LONGLONG)-100000);
+ return TRUE;
+ }
+
+ EngDeleteSemaphore(ghsemHmgr);
+ ghsemHmgr = NULL;
+ }
+
+ EngFreeMem(gpentDdHmgr);
+ gpentDdHmgr = NULL;
+ }
+
+ return FALSE;
+}
Added: branches/reactx/reactos/drivers/directx/dxg/tags.h
URL:
http://svn.reactos.org/svn/reactos/branches/reactx/reactos/drivers/directx/…
==============================================================================
--- branches/reactx/reactos/drivers/directx/dxg/tags.h (added)
+++ branches/reactx/reactos/drivers/directx/dxg/tags.h Wed Oct 24 15:05:44 2007
@@ -1,0 +1,8 @@
+
+
+
+#define TAG_THDD TAG('t', 'h', 'd', 'd')
+#define TAG_GINI TAG('G', 'i', 'n', 'i')
+
+
+
Propchange: branches/reactx/reactos/drivers/directx/dxg/tags.h
------------------------------------------------------------------------------
svn:eol-style = native