939
940 #define NUM_X86_FEATURES 93
941 extern uchar_t x86_featureset[];
942
943 extern void free_x86_featureset(void *featureset);
944 extern boolean_t is_x86_feature(void *featureset, uint_t feature);
945 extern void add_x86_feature(void *featureset, uint_t feature);
946 extern void remove_x86_feature(void *featureset, uint_t feature);
947 extern boolean_t compare_x86_featureset(void *setA, void *setB);
948 extern void print_x86_featureset(void *featureset);
949
950
951 extern uint_t x86_type;
952 extern uint_t x86_vendor;
953 extern uint_t x86_clflush_size;
954
955 extern uint_t pentiumpro_bug4046376;
956
957 extern const char CyrixInstead[];
958
959 #endif
960
961 #if defined(_KERNEL)
962
963 /*
964 * This structure is used to pass arguments and get return values back
965 * from the CPUID instruction in __cpuid_insn() routine.
966 */
967 struct cpuid_regs {
968 uint32_t cp_eax;
969 uint32_t cp_ebx;
970 uint32_t cp_ecx;
971 uint32_t cp_edx;
972 };
973
974 extern int x86_use_pcid;
975 extern int x86_use_invpcid;
976
977 /*
978 * Utility functions to get/set extended control registers (XCR)
|
939
940 #define NUM_X86_FEATURES 93
941 extern uchar_t x86_featureset[];
942
943 extern void free_x86_featureset(void *featureset);
944 extern boolean_t is_x86_feature(void *featureset, uint_t feature);
945 extern void add_x86_feature(void *featureset, uint_t feature);
946 extern void remove_x86_feature(void *featureset, uint_t feature);
947 extern boolean_t compare_x86_featureset(void *setA, void *setB);
948 extern void print_x86_featureset(void *featureset);
949
950
951 extern uint_t x86_type;
952 extern uint_t x86_vendor;
953 extern uint_t x86_clflush_size;
954
955 extern uint_t pentiumpro_bug4046376;
956
957 extern const char CyrixInstead[];
958
959 extern void (*spec_l1d_flush)(void);
960
961 #endif
962
963 #if defined(_KERNEL)
964
965 /*
966 * This structure is used to pass arguments and get return values back
967 * from the CPUID instruction in __cpuid_insn() routine.
968 */
969 struct cpuid_regs {
970 uint32_t cp_eax;
971 uint32_t cp_ebx;
972 uint32_t cp_ecx;
973 uint32_t cp_edx;
974 };
975
976 extern int x86_use_pcid;
977 extern int x86_use_invpcid;
978
979 /*
980 * Utility functions to get/set extended control registers (XCR)
|