diff options
Diffstat (limited to 'platform-intel.h')
-rw-r--r-- | platform-intel.h | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/platform-intel.h b/platform-intel.h index 3c2bc59..63d4168 100644 --- a/platform-intel.h +++ b/platform-intel.h @@ -106,28 +106,29 @@ struct imsm_orom { #define IMSM_OROM_CAPABILITIES_ReadPatrol (1 << 6) #define IMSM_OROM_CAPABILITIES_XorHw (1 << 7) #define IMSM_OROM_CAPABILITIES_SKUMode ((1 << 8)|(1 << 9)) + #define IMSM_OROM_CAPABILITIES_SKUMode_LOW ((1 << 8) | (1 << 9)) + #define IMSM_OROM_CAPABILITIES_SKUMode_LOW_SHIFT 8 #define IMSM_OROM_CAPABILITIES_TPV (1 << 10) + #define IMSM_OROM_CAPABILITIES_SKUMode_HIGH ((1 << 11) | (1 << 12)) + #define IMSM_OROM_CAPABILITIES_SKUMode_HIGH_SHIFT 9 + #define IMSM_OROM_CAPABILITIES_SKUMode_NON_PRODUCTION (1 << 13) } __attribute__((packed)); -static inline int imsm_orom_has_raid0(const struct imsm_orom *orom) -{ - return !!(orom->rlc & IMSM_OROM_RLC_RAID0); -} -static inline int imsm_orom_has_raid1(const struct imsm_orom *orom) -{ - return !!(orom->rlc & IMSM_OROM_RLC_RAID1); -} -static inline int imsm_orom_has_raid1e(const struct imsm_orom *orom) -{ - return !!(orom->rlc & IMSM_OROM_RLC_RAID1E); -} -static inline int imsm_orom_has_raid10(const struct imsm_orom *orom) -{ - return !!(orom->rlc & IMSM_OROM_RLC_RAID10); -} -static inline int imsm_orom_has_raid5(const struct imsm_orom *orom) +/* IMSM metadata requirements for each level */ +struct imsm_level_ops { + int level; + bool (*is_level_supported)(const struct imsm_orom *); + bool (*is_raiddisks_count_supported)(const int); + char *name; +}; + +extern struct imsm_level_ops imsm_level_ops[]; + +static inline bool imsm_rlc_has_bit(const struct imsm_orom *orom, const unsigned short bit) { - return !!(orom->rlc & IMSM_OROM_RLC_RAID5); + if (orom->rlc & bit) + return true; + return false; } /** @@ -261,7 +262,7 @@ const struct imsm_orom *find_imsm_orom(void); int disk_attached_to_hba(int fd, const char *hba_path); int devt_attached_to_hba(dev_t dev, const char *hba_path); char *devt_to_devpath(dev_t dev, int dev_level, char *buf); -int path_attached_to_hba(const char *disk_path, const char *hba_path); +bool is_path_attached_to_hba(const char *disk_path, const char *hba_path); const struct orom_entry *get_orom_entry_by_device_id(__u16 dev_id); const struct imsm_orom *get_orom_by_device_id(__u16 device_id); struct sys_dev *device_by_id(__u16 device_id); |