📄 cpu.c
字号:
/* -*- linux-c -*- ------------------------------------------------------- * * * Copyright (C) 1991, 1992 Linus Torvalds * Copyright 2007 rPath, Inc. - All Rights Reserved * * This file is part of the Linux kernel, and is made available under * the terms of the GNU General Public License version 2. * * ----------------------------------------------------------------------- *//* * arch/i386/boot/cpu.c * * Check for obligatory CPU features and abort if the features are not * present. */#include "boot.h"#include "bitops.h"#include <asm/cpufeature.h>static char *cpu_name(int level){ static char buf[6]; if (level == 64) { return "x86-64"; } else { sprintf(buf, "i%d86", level); return buf; }}int validate_cpu(void){ u32 *err_flags; int cpu_level, req_level; check_cpu(&cpu_level, &req_level, &err_flags); if (cpu_level < req_level) { printf("This kernel requires an %s CPU, ", cpu_name(req_level)); printf("but only detected an %s CPU.\n", cpu_name(cpu_level)); return -1; } if (err_flags) { int i, j; puts("This kernel requires the following features " "not present on the CPU:\n"); for (i = 0; i < NCAPINTS; i++) { u32 e = err_flags[i]; for (j = 0; j < 32; j++) { if (e & 1) printf("%d:%d ", i, j); e >>= 1; } } putchar('\n'); return -1; } else { return 0; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -