64 lines
1.1 KiB
C
64 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (C) 2021 Advanced Micro Devices, Inc.
|
|
*
|
|
* Author: Brijesh Singh <brijesh.singh@amd.com>
|
|
*
|
|
* SEV-SNP API spec is available at https://developer.amd.com/sev
|
|
*/
|
|
|
|
#ifndef __VIRT_SEVGUEST_H__
|
|
#define __VIRT_SEVGUEST_H__
|
|
|
|
#include <linux/types.h>
|
|
|
|
#define MAX_AUTHTAG_LEN 32
|
|
|
|
/* See SNP spec SNP_GUEST_REQUEST section for the structure */
|
|
enum msg_type {
|
|
SNP_MSG_TYPE_INVALID = 0,
|
|
SNP_MSG_CPUID_REQ,
|
|
SNP_MSG_CPUID_RSP,
|
|
SNP_MSG_KEY_REQ,
|
|
SNP_MSG_KEY_RSP,
|
|
SNP_MSG_REPORT_REQ,
|
|
SNP_MSG_REPORT_RSP,
|
|
SNP_MSG_EXPORT_REQ,
|
|
SNP_MSG_EXPORT_RSP,
|
|
SNP_MSG_IMPORT_REQ,
|
|
SNP_MSG_IMPORT_RSP,
|
|
SNP_MSG_ABSORB_REQ,
|
|
SNP_MSG_ABSORB_RSP,
|
|
SNP_MSG_VMRK_REQ,
|
|
SNP_MSG_VMRK_RSP,
|
|
|
|
SNP_MSG_TYPE_MAX
|
|
};
|
|
|
|
enum aead_algo {
|
|
SNP_AEAD_INVALID,
|
|
SNP_AEAD_AES_256_GCM,
|
|
};
|
|
|
|
struct snp_guest_msg_hdr {
|
|
u8 authtag[MAX_AUTHTAG_LEN];
|
|
u64 msg_seqno;
|
|
u8 rsvd1[8];
|
|
u8 algo;
|
|
u8 hdr_version;
|
|
u16 hdr_sz;
|
|
u8 msg_type;
|
|
u8 msg_version;
|
|
u16 msg_sz;
|
|
u32 rsvd2;
|
|
u8 msg_vmpck;
|
|
u8 rsvd3[35];
|
|
} __packed;
|
|
|
|
struct snp_guest_msg {
|
|
struct snp_guest_msg_hdr hdr;
|
|
u8 payload[4000];
|
|
} __packed;
|
|
|
|
#endif /* __VIRT_SEVGUEST_H__ */
|