summaryrefslogtreecommitdiffstats
path: root/PrmPkg/Include/PrmDataBuffer.h
blob: 70d690ca5446b0d12af58d930f51ddfd499442e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/** @file

  Definitions for the Platform Runtime Mechanism (PRM) data buffer structures.

  Copyright (c) Microsoft Corporation
  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef PRM_DATA_BUFFER_H_
#define PRM_DATA_BUFFER_H_

#include <Uefi.h>

#define PRM_DATA_BUFFER_HEADER_SIGNATURE      SIGNATURE_32('P','R','M','D')

#pragma pack(push, 1)

///
/// A generic header that describes the PRM data buffer.
///
typedef struct {
  ///
  /// PRM Data Buffer signature.
  ///
  UINT32                                  Signature;
  ///
  /// Length of the entire data buffer, including the size of the header.
  ///
  UINT32                                  Length;
} PRM_DATA_BUFFER_HEADER;

///
/// A PRM data buffer is a generic header followed by variable length arbitrary data.
///
typedef struct {
  ///
  /// The header is required at the beginning of every PRM data buffer.
  ///
  PRM_DATA_BUFFER_HEADER                  Header;

  ///
  /// The beginning of data immediately follows the header.
  ///
  UINT8                                   Data[1];
} PRM_DATA_BUFFER;

#pragma pack(pop)

#endif