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/misc.c;
|
||||||
common = grub-core/kern/partition.c;
|
common = grub-core/kern/partition.c;
|
||||||
common = grub-core/lib/crypto.c;
|
common = grub-core/lib/crypto.c;
|
||||||
|
common = grub-core/lib/hwfeatures-gcry.c;
|
||||||
common = grub-core/lib/json/json.c;
|
common = grub-core/lib/json/json.c;
|
||||||
common = grub-core/disk/luks.c;
|
common = grub-core/disk/luks.c;
|
||||||
common = grub-core/disk/luks2.c;
|
common = grub-core/disk/luks2.c;
|
||||||
|
|||||||
@ -1720,6 +1720,7 @@ module = {
|
|||||||
module = {
|
module = {
|
||||||
name = crypto;
|
name = crypto;
|
||||||
common = lib/crypto.c;
|
common = lib/crypto.c;
|
||||||
|
common = lib/hwfeatures-gcry.c;
|
||||||
|
|
||||||
extra_dist = lib/libgcrypt-grub/cipher/crypto.lst;
|
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