@@ -27,7 +27,7 @@ void clearUseFlags() {
27
27
called = false ;
28
28
}
29
29
30
- std::vector<char > createStateSaveAreaHeader () {
30
+ std::vector<char > createStateSaveAreaHeader (uint32_t version ) {
31
31
SIP::StateSaveAreaHeader stateSaveAreaHeader = {
32
32
{
33
33
// versionHeader
@@ -71,7 +71,56 @@ std::vector<char> createStateSaveAreaHeader() {
71
71
},
72
72
};
73
73
74
- char *begin = reinterpret_cast <char *>(&stateSaveAreaHeader);
74
+ SIP::StateSaveAreaHeader stateSaveAreaHeader2 = {
75
+ {
76
+ // versionHeader
77
+ " tssarea" , // magic
78
+ 0 , // reserved1
79
+ { // version
80
+ 2 , // major
81
+ 0 , // minor
82
+ 0 }, // patch
83
+ 40 , // size
84
+ {0 , 0 , 0 }, // reserved2
85
+ },
86
+ {
87
+ // regHeader
88
+ 1 , // num_slices
89
+ 1 , // num_subslices_per_slice
90
+ 8 , // num_eus_per_subslice
91
+ 7 , // num_threads_per_eu
92
+ 0 , // state_area_offset
93
+ 6144 , // state_save_size
94
+ 0 , // slm_area_offset
95
+ 0 , // slm_bank_size
96
+ 0 , // slm_bank_valid
97
+ 4740 , // sr_magic_offset
98
+ {0 , 128 , 256 , 32 }, // grf
99
+ {4096 , 1 , 256 , 32 }, // addr
100
+ {4128 , 2 , 32 , 4 }, // flag
101
+ {4156 , 1 , 32 , 4 }, // emask
102
+ {4160 , 2 , 128 , 16 }, // sr
103
+ {4192 , 1 , 128 , 16 }, // cr
104
+ {4256 , 1 , 96 , 12 }, // notification
105
+ {4288 , 1 , 128 , 16 }, // tdr
106
+ {4320 , 10 , 256 , 32 }, // acc
107
+ {0 , 0 , 0 , 0 }, // mme
108
+ {4672 , 1 , 32 , 4 }, // ce
109
+ {4704 , 1 , 128 , 16 }, // sp
110
+ {4768 , 1 , 128 * 8 , 128 }, // cmd
111
+ {4640 , 1 , 128 , 16 }, // tm
112
+ {0 , 0 , 0 , 0 }, // fc
113
+ {4736 , 1 , 32 , 4 }, // dbg
114
+ },
115
+ };
116
+
117
+ char *begin = nullptr ;
118
+
119
+ if (version == 1 ) {
120
+ begin = reinterpret_cast <char *>(&stateSaveAreaHeader);
121
+ } else if (version == 2 ) {
122
+ begin = reinterpret_cast <char *>(&stateSaveAreaHeader2);
123
+ }
75
124
return std::vector<char >(begin, begin + sizeof (stateSaveAreaHeader));
76
125
}
77
126
} // namespace MockSipData
0 commit comments