mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-24 05:01:03 +02:00
block: sed-opal: Add ioctl to return device status
Provide a mechanism to retrieve basic status information about the device, including the "supported" flag indicating whether SED-OPAL is supported. The information returned is from the various feature descriptors received during the discovery0 step, and so this ioctl does nothing more than perform the discovery0 step and then save the information received. See "struct opal_status" and OPAL_FL_* bits for the status information currently returned. This is necessary to be able to check whether a device is OPAL enabled, set up, locked or unlocked from userspace programs like systemd-cryptsetup and libcryptsetup. Right now we just have to assume the user 'knows' or blindly attempt setup/lock/unlock operations. Signed-off-by: Douglas Miller <dougmill@linux.vnet.ibm.com> Tested-by: Luca Boccassi <bluca@debian.org> Reviewed-by: Scott Bauer <sbauer@plzdonthack.me> Acked-by: Christian Brauner (Microsoft) <brauner@kernel.org> Link: https://lore.kernel.org/r/20220816140713.84893-1-luca.boccassi@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
1c23f9e627
commit
c6ea706042
@@ -132,6 +132,18 @@ struct opal_read_write_table {
|
||||
__u64 priv;
|
||||
};
|
||||
|
||||
#define OPAL_FL_SUPPORTED 0x00000001
|
||||
#define OPAL_FL_LOCKING_SUPPORTED 0x00000002
|
||||
#define OPAL_FL_LOCKING_ENABLED 0x00000004
|
||||
#define OPAL_FL_LOCKED 0x00000008
|
||||
#define OPAL_FL_MBR_ENABLED 0x00000010
|
||||
#define OPAL_FL_MBR_DONE 0x00000020
|
||||
|
||||
struct opal_status {
|
||||
__u32 flags;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
#define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock)
|
||||
#define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock)
|
||||
#define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key)
|
||||
@@ -148,5 +160,6 @@ struct opal_read_write_table {
|
||||
#define IOC_OPAL_MBR_DONE _IOW('p', 233, struct opal_mbr_done)
|
||||
#define IOC_OPAL_WRITE_SHADOW_MBR _IOW('p', 234, struct opal_shadow_mbr)
|
||||
#define IOC_OPAL_GENERIC_TABLE_RW _IOW('p', 235, struct opal_read_write_table)
|
||||
#define IOC_OPAL_GET_STATUS _IOR('p', 236, struct opal_status)
|
||||
|
||||
#endif /* _UAPI_SED_OPAL_H */
|
||||
|
Reference in New Issue
Block a user