lib/hwfeatures-gcry: Introduce functions to manage hardware features
This commit introduces the generic functions to manage the hardware
features in libgcrypt. These functions are stubs for future
platform-specific implementations:
- grub_gcry_hwf_enabled() returns __gcry_use_hwf which indicates if
the hardware features are enabled specifically by grub_enable_gcry_hwf(),
- grub_enable_gcry_hwf() invokes the architecture specific enablement
functions and sets __gcry_use_hwf to true,
- grub_reset_gcry_hwf() invokes the architecture specific reset
functions and sets __gcry_use_hwf to false.
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
d01abd7131
commit
06a5b88baf
@ -36,6 +36,7 @@ library = {
|
||||
common = grub-core/kern/misc.c;
|
||||
common = grub-core/kern/partition.c;
|
||||
common = grub-core/lib/crypto.c;
|
||||
common = grub-core/lib/hwfeatures-gcry.c;
|
||||
common = grub-core/lib/json/json.c;
|
||||
common = grub-core/disk/luks.c;
|
||||
common = grub-core/disk/luks2.c;
|
||||
|
||||
@ -1720,6 +1720,7 @@ module = {
|
||||
module = {
|
||||
name = crypto;
|
||||
common = lib/crypto.c;
|
||||
common = lib/hwfeatures-gcry.c;
|
||||
|
||||
extra_dist = lib/libgcrypt-grub/cipher/crypto.lst;
|
||||
};
|
||||
|
||||
43
grub-core/lib/hwfeatures-gcry.c
Normal file
43
grub-core/lib/hwfeatures-gcry.c
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2025 Free Software Foundation, Inc.
|
||||
*
|
||||
* GRUB is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GRUB is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/dl.h>
|
||||
|
||||
#include <grub/hwfeatures-gcry.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
static bool __gcry_use_hwf = false;
|
||||
|
||||
bool
|
||||
grub_gcry_hwf_enabled (void)
|
||||
{
|
||||
return __gcry_use_hwf;
|
||||
}
|
||||
|
||||
void
|
||||
grub_enable_gcry_hwf (void)
|
||||
{
|
||||
__gcry_use_hwf = true;
|
||||
}
|
||||
|
||||
void
|
||||
grub_reset_gcry_hwf (void)
|
||||
{
|
||||
__gcry_use_hwf = false;
|
||||
}
|
||||
26
include/grub/hwfeatures-gcry.h
Normal file
26
include/grub/hwfeatures-gcry.h
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2025 Free Software Foundation, Inc.
|
||||
*
|
||||
* GRUB is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GRUB is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef HWF_GCRY_HEADER
|
||||
#define HWF_GCRY_HEADER 1
|
||||
|
||||
extern bool grub_gcry_hwf_enabled (void);
|
||||
extern void grub_enable_gcry_hwf (void);
|
||||
extern void grub_reset_gcry_hwf (void);
|
||||
|
||||
#endif /* HWF_GCRY_HEADER */
|
||||
Loading…
x
Reference in New Issue
Block a user