mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 08:24:32 -08:00
[libcpu] Add CPU_FEATURE_WRN
The new CPU_FEATURE_WRN macro in the cpu features list will cause the kernel to emit a warning but not panic if the feature is missing.
This commit is contained in:
@@ -10,7 +10,9 @@ namespace cpu {
|
||||
enum class feature {
|
||||
#define CPU_FEATURE_REQ(name, ...) name,
|
||||
#define CPU_FEATURE_OPT(name, ...) name,
|
||||
#define CPU_FEATURE_WRN(name, ...) name,
|
||||
#include "cpu/features.inc"
|
||||
#undef CPU_FEATURE_WRN
|
||||
#undef CPU_FEATURE_OPT
|
||||
#undef CPU_FEATURE_REQ
|
||||
max
|
||||
|
||||
@@ -33,6 +33,6 @@ CPU_FEATURE_OPT(rdtscp, 0x80000001, 0, edx, 27)
|
||||
CPU_FEATURE_REQ(syscall, 0x80000001, 0, edx, 11)
|
||||
CPU_FEATURE_REQ(pdpe1gb, 0x80000001, 0, edx, 26)
|
||||
|
||||
CPU_FEATURE_OPT(invtsc, 0x80000007, 0, edx, 8)
|
||||
CPU_FEATURE_WRN(invtsc, 0x80000007, 0, edx, 8)
|
||||
|
||||
// vim: et
|
||||
|
||||
@@ -49,12 +49,16 @@ cpu_id::features() const
|
||||
if (r.regname & (1ull << bit)) \
|
||||
feats.set(feature::name);
|
||||
|
||||
#define CPU_FEATURE_WRN(name, feat_leaf, feat_sub, regname, bit) \
|
||||
CPU_FEATURE_OPT(name, feat_leaf, feat_sub, regname, bit);
|
||||
|
||||
#define CPU_FEATURE_REQ(name, feat_leaf, feat_sub, regname, bit) \
|
||||
CPU_FEATURE_OPT(name, feat_leaf, feat_sub, regname, bit);
|
||||
|
||||
#include "cpu/features.inc"
|
||||
#undef CPU_FEATURE_OPT
|
||||
#undef CPU_FEATURE_REQ
|
||||
#undef CPU_FEATURE_WRN
|
||||
|
||||
return feats;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user