reactos/ntoskrnl/include/internal/inbv.h
Hermès Bélusca-Maïto f7e8214b55
[NTOS:INBV] Code refactoring: Move all the boot animation-specific code out of inbv.c and into the new bootanim.c file.
- inbv.c now only contains the Inbv-specific API and nothing else.

- It will make easier for people to write their own boot themes & animations,
  by just copying/adapting the bootanim.c file (and the resources).

- Add SAL annotations.

- All INBV progress bar functions (except for InbvIndicateProgress())
  should not be INIT-only functions, since they can be (not yet in ROS)
  used at later times -- namely, for feedback during hibernation.
2022-02-13 21:29:14 +01:00

150 lines
2 KiB
C

/*
* 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
*/
#pragma once
/* Native definitions from BOOTVID (Boot Video Driver) */
#include "bootvid/bootvid.h"
//
// Driver Initialization
//
CODE_SEG("INIT")
BOOLEAN
NTAPI
InbvDriverInitialize(
_In_ PLOADER_PARAMETER_BLOCK LoaderBlock,
_In_ ULONG Count
);
extern BOOLEAN InbvBootDriverInstalled;
INBV_DISPLAY_STATE
NTAPI
InbvGetDisplayState(VOID);
VOID
NTAPI
InbvAcquireLock(VOID);
VOID
NTAPI
InbvReleaseLock(VOID);
PUCHAR
NTAPI
InbvGetResourceAddress(
_In_ ULONG ResourceNumber
);
//
// Display Functions
//
VOID
NTAPI
InbvBitBlt(
_In_ PUCHAR Buffer,
_In_ ULONG X,
_In_ ULONG Y
);
VOID
NTAPI
InbvBufferToScreenBlt(
_In_ PUCHAR Buffer,
_In_ ULONG X,
_In_ ULONG Y,
_In_ ULONG Width,
_In_ ULONG Height,
_In_ ULONG Delta
);
VOID
NTAPI
InbvScreenToBufferBlt(
_Out_ PUCHAR Buffer,
_In_ ULONG X,
_In_ ULONG Y,
_In_ ULONG Width,
_In_ ULONG Height,
_In_ ULONG Delta
);
//
// Progress-Bar Functions
//
VOID
NTAPI
InbvSetProgressBarCoordinates(
_In_ ULONG Left,
_In_ ULONG Top
);
CODE_SEG("INIT")
VOID
NTAPI
InbvIndicateProgress(VOID);
VOID
NTAPI
InbvSetProgressBarSubset(
_In_ ULONG Floor,
_In_ ULONG Ceiling
);
VOID
NTAPI
InbvUpdateProgressBar(
_In_ ULONG Percentage
);
//
// Headless Terminal Support Functions
//
VOID
NTAPI
InbvPortEnableFifo(
IN ULONG PortId,
IN BOOLEAN Enable
);
BOOLEAN
NTAPI
InbvPortPollOnly(
IN ULONG PortId
);
BOOLEAN
NTAPI
InbvPortGetByte(
IN ULONG PortId,
OUT PUCHAR Byte
);
VOID
NTAPI
InbvPortPutByte(
IN ULONG PortId,
IN UCHAR Byte
);
VOID
NTAPI
InbvPortTerminate(
IN ULONG PortId
);
BOOLEAN
NTAPI
InbvPortInitialize(
IN ULONG BaudRate,
IN ULONG PortNumber,
IN PUCHAR PortAddress,
OUT PULONG PortId,
IN BOOLEAN IsMMIODevice
);