File: StateSaveAreaHeader.h

package info (click to toggle)
intel-graphics-compiler2 2.16.0-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 106,644 kB
  • sloc: cpp: 805,640; lisp: 287,672; ansic: 16,414; python: 3,952; yacc: 2,588; lex: 1,666; pascal: 313; sh: 186; makefile: 35
file content (149 lines) | stat: -rw-r--r-- 3,402 bytes parent folder | download
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/*========================== begin_copyright_notice ============================

Copyright (C) 2019-2024 Intel Corporation

SPDX-License-Identifier: MIT

============================= end_copyright_notice ===========================*/

#pragma once

namespace SIP {
struct alignas(4) version {
  uint8_t major;
  uint8_t minor;
  uint16_t patch;
};

struct alignas(8) StateSaveArea {
  char magic[8] = "tssarea";
  uint64_t reserved1;
  struct version version;
  uint8_t size;
  uint8_t reserved2[3];
};

// Debug SIP will dump this data in debug surface.
struct sr_ident {
  char magic[8] = "srmagic";
  struct version version;
  uint8_t count;
  uint8_t reserved[7];
};

struct alignas(8) regset_desc {
  uint32_t offset;
  uint16_t num;
  uint16_t bits;
  uint16_t bytes;
};

#define EXCHANGE_BUFFER_SIZE 112

struct sip_command {
  uint32_t command;
  uint32_t size;
  uint64_t offset;
  uint8_t buffer[EXCHANGE_BUFFER_SIZE];
};

struct alignas(8) intelgt_state_save_area {
  uint32_t num_slices;
  uint32_t num_subslices_per_slice;
  uint32_t num_eus_per_subslice;
  uint32_t num_threads_per_eu;
  uint32_t state_area_offset;
  uint32_t state_save_size;
  uint32_t slm_area_offset;
  uint32_t slm_bank_size;
  uint32_t slm_bank_valid;
  uint32_t sr_magic_offset;
  struct regset_desc grf;
  struct regset_desc addr;
  struct regset_desc flag;
  struct regset_desc emask;
  struct regset_desc sr;
  struct regset_desc cr;
  struct regset_desc notification;
  struct regset_desc tdr;
  struct regset_desc acc;
  struct regset_desc mme;
  struct regset_desc ce;
  struct regset_desc sp;
  struct regset_desc cmd;
  struct regset_desc tm;
  struct regset_desc fc;
  struct regset_desc dbg;
  struct regset_desc ctx;
  struct regset_desc dbg_reg;
};

struct StateSaveAreaHeader {
  struct StateSaveArea versionHeader;
  struct intelgt_state_save_area regHeader;
};

struct fifo_node {
  uint8_t valid;
  uint8_t thread_id;
  uint8_t eu_id;
  uint8_t subslice_id;
  uint8_t slice_id;
  uint8_t reserved[3];
};

enum SIP_FLAGS { SIP_FLAG_HEAPLESS = 1 };

struct alignas(8) intelgt_state_save_area_V3 {
  uint32_t num_slices;
  uint32_t num_subslices_per_slice;
  uint32_t num_eus_per_subslice;
  uint32_t num_threads_per_eu;
  uint32_t state_area_offset;
  uint32_t state_save_size;
  uint32_t slm_area_offset;
  uint32_t slm_bank_size;
  uint32_t reserved0;
  uint32_t sr_magic_offset;
  uint32_t fifo_offset;
  uint32_t fifo_size;
  uint32_t fifo_head;
  uint32_t fifo_tail;
  uint32_t fifo_version;
  uint32_t reserved1[10];
  uint32_t sip_flags;
  struct regset_desc grf;
  struct regset_desc addr;
  struct regset_desc flag;
  struct regset_desc emask;
  struct regset_desc sr;
  struct regset_desc cr;
  struct regset_desc notification;
  struct regset_desc tdr;
  struct regset_desc acc;
  struct regset_desc mme;
  struct regset_desc ce;
  struct regset_desc sp;
  struct regset_desc cmd;
  struct regset_desc tm;
  struct regset_desc fc;
  struct regset_desc dbg;
  struct regset_desc ctx;
  struct regset_desc dbg_reg;
  struct regset_desc scalar;
  struct regset_desc msg;
};

// versionHeader.version.major = 3
struct StateSaveAreaHeaderV3 {
  struct StateSaveArea versionHeader;
  struct intelgt_state_save_area_V3 regHeader;
};

// versionHeader.version.major = 4
struct StateSaveAreaHeaderV4 {
  struct StateSaveArea versionHeader;
  uint64_t total_wmtp_data_size;
};

} // namespace SIP