18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (C) 2019 IBM Corporation 48c2ecf20Sopenharmony_ci * Author: Nayna Jain 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * PowerPC secure variable operations. 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci#ifndef SECVAR_OPS_H 98c2ecf20Sopenharmony_ci#define SECVAR_OPS_H 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <linux/types.h> 128c2ecf20Sopenharmony_ci#include <linux/errno.h> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciextern const struct secvar_operations *secvar_ops; 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_cistruct secvar_operations { 178c2ecf20Sopenharmony_ci int (*get)(const char *key, uint64_t key_len, u8 *data, 188c2ecf20Sopenharmony_ci uint64_t *data_size); 198c2ecf20Sopenharmony_ci int (*get_next)(const char *key, uint64_t *key_len, 208c2ecf20Sopenharmony_ci uint64_t keybufsize); 218c2ecf20Sopenharmony_ci int (*set)(const char *key, uint64_t key_len, u8 *data, 228c2ecf20Sopenharmony_ci uint64_t data_size); 238c2ecf20Sopenharmony_ci}; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci#ifdef CONFIG_PPC_SECURE_BOOT 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ciextern void set_secvar_ops(const struct secvar_operations *ops); 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci#else 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_cistatic inline void set_secvar_ops(const struct secvar_operations *ops) { } 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci#endif 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci#endif 36