return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- Madt->Header = *(EFI_ACPI_DESCRIPTION_HEADER *) AcpiTableBuffer;\r
- Madt->Header.Length = NewBufferSize;\r
+ CopyMem (&(Madt->Header), AcpiTableBuffer, sizeof (EFI_ACPI_DESCRIPTION_HEADER));\r
+ Madt->Header.Length = (UINT32) NewBufferSize;\r
Madt->LocalApicAddress = PcdGet32 (PcdCpuLocalApicBaseAddress);\r
Madt->Flags = EFI_ACPI_1_0_PCAT_COMPAT;\r
Ptr = Madt + 1;\r
for (Loop = 0; Loop < CpuCount; ++Loop) {\r
LocalApic->Type = EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC;\r
LocalApic->Length = sizeof (*LocalApic);\r
- LocalApic->AcpiProcessorId = Loop;\r
- LocalApic->ApicId = Loop;\r
+ LocalApic->AcpiProcessorId = (UINT8) Loop;\r
+ LocalApic->ApicId = (UINT8) Loop;\r
LocalApic->Flags = 1; // enabled\r
++LocalApic;\r
}\r
IoApic = Ptr;\r
IoApic->Type = EFI_ACPI_1_0_IO_APIC;\r
IoApic->Length = sizeof (*IoApic);\r
- IoApic->IoApicId = CpuCount;\r
+ IoApic->IoApicId = (UINT8) CpuCount;\r
IoApic->Reserved = EFI_ACPI_RESERVED_BYTE;\r
IoApic->IoApicAddress = 0xFEC00000;\r
IoApic->SystemVectorBase = 0x00000000;\r
Iso->Type = EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE;\r
Iso->Length = sizeof (*Iso);\r
Iso->Bus = 0x00; // ISA\r
- Iso->Source = Loop;\r
- Iso->GlobalSystemInterruptVector = Loop;\r
+ Iso->Source = (UINT8) Loop;\r
+ Iso->GlobalSystemInterruptVector = (UINT32) Loop;\r
Iso->Flags = 0x000D; // Level-tiggered, Active High\r
++Iso;\r
}\r
ASSERT (\r
- Iso - (EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE *)Ptr ==\r
+ (UINTN) (Iso - (EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE *)Ptr) ==\r
1 + PciLinkIsoCount\r
);\r
Ptr = Iso;\r
LocalApicNmi->LocalApicInti = 0x01;\r
Ptr = LocalApicNmi + 1;\r
\r
- ASSERT ((UINT8 *)Ptr - (UINT8 *)Madt == NewBufferSize);\r
+ ASSERT ((UINTN) ((UINT8 *)Ptr - (UINT8 *)Madt) == NewBufferSize);\r
Status = InstallAcpiTable (AcpiProtocol, Madt, NewBufferSize, TableKey);\r
\r
FreePool (Madt);\r