@@ -27,7 +27,7 @@ void clearUseFlags() {
2727 called = false ;
2828}
2929
30- std::vector<char > createStateSaveAreaHeader () {
30+ std::vector<char > createStateSaveAreaHeader (uint32_t version ) {
3131 SIP::StateSaveAreaHeader stateSaveAreaHeader = {
3232 {
3333 // versionHeader
@@ -71,7 +71,56 @@ std::vector<char> createStateSaveAreaHeader() {
7171 },
7272 };
7373
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+ }
75124 return std::vector<char >(begin, begin + sizeof (stateSaveAreaHeader));
76125}
77126} // namespace MockSipData
0 commit comments