// Align IO resource at 4K boundary\r
//\r
Mask = 0xFFFULL;\r
- Io->Limit = (Io->Limit + Mask) & ~Mask;\r
+ Io->Limit = ((Io->Limit + Mask) & ~Mask) - 1;\r
if (Io->Base != MAX_UINT64) {\r
Io->Base &= ~Mask;\r
}\r
// Align MEM resource at 1MB boundary\r
//\r
Mask = 0xFFFFFULL;\r
- Mem->Limit = (Mem->Limit + Mask) & ~Mask;\r
+ Mem->Limit = ((Mem->Limit + Mask) & ~Mask) - 1;\r
if (Mem->Base != MAX_UINT64) {\r
Mem->Base &= ~Mask;\r
}\r
for (PrimaryBus = 0; PrimaryBus <= PCI_MAX_BUS; PrimaryBus = SubBus + 1) {\r
SubBus = PrimaryBus;\r
Attributes = 0;\r
+\r
+ ZeroMem (&Io, sizeof (Io));\r
+ ZeroMem (&Mem, sizeof (Mem));\r
+ ZeroMem (&MemAbove4G, sizeof (MemAbove4G));\r
+ ZeroMem (&PMem, sizeof (PMem));\r
+ ZeroMem (&PMemAbove4G, sizeof (PMemAbove4G));\r
Io.Base = Mem.Base = MemAbove4G.Base = PMem.Base = PMemAbove4G.Base = MAX_UINT64;\r
- Io.Limit = Mem.Limit = MemAbove4G.Limit = PMem.Limit = PMemAbove4G.Limit = 0;\r
//\r
// Scan all the PCI devices on the primary bus of the PCI root bridge\r
//\r