arch/x86/lib/cpu.c

Source file repositories/reference/linux-study-clean/arch/x86/lib/cpu.c

File Facts

System
Linux kernel
Corpus path
arch/x86/lib/cpu.c
Extension
.c
Size
624 bytes
Lines
39
Domain
Architecture Layer
Bucket
arch/x86
Inferred role
Architecture Layer: exported/initcall integration point
Status
integration 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

// SPDX-License-Identifier: GPL-2.0-only
#include <linux/types.h>
#include <linux/export.h>
#include <asm/cpu.h>

unsigned int x86_family(unsigned int sig)
{
	unsigned int x86;

	x86 = (sig >> 8) & 0xf;

	if (x86 == 0xf)
		x86 += (sig >> 20) & 0xff;

	return x86;
}
EXPORT_SYMBOL_GPL(x86_family);

unsigned int x86_model(unsigned int sig)
{
	unsigned int fam, model;

	fam = x86_family(sig);

	model = (sig >> 4) & 0xf;

	if (fam >= 0x6)
		model += ((sig >> 16) & 0xf) << 4;

	return model;
}
EXPORT_SYMBOL_GPL(x86_model);

unsigned int x86_stepping(unsigned int sig)
{
	return sig & 0xf;
}
EXPORT_SYMBOL_GPL(x86_stepping);

Annotation

Implementation Notes