Files
PluralTechnology/service/ptos/head/ke/bpal.h
T
2026-07-10 06:49:52 +00:00

60 lines
1.1 KiB
C

/*
* Copyright (c) 2026, Chloe M.
* Provided under the BSD-3 clause.
*
* Description: Boot protocol abstraction layer
* Author: Chloe M.
*/
#ifndef _KE_BPAL_H_
#define _KE_BPAL_H_ 1
#include <ptapi/status.h>
#include <ptdef.h>
/*
* Represents a framebuffer
*/
typedef struct {
VOID *Address;
UQUAD Width;
UQUAD Height;
UQUAD Pitch;
SHORT Bpp;
UCHAR RedMaskSize;
UCHAR RedMaskShift;
UCHAR GreenMaskSize;
UCHAR GreenMaskShift;
UCHAR BlueMaskSize;
UCHAR BlueMaskShift;
} BPAL_FRAMEBUFFER;
/*
* Represents a handle for the boot protocol abstraction
* layer containing data filled in by the bootloader.
*
* @KernelBase: Represents the kernel load base
* @Framebuffer: Framebuffer information
*/
typedef struct {
UPTR KernelBase;
BPAL_FRAMEBUFFER Framebuffer;
} BPAL_HANDLE;
/*
* Initialize the boot protocol abstraction layer
*/
VOID KeBpalInit(VOID);
/*
* Obtain the BPAL handle
*
* @Result: Result is written here
*/
VOID KeBpalGetHandle(BPAL_HANDLE *Result);
/* Backend protocol init */
VOID KeBpalLimineInit(BPAL_HANDLE *Result);
#endif /* !_KE_BPAL_H_ */