1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (C) 2019 IBM Corporation
6 * PowerPC secure variable operations.
11 #include <linux/types.h>
12 #include <linux/errno.h>
13 #include <linux/sysfs.h>
15 extern const struct secvar_operations
*secvar_ops
;
17 struct secvar_operations
{
18 int (*get
)(const char *key
, u64 key_len
, u8
*data
, u64
*data_size
);
19 int (*get_next
)(const char *key
, u64
*key_len
, u64 keybufsize
);
20 int (*set
)(const char *key
, u64 key_len
, u8
*data
, u64 data_size
);
21 ssize_t (*format
)(char *buf
, size_t bufsize
);
22 int (*max_size
)(u64
*max_size
);
23 const struct attribute
**config_attrs
;
25 // NULL-terminated array of fixed variable names
26 // Only used if get_next() isn't provided
27 const char * const *var_names
;
30 #ifdef CONFIG_PPC_SECURE_BOOT
32 int set_secvar_ops(const struct secvar_operations
*ops
);
36 static inline int set_secvar_ops(const struct secvar_operations
*ops
) { return 0; }