This patch adds the logic to locate and open an environment block that is stored in a reserved area on the device. It introduces the function fs_envblk_open() together with helper routines to read the block pointed to by the env_block variable, and to create the block on disk when it does not exist yet. When a block is created, the code records its location inside the file based envblk by setting env_block in block list syntax of offset plus size in sectors. The env_block variable acts as a link from the file envblk to the raw disk region so that later runs of grub-editenv can follow it and access the external block. The helper is exposed through a small ops table attached to fs_envblk so that later patches can call fs_envblk->ops->open() without touching core code again. At this stage variables are still stored in the file envblk and no redirection has been applied. In relation to this, the fs_envblk_spec table defines the file-system specific layout of the reserved raw blocks used for environment storage. It is prepared to facilitate integration in grub-editenv, with Btrfs to be added in the future once its reserved area is defined. An fs_envblk_init() helper is added to prepare it for using the ops with its associated data context if the feature is available. It is not used yet, but will be used later when a filesystem and its device are probed to initialize the fs_envblk handle and enable access to the feature. Signed-off-by: Michael Chang <mchang@suse.com> Reviewed-by: Neal Gompa <ngompa13@gmail.com> Reviewed-by: Avnish Chouhan <avnish@linux.ibm.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This is GRUB 2, the second version of the GRand Unified Bootloader. GRUB 2 is rewritten from scratch to make GNU GRUB cleaner, safer, more robust, more powerful, and more portable. See the file NEWS for a description of recent changes to GRUB 2. See the file INSTALL for instructions on how to build and install the GRUB 2 data and program files. See the file MAINTAINERS for information about the GRUB maintainers, etc. If you found a security vulnerability in the GRUB please check the SECURITY file to get more information how to properly report this kind of bugs to the maintainers. Please visit the official web page of GRUB 2, for more information. The URL is <http://www.gnu.org/software/grub/grub.html>. More extensive documentation is available in the Info manual, accessible using 'info grub' after building and installing GRUB 2. There are a number of important user-visible differences from the first version of GRUB, now known as GRUB Legacy. For a summary, please see: info grub Introduction 'Changes from GRUB Legacy'
Description
Languages
C
82.5%
Assembly
13.6%
M4
1.4%
Shell
1.3%
Makefile
0.5%
Other
0.5%