1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _LINUX_PURGATORY_H 3*4882a593Smuzhiyun #define _LINUX_PURGATORY_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/types.h> 6*4882a593Smuzhiyun #include <crypto/sha.h> 7*4882a593Smuzhiyun #include <uapi/linux/kexec.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun struct kexec_sha_region { 10*4882a593Smuzhiyun unsigned long start; 11*4882a593Smuzhiyun unsigned long len; 12*4882a593Smuzhiyun }; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun /* 15*4882a593Smuzhiyun * These forward declarations serve two purposes: 16*4882a593Smuzhiyun * 17*4882a593Smuzhiyun * 1) Make sparse happy when checking arch/purgatory 18*4882a593Smuzhiyun * 2) Document that these are required to be global so the symbol 19*4882a593Smuzhiyun * lookup in kexec works 20*4882a593Smuzhiyun */ 21*4882a593Smuzhiyun extern struct kexec_sha_region purgatory_sha_regions[KEXEC_SEGMENT_MAX]; 22*4882a593Smuzhiyun extern u8 purgatory_sha256_digest[SHA256_DIGEST_SIZE]; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun #endif 25