OPT_END()
};
+OPT_ARGS(init_opts) = {
+ OPT_FLAG("read-only", 'r', &sedopal_lock_ro,
+ "Set locking range to read-only"),
+ OPT_END()
+};
+
OPT_ARGS(key_opts) = {
OPT_FLAG("ask-key", 'k', &sedopal_ask_key,
"prompt for SED authentication key"),
const char *desc = "Initialize a SED device for locking";
struct nvme_dev *dev;
- err = sed_opal_open_device(&dev, argc, argv, desc, no_opts);
+ err = sed_opal_open_device(&dev, argc, argv, desc, init_opts);
if (err)
return err;
*/
bool sedopal_psid_revert;
+/*
+ * Lock read-only
+ */
+bool sedopal_lock_ro;
+
/*
* Map method status codes to error text
*/
lr_setup.range_start = 0;
lr_setup.range_length = 0;
lr_setup.RLE = true;
- lr_setup.WLE = true;
+ if (!sedopal_lock_ro)
+ lr_setup.WLE = true;
lr_setup.session.opal_key = key;
lr_setup.session.sum = 0;
extern bool sedopal_ask_new_key;
extern bool sedopal_destructive_revert;
extern bool sedopal_psid_revert;
+extern bool sedopal_lock_ro;
/*
* Sub-commands supported by the sedopal command