/** @file
  PlatformEarlyDxe.h -- Header for PlatformEarlyDxe


Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __PLATFORMEARLYDXE_H__
#define __PLATFORMEARLYDXE_H__

#include "../uefi_headers/Uefi.h"

//
// Function Prototypes
//

///
/// ModuleEntryPoint -- UEFI entry point / initialization function
///
EFI_STATUS
EFIAPI
ModuleEntryPoint(
  EFI_HANDLE        ImageHandle,
  EFI_SYSTEM_TABLE  *SystemTable
);

///
/// InitializePlatformContext -- Performs module boot-time context setup
///
EFI_STATUS
EFIAPI
InitializePlatformContext(
  EFI_HANDLE        ImageHandle,
  EFI_SYSTEM_TABLE  *SystemTable
);

///
/// EarlyPlatformInit -- Core early hardware initialization flow
///
EFI_STATUS
EFIAPI
EarlyPlatformInit(
  VOID
);

///
/// ConfigureGpioPins -- Sets GPIO defaults used by platform init
///
EFI_STATUS
EFIAPI
ConfigureGpioPins(
  VOID
);

///
/// InitSmbusController -- Initializes SMBus controller for platform services
///
EFI_STATUS
EFIAPI
InitSmbusController(
  VOID
);

///
/// ProgramFixedFunctionDevices -- Programs fixed-function device configuration
///
EFI_STATUS
EFIAPI
ProgramFixedFunctionDevices(
  VOID
);

///
/// HandleEarlyPlatformInitFailure -- Fallback path when early init fails
///
EFI_STATUS
EFIAPI
HandleEarlyPlatformInitFailure(
  VOID
);

#endif /* __PLATFORMEARLYDXE_H__ */
