This series of patches aims at extending SED Opal support: 1. Exposing enum opal_uid and opaluid definitions to the users to select the desired opal table UID. 2. Generalizing write data to any opal table 3. Add an IOCTL for reading/writing any Opal Table with Admin-1 authority Datastore feature described in: https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-Opal_Feature_Set-Additional_DataStore_Tables_v1_00_r1_00_Final.pdf Opal Application Note: https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage_Opal_SSC_Application_Note_1-00_1-00-Final.pdf This feature has been successfully tested on OPAL Datastore and MBR table using internal tools with a Intel SSD and Intel Optane. Changes from v1(https://lore.kernel.org/linux-block/20190821191051.3535-1-revanth.rajashekar@xxxxxxxxx/): 1. Fix the spelling mistake in the commit message. 2. Introduce a length check condition before Copy To User in opal_read_table function to facilitate user with easy debugging. 3. Introduce switch cases in the opal_generic_read_write_table ioctl function. 4. Move read/write table opal_step to discrete functions to reduce the load on the ioctl function. 5. Introduce 'opal table operations' enumeration in uapi. 6. Remove tabs before the #defines in opal_read_write_table structure to improve the code readability Revanth Rajashekar (3): block: sed-opal: Expose enum opal_uid and opaluid block: sed-opal: Generalizing write data to any opal table block: sed-opal: Add support to read/write opal tables generically block/opal_proto.h | 39 ---- block/sed-opal.c | 375 ++++++++++++++++++++++------------ include/linux/sed-opal.h | 1 + include/uapi/linux/sed-opal.h | 132 ++++++++++++ 4 files changed, 373 insertions(+), 174 deletions(-) -- 2.17.1