preliminary comment out the self-modifying code for RtlPrefetchMemoryNonTemporal
[reactos.git] / reactos / ntoskrnl / inbv / inbv.c
index 0333d5d..a3e3145 100755 (executable)
@@ -1,24 +1,24 @@
-/* $Id: inbv.c,v 1.7 2004/05/07 05:12:10 royce Exp $
+/* $Id$
  *
  * COPYRIGHT:      See COPYING in the top level directory
  * PROJECT:        ReactOS kernel
  * FILE:           ntoskrnl/inbv/inbv.c
  * PURPOSE:        Boot video support
- * PROGRAMMER:     Casper S. Hornstrup (chorns@users.sourceforge.net)
- * UPDATE HISTORY:
- *  12-07-2003 CSH Created
+ *
+ * PROGRAMMERS:    Casper S. Hornstrup (chorns@users.sourceforge.net)
  */
 
 /* INCLUDES ******************************************************************/
 
-#include <roskrnl.h>
-#include <ntos/bootvid.h>
-#include <ddk/ntbootvid.h>
-#include <rosrtl/string.h>
-
+#include <ntoskrnl.h>
+#include "../../drivers/dd/bootvid/ntbootvid.h"
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, InbvEnableBootDriver)
+#endif
+
 
 /* GLOBALS *******************************************************************/
 
@@ -40,9 +40,8 @@ InbvCheckBootVid(VOID)
     {
       NTSTATUS Status;
       OBJECT_ATTRIBUTES ObjectAttributes;
-      UNICODE_STRING BootVidName;
+      UNICODE_STRING BootVidName = RTL_CONSTANT_STRING(L"\\Device\\BootVid");
 
-      RtlRosInitUnicodeStringFromLiteral(&BootVidName, L"\\Device\\BootVid");
       InitializeObjectAttributes(&ObjectAttributes,
                                 &BootVidName,
                                 0,
@@ -62,13 +61,13 @@ InbvCheckBootVid(VOID)
   return(STATUS_SUCCESS);
 }
 
+
 VOID
 STDCALL
 InbvAcquireDisplayOwnership(VOID)
 {
 }
 
-
 BOOLEAN
 STDCALL
 InbvCheckDisplayOwnership(VOID)
@@ -76,12 +75,22 @@ InbvCheckDisplayOwnership(VOID)
   return FALSE;
 }
 
-
 BOOLEAN
 STDCALL
 InbvDisplayString(IN PCHAR String)
 {
-  return FALSE;
+    /* Call Bootvid (we don't support bootvid for now) 
+     * vidDisplayString(String);
+     * so instead, we'll fall-back to HAL
+     */
+     HalDisplayString(String);
+     
+     /* Call Headless (We don't support headless for now) 
+     HeadlessDispatch(DISPLAY_STRING);
+     */
+     
+     /* Return success */
+     return TRUE;
 }
 
 BOOLEAN
@@ -91,6 +100,7 @@ InbvResetDisplayParameters(ULONG SizeX, ULONG SizeY)
   return(InbvResetDisplay());
 }
 
+
 VOID
 STDCALL INIT_FUNCTION
 InbvEnableBootDriver(IN BOOLEAN Enable)
@@ -151,6 +161,7 @@ InbvEnableBootDriver(IN BOOLEAN Enable)
     }
 }
 
+
 BOOLEAN
 STDCALL
 InbvEnableDisplayString(IN BOOLEAN Enable)
@@ -219,3 +230,16 @@ InbvSolidColorFill(IN ULONG Left,
   IN ULONG Color)
 {
 }
+
+NTSTATUS
+STDCALL
+NtDisplayString(IN PUNICODE_STRING DisplayString)
+{
+  OEM_STRING OemString;
+
+  RtlUnicodeStringToOemString(&OemString, DisplayString, TRUE);
+  HalDisplayString(OemString.Buffer);
+  RtlFreeOemString(&OemString);
+
+  return STATUS_SUCCESS;
+}