arch/x86/kernel/resource.c

Source file repositories/reference/linux-study-clean/arch/x86/kernel/resource.c

File Facts

System
Linux kernel
Corpus path
arch/x86/kernel/resource.c
Extension
.c
Size
1826 bytes
Lines
73
Domain
Architecture Layer
Bucket
arch/x86
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

if (orig.start != avail->start || orig.end != avail->end) {
			pr_info("resource: avoiding allocation from e820 entry [mem %#010Lx-%#010Lx]\n",
				e820_start, e820_end);
			if (avail->end > avail->start)
				/*
				 * Use %pa instead of %pR because "avail"
				 * is typically IORESOURCE_UNSET, so %pR
				 * shows the size instead of addresses.
				 */
				pr_info("resource: remaining [mem %pa-%pa] available\n",
					&avail->start, &avail->end);
			orig = *avail;
		}
	}
}

void arch_remove_reservations(struct resource *avail)
{
	/*
	 * Trim out BIOS area (high 2MB) and E820 regions. We do not remove
	 * the low 1MB unconditionally, as this area is needed for some ISA
	 * cards requiring a memory range.
	 */
	if (avail->flags & IORESOURCE_MEM) {
		resource_clip(avail, BIOS_ROM_BASE, BIOS_ROM_END);

		remove_e820_regions(avail);
	}
}

Annotation

Implementation Notes