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