-/* $Id: inbv.c,v 1.4 2003/11/17 02:12:50 hyperion 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 *******************************************************************/
{
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,
return(STATUS_SUCCESS);
}
+
VOID
STDCALL
InbvAcquireDisplayOwnership(VOID)
{
}
-
BOOLEAN
STDCALL
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
-STDCALL_FUNC
+STDCALL
InbvResetDisplayParameters(ULONG SizeX, ULONG SizeY)
{
return(InbvResetDisplay());
}
+
VOID
STDCALL INIT_FUNCTION
InbvEnableBootDriver(IN BOOLEAN Enable)
if (Enable)
{
+ /* Notify the hal we will acquire the display. */
+ HalAcquireDisplayOwnership(InbvResetDisplayParameters);
+
Status = NtDeviceIoControlFile(BootVidDevice,
NULL,
NULL,
sizeof(BootVidFunctionTable));
if (!NT_SUCCESS(Status))
{
- KeBugCheck(0);
+ KEBUGCHECK(0);
}
BootVidDriverInstalled = TRUE;
- /* Notify the hal we have acquired the display. */
CHECKPOINT;
- HalAcquireDisplayOwnership(InbvResetDisplayParameters);
}
else
{
0);
if (!NT_SUCCESS(Status))
{
- KeBugCheck(0);
+ KEBUGCHECK(0);
}
BootVidDriverInstalled = FALSE;
/* Notify the hal we have released the display. */
}
}
+
BOOLEAN
STDCALL
InbvEnableDisplayString(IN BOOLEAN Enable)
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;
+}