xref: /aosp_15_r20/external/coreboot/src/drivers/efi/efivars.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef _EDK2_OPTION_H_
4 #define _EDK2_OPTION_H_
5 
6 #include <types.h>
7 #include <commonlib/region.h>
8 
9 #include <vendorcode/intel/edk2/UDK2017/MdePkg/Include/Uefi/UefiBaseType.h>
10 
11 /**
12  * efi_fv_get_option
13  * Use the provided EFI variable store inside the region device as variable store.
14  * @rdev: the readable region to operate on
15  * @guid: the vendor guid to look for
16  * @name: the variable name to look for. NULL terminated.
17  * @dest: memory buffer to place the result into
18  * @size: on input the size of buffer pointed to by dest.
19  *        on output the number of bytes written.
20  */
21 
22 enum cb_err efi_fv_get_option(struct region_device *rdev,
23 			      const EFI_GUID *guid,
24 			      const char *name,
25 			      void *dest,
26 			      uint32_t *size);
27 
28 /**
29  * efi_fv_set_option
30  * Use the provided EFI variable store inside the region device as variable store.
31  * If the variable exists with the same size and contents, nothing will be written
32  * to the region device.
33  * @rdev: the read/writable region to operate on
34  * @guid: the vendor guid to write
35  * @name: the variable name to write. NULL terminated.
36  * @data: memory buffer where to read data from
37  * @size: the size of buffer pointed to by data
38  */
39 enum cb_err efi_fv_set_option(struct region_device *rdev,
40 			      const EFI_GUID *guid,
41 			      const char *name,
42 			      void *data,
43 			      uint32_t size);
44 
45 enum cb_err efi_fv_print_options(struct region_device *rdev);
46 
47 #endif /* _EDK2_OPTION_H_ */
48