11573Srgrimes/* SPDX-License-Identifier: GPL-2.0 */
21573Srgrimes#ifndef _LINUX_PURGATORY_H
31573Srgrimes#define _LINUX_PURGATORY_H
41573Srgrimes
51573Srgrimes#include <linux/types.h>
61573Srgrimes#include <crypto/sha2.h>
71573Srgrimes#include <uapi/linux/kexec.h>
81573Srgrimes
91573Srgrimesstruct kexec_sha_region {
101573Srgrimes	unsigned long start;
111573Srgrimes	unsigned long len;
121573Srgrimes};
131573Srgrimes
141573Srgrimes/*
151573Srgrimes * These forward declarations serve two purposes:
161573Srgrimes *
171573Srgrimes * 1) Make sparse happy when checking arch/purgatory
181573Srgrimes * 2) Document that these are required to be global so the symbol
191573Srgrimes *    lookup in kexec works
201573Srgrimes */
211573Srgrimesextern struct kexec_sha_region purgatory_sha_regions[KEXEC_SEGMENT_MAX];
221573Srgrimesextern u8 purgatory_sha256_digest[SHA256_DIGEST_SIZE];
231573Srgrimes
241573Srgrimes#endif
251573Srgrimes