45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef LINUX_DEVICE_ID_X86_CPU_H
|
|
#define LINUX_DEVICE_ID_X86_CPU_H
|
|
|
|
#ifdef __KERNEL__
|
|
#include <linux/types.h>
|
|
typedef unsigned long kernel_ulong_t;
|
|
#endif
|
|
|
|
/* Wild cards for x86_cpu_id::vendor, family, model and feature */
|
|
#define X86_VENDOR_ANY 0xffff
|
|
#define X86_FAMILY_ANY 0
|
|
#define X86_MODEL_ANY 0
|
|
#define X86_STEPPING_ANY 0
|
|
#define X86_STEP_MIN 0
|
|
#define X86_STEP_MAX 0xf
|
|
#define X86_PLATFORM_ANY 0x0
|
|
#define X86_FEATURE_ANY 0 /* Same as FPU, you can't test for that */
|
|
#define X86_CPU_TYPE_ANY 0
|
|
|
|
/*
|
|
* Match x86 CPUs for CPU specific drivers.
|
|
* See documentation of "x86_match_cpu" for details.
|
|
*/
|
|
|
|
/*
|
|
* MODULE_DEVICE_TABLE expects this struct to be called x86cpu_device_id.
|
|
* Although gcc seems to ignore this error, clang fails without this define.
|
|
*/
|
|
#define x86cpu_device_id x86_cpu_id
|
|
struct x86_cpu_id {
|
|
__u16 vendor;
|
|
__u16 family;
|
|
__u16 model;
|
|
__u16 steppings;
|
|
__u16 feature; /* bit index */
|
|
/* Solely for kernel-internal use: DO NOT EXPORT to userspace! */
|
|
__u16 flags;
|
|
__u8 platform_mask;
|
|
__u8 type;
|
|
kernel_ulong_t driver_data;
|
|
};
|
|
|
|
#endif /* ifndef LINUX_DEVICE_ID_X86_CPU_H */
|