18#include <Library/BaseLib.h>
19#include <Library/BaseMemoryLib.h>
20#include <Library/BaseOverflowLib.h>
21#include <Library/DebugLib.h>
32 OUT UINT32 *FatOffset,
38 UINT32 NumberOfFatArch;
48 ASSERT (FatOffset != NULL);
54 return EFI_INVALID_PARAMETER;
73 NumberOfFatArch = SwapBytes32 (NumberOfFatArch);
77 || (TmpSize > BufferSize))
79 return EFI_INVALID_PARAMETER;
85 for (Index = 0; Index < NumberOfFatArch; ++Index) {
88 TmpCpuType = SwapBytes32 (TmpCpuType);
91 if (TmpCpuType == CpuType) {
95 Offset = SwapBytes32 (Offset);
100 || BaseOverflowAddU32 (Offset,
Size, &TmpSize)
101 || (TmpSize > FullSize))
103 return EFI_INVALID_PARAMETER;
112 return EFI_NOT_FOUND;
117 IN OUT UINT8 **FileData,
118 IN OUT UINT32 *FileSize,
126 ASSERT (FileData != NULL);
127 ASSERT (FileSize != NULL);
131 if (EFI_ERROR (Status)) {
135 *FileData += FatOffset;
143 IN OUT UINT8 **FileData,
144 IN OUT UINT32 *FileSize
152 IN OUT UINT8 **FileData,
153 IN OUT UINT32 *FileSize
#define MACH_FAT_BINARY_SIGNATURE
#define EFI_FAT_BINARY_SIGNATURE
#define MACH_FAT_BINARY_INVERT_SIGNATURE
EFI_STATUS FatFilterArchitectureByType(IN OUT UINT8 **FileData, IN OUT UINT32 *FileSize, IN MACH_CPU_TYPE CpuType)
EFI_STATUS FatFilterArchitecture64(IN OUT UINT8 **FileData, IN OUT UINT32 *FileSize)
EFI_STATUS FatFilterArchitecture32(IN OUT UINT8 **FileData, IN OUT UINT32 *FileSize)
EFI_STATUS FatGetArchitectureOffset(IN CONST UINT8 *Buffer, IN UINT32 BufferSize, IN UINT32 FullSize, IN MACH_CPU_TYPE CpuType, OUT UINT32 *FatOffset, OUT UINT32 *FatSize)
DMG_SIZE_DEVICE_PATH Size
OC_TYPING_BUFFER_ENTRY Buffer[OC_TYPING_BUFFER_SIZE]