2022-02-13 19:57:12 +00:00
|
|
|
/*
|
|
|
|
* PROJECT: ReactOS Kernel
|
|
|
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
|
|
|
* PURPOSE: Boot Video Driver support header
|
|
|
|
* COPYRIGHT: Copyright 2007 Alex Ionescu (alex.ionescu@reactos.org)
|
|
|
|
* Copyright 2019-2022 Hermès Bélusca-Maïto
|
|
|
|
*/
|
|
|
|
|
2010-02-26 11:43:19 +00:00
|
|
|
#pragma once
|
2005-06-04 00:25:04 +00:00
|
|
|
|
2022-02-13 19:57:12 +00:00
|
|
|
/* Native definitions from BOOTVID (Boot Video Driver) */
|
2020-04-06 21:48:01 +00:00
|
|
|
#include "bootvid/bootvid.h"
|
|
|
|
|
2019-11-25 14:54:45 +00:00
|
|
|
//
|
|
|
|
// Driver Initialization
|
|
|
|
//
|
2021-05-11 15:13:14 +00:00
|
|
|
CODE_SEG("INIT")
|
2019-11-25 14:54:45 +00:00
|
|
|
BOOLEAN
|
2007-02-03 20:30:32 +00:00
|
|
|
NTAPI
|
2019-11-25 14:54:45 +00:00
|
|
|
InbvDriverInitialize(
|
2022-02-13 19:57:12 +00:00
|
|
|
_In_ PLOADER_PARAMETER_BLOCK LoaderBlock,
|
|
|
|
_In_ ULONG Count
|
2007-02-03 20:30:32 +00:00
|
|
|
);
|
|
|
|
|
2019-11-25 14:54:45 +00:00
|
|
|
extern BOOLEAN InbvBootDriverInstalled;
|
|
|
|
|
2022-02-13 19:57:12 +00:00
|
|
|
INBV_DISPLAY_STATE
|
2017-12-14 12:49:15 +00:00
|
|
|
NTAPI
|
2022-02-13 19:57:12 +00:00
|
|
|
InbvGetDisplayState(VOID);
|
2017-12-14 12:49:15 +00:00
|
|
|
|
2019-11-25 14:54:45 +00:00
|
|
|
VOID
|
2007-02-03 20:30:32 +00:00
|
|
|
NTAPI
|
2022-02-13 19:57:12 +00:00
|
|
|
InbvAcquireLock(VOID);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
InbvReleaseLock(VOID);
|
|
|
|
|
|
|
|
PUCHAR
|
|
|
|
NTAPI
|
|
|
|
InbvGetResourceAddress(
|
|
|
|
_In_ ULONG ResourceNumber
|
2007-02-03 20:30:32 +00:00
|
|
|
);
|
|
|
|
|
2019-11-25 14:54:45 +00:00
|
|
|
//
|
2022-02-13 19:57:12 +00:00
|
|
|
// Display Functions
|
2019-11-25 14:54:45 +00:00
|
|
|
//
|
2007-02-03 20:30:32 +00:00
|
|
|
VOID
|
|
|
|
NTAPI
|
2022-02-13 19:57:12 +00:00
|
|
|
InbvBitBlt(
|
|
|
|
_In_ PUCHAR Buffer,
|
|
|
|
_In_ ULONG X,
|
|
|
|
_In_ ULONG Y
|
|
|
|
);
|
2005-06-04 00:25:04 +00:00
|
|
|
|
2007-02-08 00:50:23 +00:00
|
|
|
VOID
|
|
|
|
NTAPI
|
2022-02-13 19:57:12 +00:00
|
|
|
InbvBufferToScreenBlt(
|
|
|
|
_In_ PUCHAR Buffer,
|
|
|
|
_In_ ULONG X,
|
|
|
|
_In_ ULONG Y,
|
|
|
|
_In_ ULONG Width,
|
|
|
|
_In_ ULONG Height,
|
|
|
|
_In_ ULONG Delta
|
2011-06-21 15:53:02 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
2022-02-13 19:57:12 +00:00
|
|
|
InbvScreenToBufferBlt(
|
|
|
|
_Out_ PUCHAR Buffer,
|
|
|
|
_In_ ULONG X,
|
|
|
|
_In_ ULONG Y,
|
|
|
|
_In_ ULONG Width,
|
|
|
|
_In_ ULONG Height,
|
|
|
|
_In_ ULONG Delta
|
2007-02-08 00:50:23 +00:00
|
|
|
);
|
|
|
|
|
2019-11-25 14:54:45 +00:00
|
|
|
//
|
2022-02-13 19:57:12 +00:00
|
|
|
// Progress-Bar Functions
|
2019-11-25 14:54:45 +00:00
|
|
|
//
|
2007-02-08 00:50:23 +00:00
|
|
|
VOID
|
|
|
|
NTAPI
|
2022-02-13 19:57:12 +00:00
|
|
|
InbvSetProgressBarCoordinates(
|
|
|
|
_In_ ULONG Left,
|
|
|
|
_In_ ULONG Top
|
2007-02-08 00:50:23 +00:00
|
|
|
);
|
|
|
|
|
2021-05-11 15:13:14 +00:00
|
|
|
CODE_SEG("INIT")
|
2019-11-25 14:54:45 +00:00
|
|
|
VOID
|
Patch for better boot logo/progress bar, fixed /SOS (debug) boot screen/output, removal of "funny" shutdown messages, addition of shutdown logo/screen, and misc:
[NTOS]: Add missing InbvIndicateProgress routine to update the progress bar while drivers are loading. Make boot and system driver initialization call it for each new driver. This updates the progress bar in the 25-75% range which was defined prior to IoInitSystem.
[NTOS]: Fix InbvUpdateProgressBar code to correctly handle the floor and ceiling.
[NTOS]: Remove shutdown "funny messages", do correct shutdown (should fix the ACPI shutdown issues) procedure. Display the shutdown screen on systems without ACPI (just like Windows does).
[NTOS]: Add a resource header with IDB_ definitions for all the embedded bitmaps, instead of using magic numbers and guessing which is which.
[NTOS]: Fix the boot logo initialization code as it was all wrong. 5 is the logo to be used during shutdown, for example, not the full logo background (which is supposed to be in 1, with a special palette that's faded in). Also handle server vs workstation scenarios.
[NTOS]: Booting in the new WinNT mode now correctly displays the blue background screen when in debug (/SOS) mode, and the header/footer also has the correct color, as does the separator band.
[DDK]: Add missing SUITE_TYPE definitions.
[NTOS]: Remove logo files that are simply not needed for ReactOS (Compute Cluster Edition, Tablet PC, etc...)
[NTOS]: Fix logo files (mostly) to have correct palettes. Note that 1.bmp is still quite different from Windows (no fade).
svn path=/trunk/; revision=45822
2010-03-04 06:26:11 +00:00
|
|
|
NTAPI
|
2022-02-13 19:57:12 +00:00
|
|
|
InbvIndicateProgress(VOID);
|
Patch for better boot logo/progress bar, fixed /SOS (debug) boot screen/output, removal of "funny" shutdown messages, addition of shutdown logo/screen, and misc:
[NTOS]: Add missing InbvIndicateProgress routine to update the progress bar while drivers are loading. Make boot and system driver initialization call it for each new driver. This updates the progress bar in the 25-75% range which was defined prior to IoInitSystem.
[NTOS]: Fix InbvUpdateProgressBar code to correctly handle the floor and ceiling.
[NTOS]: Remove shutdown "funny messages", do correct shutdown (should fix the ACPI shutdown issues) procedure. Display the shutdown screen on systems without ACPI (just like Windows does).
[NTOS]: Add a resource header with IDB_ definitions for all the embedded bitmaps, instead of using magic numbers and guessing which is which.
[NTOS]: Fix the boot logo initialization code as it was all wrong. 5 is the logo to be used during shutdown, for example, not the full logo background (which is supposed to be in 1, with a special palette that's faded in). Also handle server vs workstation scenarios.
[NTOS]: Booting in the new WinNT mode now correctly displays the blue background screen when in debug (/SOS) mode, and the header/footer also has the correct color, as does the separator band.
[DDK]: Add missing SUITE_TYPE definitions.
[NTOS]: Remove logo files that are simply not needed for ReactOS (Compute Cluster Edition, Tablet PC, etc...)
[NTOS]: Fix logo files (mostly) to have correct palettes. Note that 1.bmp is still quite different from Windows (no fade).
svn path=/trunk/; revision=45822
2010-03-04 06:26:11 +00:00
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
2022-02-13 19:57:12 +00:00
|
|
|
InbvSetProgressBarSubset(
|
|
|
|
_In_ ULONG Floor,
|
|
|
|
_In_ ULONG Ceiling
|
Patch for better boot logo/progress bar, fixed /SOS (debug) boot screen/output, removal of "funny" shutdown messages, addition of shutdown logo/screen, and misc:
[NTOS]: Add missing InbvIndicateProgress routine to update the progress bar while drivers are loading. Make boot and system driver initialization call it for each new driver. This updates the progress bar in the 25-75% range which was defined prior to IoInitSystem.
[NTOS]: Fix InbvUpdateProgressBar code to correctly handle the floor and ceiling.
[NTOS]: Remove shutdown "funny messages", do correct shutdown (should fix the ACPI shutdown issues) procedure. Display the shutdown screen on systems without ACPI (just like Windows does).
[NTOS]: Add a resource header with IDB_ definitions for all the embedded bitmaps, instead of using magic numbers and guessing which is which.
[NTOS]: Fix the boot logo initialization code as it was all wrong. 5 is the logo to be used during shutdown, for example, not the full logo background (which is supposed to be in 1, with a special palette that's faded in). Also handle server vs workstation scenarios.
[NTOS]: Booting in the new WinNT mode now correctly displays the blue background screen when in debug (/SOS) mode, and the header/footer also has the correct color, as does the separator band.
[DDK]: Add missing SUITE_TYPE definitions.
[NTOS]: Remove logo files that are simply not needed for ReactOS (Compute Cluster Edition, Tablet PC, etc...)
[NTOS]: Fix logo files (mostly) to have correct palettes. Note that 1.bmp is still quite different from Windows (no fade).
svn path=/trunk/; revision=45822
2010-03-04 06:26:11 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
2022-02-13 19:57:12 +00:00
|
|
|
InbvUpdateProgressBar(
|
|
|
|
_In_ ULONG Percentage
|
Patch for better boot logo/progress bar, fixed /SOS (debug) boot screen/output, removal of "funny" shutdown messages, addition of shutdown logo/screen, and misc:
[NTOS]: Add missing InbvIndicateProgress routine to update the progress bar while drivers are loading. Make boot and system driver initialization call it for each new driver. This updates the progress bar in the 25-75% range which was defined prior to IoInitSystem.
[NTOS]: Fix InbvUpdateProgressBar code to correctly handle the floor and ceiling.
[NTOS]: Remove shutdown "funny messages", do correct shutdown (should fix the ACPI shutdown issues) procedure. Display the shutdown screen on systems without ACPI (just like Windows does).
[NTOS]: Add a resource header with IDB_ definitions for all the embedded bitmaps, instead of using magic numbers and guessing which is which.
[NTOS]: Fix the boot logo initialization code as it was all wrong. 5 is the logo to be used during shutdown, for example, not the full logo background (which is supposed to be in 1, with a special palette that's faded in). Also handle server vs workstation scenarios.
[NTOS]: Booting in the new WinNT mode now correctly displays the blue background screen when in debug (/SOS) mode, and the header/footer also has the correct color, as does the separator band.
[DDK]: Add missing SUITE_TYPE definitions.
[NTOS]: Remove logo files that are simply not needed for ReactOS (Compute Cluster Edition, Tablet PC, etc...)
[NTOS]: Fix logo files (mostly) to have correct palettes. Note that 1.bmp is still quite different from Windows (no fade).
svn path=/trunk/; revision=45822
2010-03-04 06:26:11 +00:00
|
|
|
);
|
2013-10-14 20:38:02 +00:00
|
|
|
|
2019-11-25 14:54:45 +00:00
|
|
|
//
|
|
|
|
// Headless Terminal Support Functions
|
|
|
|
//
|
2010-09-15 07:46:28 +00:00
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
InbvPortEnableFifo(
|
2013-10-14 20:38:02 +00:00
|
|
|
IN ULONG PortId,
|
|
|
|
IN BOOLEAN Enable
|
2010-09-15 07:46:28 +00:00
|
|
|
);
|
|
|
|
|
2019-11-25 14:54:45 +00:00
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
InbvPortPollOnly(
|
|
|
|
IN ULONG PortId
|
|
|
|
);
|
|
|
|
|
2013-10-14 20:50:44 +00:00
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
InbvPortGetByte(
|
|
|
|
IN ULONG PortId,
|
|
|
|
OUT PUCHAR Byte
|
|
|
|
);
|
|
|
|
|
2010-09-15 07:46:28 +00:00
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
InbvPortPutByte(
|
2013-10-14 20:38:02 +00:00
|
|
|
IN ULONG PortId,
|
2013-10-14 20:50:44 +00:00
|
|
|
IN UCHAR Byte
|
2010-09-15 07:46:28 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
InbvPortTerminate(
|
2013-10-14 20:38:02 +00:00
|
|
|
IN ULONG PortId
|
2010-09-15 07:46:28 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
InbvPortInitialize(
|
2013-10-14 20:38:02 +00:00
|
|
|
IN ULONG BaudRate,
|
|
|
|
IN ULONG PortNumber,
|
|
|
|
IN PUCHAR PortAddress,
|
|
|
|
OUT PULONG PortId,
|
|
|
|
IN BOOLEAN IsMMIODevice
|
2010-09-15 07:46:28 +00:00
|
|
|
);
|