1 /* SPDX-License-Identifier: GPL-2.0 */
5 #include <uapi/linux/pr.h>
13 struct pr_held_reservation
{
20 int (*pr_register
)(struct block_device
*bdev
, u64 old_key
, u64 new_key
,
22 int (*pr_reserve
)(struct block_device
*bdev
, u64 key
,
23 enum pr_type type
, u32 flags
);
24 int (*pr_release
)(struct block_device
*bdev
, u64 key
,
26 int (*pr_preempt
)(struct block_device
*bdev
, u64 old_key
, u64 new_key
,
27 enum pr_type type
, bool abort
);
28 int (*pr_clear
)(struct block_device
*bdev
, u64 key
);
30 * pr_read_keys - Read the registered keys and return them in the
31 * pr_keys->keys array. The keys array will have been allocated at the
32 * end of the pr_keys struct, and pr_keys->num_keys must be set to the
33 * number of keys the array can hold. If there are more than can fit
34 * in the array, success will still be returned and pr_keys->num_keys
35 * will reflect the total number of keys the device contains, so the
36 * caller can retry with a larger array.
38 int (*pr_read_keys
)(struct block_device
*bdev
,
39 struct pr_keys
*keys_info
);
40 int (*pr_read_reservation
)(struct block_device
*bdev
,
41 struct pr_held_reservation
*rsv
);
44 #endif /* LINUX_PR_H */