ReactOS 0.4.16-dev-2610-ge2c92c0
part_brfr.c File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define XBOX_SIGNATURE_SECTOR   3
 
#define XBOX_SIGNATURE   ('B' | ('R' << 8) | ('F' << 16) | ('R' << 24))
 
#define FATX_DATA_PARTITION   1
 

Functions

static BOOLEAN DiskIsBrfr (_In_ UCHAR DriveNumber)
 
BOOLEAN DiskGetBrfrPartitionEntry (_In_ UCHAR DriveNumber, _In_ ULONG SectorSize, _In_ ULONG PartitionNumber, _Out_ PPARTITION_INFORMATION PartitionEntry)
 

Variables

struct {
   ULONG   SectorStart
 
   ULONG   SectorCount
 
   UCHAR   PartitionType
 
XboxPartitions []
 

Macro Definition Documentation

◆ FATX_DATA_PARTITION

#define FATX_DATA_PARTITION   1

Definition at line 17 of file part_brfr.c.

◆ XBOX_SIGNATURE

#define XBOX_SIGNATURE   ('B' | ('R' << 8) | ('F' << 16) | ('R' << 24))

Definition at line 14 of file part_brfr.c.

◆ XBOX_SIGNATURE_SECTOR

#define XBOX_SIGNATURE_SECTOR   3

Definition at line 13 of file part_brfr.c.

Function Documentation

◆ DiskGetBrfrPartitionEntry()

BOOLEAN DiskGetBrfrPartitionEntry ( _In_ UCHAR  DriveNumber,
_In_ ULONG  SectorSize,
_In_ ULONG  PartitionNumber,
_Out_ PPARTITION_INFORMATION  PartitionEntry 
)

Definition at line 47 of file part_brfr.c.

52{
53 ASSERT(SectorSize >= 512);
54
55 if (!DiskIsBrfr(DriveNumber))
56 return FALSE; /* No magic Xbox partitions */
57
58 /* Get partition entry of an Xbox-standard BRFR partitioned disk */
60 return FALSE; /* Partition does not exist */
61
62 /* Convert to standard-style entry */
63 PartitionEntry->StartingOffset.QuadPart = (ULONGLONG)XboxPartitions[PartitionNumber - 1].SectorStart * SectorSize;
64 PartitionEntry->PartitionLength.QuadPart = (ULONGLONG)XboxPartitions[PartitionNumber - 1].SectorCount * SectorSize;
65 PartitionEntry->HiddenSectors = 0;
66 PartitionEntry->PartitionNumber = PartitionNumber;
67 PartitionEntry->PartitionType = XboxPartitions[PartitionNumber - 1].PartitionType;
68 PartitionEntry->BootIndicator = (PartitionNumber == FATX_DATA_PARTITION);
69 PartitionEntry->RecognizedPartition = TRUE;
70 PartitionEntry->RewritePartition = FALSE;
71
72 return TRUE;
73}
#define RTL_NUMBER_OF(x)
Definition: RtlRegistry.c:12
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define ASSERT(a)
Definition: mode.c:44
static BOOLEAN DiskIsBrfr(_In_ UCHAR DriveNumber)
Definition: part_brfr.c:35
#define FATX_DATA_PARTITION
Definition: part_brfr.c:17
ULONG SectorStart
Definition: part_brfr.c:21
ULONG SectorCount
Definition: part_brfr.c:22
static struct @142 XboxPartitions[]
uint64_t ULONGLONG
Definition: typedefs.h:67
_In_ ULONG SectorSize
Definition: halfuncs.h:291
_In_ ULONG _In_ ULONG PartitionNumber
Definition: iofuncs.h:2061

Referenced by DiskGetBootPartitionEntry(), and DiskGetPartitionEntry().

◆ DiskIsBrfr()

static BOOLEAN DiskIsBrfr ( _In_ UCHAR  DriveNumber)
static

Definition at line 35 of file part_brfr.c.

37{
38 /* Read the Xbox-specific sector */
40 return FALSE; /* Partition does not exist */
41
42 /* Verify the magic Xbox signature */
43 return (*((PULONG)DiskReadBuffer) == XBOX_SIGNATURE);
44}
#define DiskReadBuffer
Definition: hardware.h:33
#define MachDiskReadLogicalSectors(Drive, Start, Count, Buf)
Definition: machine.h:120
#define XBOX_SIGNATURE_SECTOR
Definition: part_brfr.c:13
#define XBOX_SIGNATURE
Definition: part_brfr.c:14
uint32_t * PULONG
Definition: typedefs.h:59

Referenced by DiskDetectPartitionType(), and DiskGetBrfrPartitionEntry().

Variable Documentation

◆ PartitionType

◆ SectorCount

◆ SectorStart

ULONG SectorStart

Definition at line 21 of file part_brfr.c.

Referenced by DiskGetBrfrPartitionEntry(), and DiskInitialize().

◆ 

struct { ... } XboxPartitions[]
Initial value:
=
{
{ 0x0055F400, 0x0098F800, PARTITION_FAT32 },
{ 0x00465400, 0x000FA000, PARTITION_FAT_16 },
{ 0x00000400, 0x00177000, PARTITION_FAT_16 },
{ 0x00177400, 0x00177000, PARTITION_FAT_16 },
{ 0x002EE400, 0x00177000, PARTITION_FAT_16 }
}
#define PARTITION_FAT32
Definition: part_mbr.h:59
#define PARTITION_FAT_16
Definition: part_mbr.h:54

Referenced by DiskGetBrfrPartitionEntry().