コード例 #1
0
ファイル: cpu.c プロジェクト: cyrillos/criu
static void fetch_rt_cpuinfo(void)
{
	if (!rt_info_done) {
		compel_cpuid(&rt_info);
		rt_info_done = true;
	}
}
コード例 #2
0
ファイル: cpu.c プロジェクト: avagin/criu
int cpu_init(void)
{
	if (compel_cpuid(&rt_cpu_info))
		return -1;

	BUILD_BUG_ON(sizeof(struct xsave_struct) != XSAVE_SIZE);
	BUILD_BUG_ON(sizeof(struct i387_fxsave_struct) != FXSAVE_SIZE);

	/*
	 * Make sure that at least FPU is onboard
	 * and fxsave is supported.
	 */
	if (cpu_has_feature(X86_FEATURE_FPU)) {
		if (!cpu_has_feature(X86_FEATURE_FXSR)) {
			pr_err("missing support fxsave/restore insns\n");
			return -1;
		}
	}

	pr_debug("fpu:%d fxsr:%d xsave:%d\n",
		 !!cpu_has_feature(X86_FEATURE_FPU),
		 !!cpu_has_feature(X86_FEATURE_FXSR),
		 !!cpu_has_feature(X86_FEATURE_XSAVE));

	return 0;
}
コード例 #3
0
ファイル: cpu.c プロジェクト: avagin/criu
bool cpu_has_feature(unsigned int feature)
{
	if (!rt_info_done) {
		compel_cpuid(&rt_info);
		rt_info_done = true;
	}
	return compel_test_cpu_cap(&rt_info, feature);
}
コード例 #4
0
ファイル: cpu.c プロジェクト: avagin/criu
int cpu_init(void)
{
	return compel_cpuid(&rt_cpuinfo);
}