[SETUPLIB][USETUP] Introduce a bootloader installation helper (#7310)

CORE-13525

This is done so that the caller doesn't need to know details
about particular architecture specifics, like VBR, MBR etc.

Extra checks and specific handling is also performed for supporting
bootloader installation on removable media:
- verify whether the media is a floppy or some other removable media,
- depending on which, a suitable file system is chosen,
- and if the media is not a floppy, do the supplemental partition
  verifications to determine whether the media is a "super-floppy"
  (in the partitioning sense).
This commit is contained in:
Hermès Bélusca-Maïto 2024-08-30 13:40:34 +02:00
parent 636e2e9172
commit b3cd576737
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0
4 changed files with 574 additions and 194 deletions

View file

@ -40,6 +40,17 @@ extern HANDLE ProcessHeap;
#include "utils/arcname.h"
#include "utils/osdetect.h"
#include "utils/regutil.h"
typedef enum _ARCHITECTURE_TYPE
{
ARCH_PcAT, //< Standard BIOS-based PC-AT
ARCH_NEC98x86, //< NEC PC-98
ARCH_Xbox, //< Original Xbox
ARCH_Arc, //< ARC-based (MIPS, SGI)
ARCH_Efi, //< EFI and UEFI
// Place other architectures supported by the Setup below.
} ARCHITECTURE_TYPE;
#include "bootcode.h"
#include "fsutil.h"
#include "bootsup.h"
@ -66,16 +77,6 @@ struct _USETUP_DATA;
typedef VOID
(__cdecl *PSETUP_ERROR_ROUTINE)(IN struct _USETUP_DATA*, ...);
typedef enum _ARCHITECTURE_TYPE
{
ARCH_PcAT, //< Standard BIOS-based PC-AT
ARCH_NEC98x86, //< NEC PC-98
ARCH_Xbox, //< Original Xbox
ARCH_Arc, //< ARC-based (MIPS, SGI)
ARCH_Efi, //< EFI and UEFI
// Place other architectures supported by the Setup below.
} ARCHITECTURE_TYPE;
typedef struct _USETUP_DATA
{
/* Error handling *****/