hc
2024-03-25 edb30157bad0c0001c32b854271ace01d3b9a16a
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
  GUID and structure used for debug status code policy.
 
  @copyright
  Copyright 2017 - 2021 Intel Corporation. <BR>
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/
 
#ifndef _STATUS_CODE_DATA_TYPE_EX_DEBUG_GUID_H_
#define _STATUS_CODE_DATA_TYPE_EX_DEBUG_GUID_H_
 
#define STATUS_CODE_DATA_TYPE_EX_DEBUG_GUID \
  { 0x7859daa2, 0x926e, 0x4b01,{0x85, 0x86, 0xc6, 0x2d, 0x45, 0x64, 0x21, 0xd2} }
 
#define MAX_EX_DEBUG_SIZE     0x200 // Inherited from PEI status code max
#define MAX_EX_DEBUG_STR_LEN  (MAX_EX_DEBUG_SIZE - sizeof(EX_DEBUG_INFO))
 
typedef
CHAR8 *
(EFIAPI *PROCESS_BUFFER) (
  IN     VOID   *ProcessDataPtr,
  IN     CHAR8  *Buffer,
  IN OUT UINTN  *BufferSize
  );
 
typedef
VOID *
(EFIAPI *PRINT_SYNC_ACQUIRE) (
  VOID
  );
 
typedef
VOID *
(EFIAPI *PRINT_SYNC_RELEASE) (
  VOID
  );
 
typedef struct {
  PROCESS_BUFFER                ProcessBuffer; // Buffer processing function
  VOID                          *ProcessDataPtr; // Data needed for processing
  PRINT_SYNC_ACQUIRE            PrintSyncAcquire; // Acquire sync function
  PRINT_SYNC_RELEASE            PrintSyncRelease; // Release sync function
  UINT32                        DebugStringLen;
  CHAR8                         *DebugString; // Provided debug string
} EX_DEBUG_INFO;
 
extern EFI_GUID gStatusCodeDataTypeExDebugGuid;
 
#endif // _STATUS_CODE_DATA_TYPE_EX_DEBUG_GUID_H_