/*
 * Copyright (c) 2026, Chloe M.
 * Provided under the BSD-3 clause.
 *
 * Description: Boot video driver
 * Author:      Chloe M.
 */

#ifndef _BOOTVID_FBIO_H_
#define _BOOTVID_FBIO_H_ 1

#include <ptdef.h>

/*
 * Boot console attributes
 *
 * @Background: Console background color
 * @Foreground: Console foreground color
 */
typedef struct {
    ULONG Background;
    ULONG Foreground;
} BOOTCONS_ATTR;

/*
 * Initialize the boot video driver
 */
VOID BootVidInit(VOID);

/*
 * De-initialize the boot video console
 */
VOID BootVidDeInitCons(VOID);

/*
 * Initialize the boot video console
 *
 * @Attr:  Console attributes to initialize
 */
VOID BootVidInitCons(BOOTCONS_ATTR *Attr);

/*
 * Write to the boot console
 *
 * @String: String to write to boot console
 * @Length: Length of string to write
 */
VOID BootVidConsWrite(const CHAR *String, USIZE Length);

/*
 * Returns true if the boot console is enabled
 */
BOOLEAN BootVidConsEn(VOID);

#endif  /* !_BOOTVID_FBIO_H_ */
