@@ -80,6 +80,11 @@ module Make
8080 if Cfg. variant Variant_litmus. ConstPacField && not (Cfg. variant Variant_litmus. Pac ) then
8181 Warn. user_error " \" const-pac-field\" variant require \" pac\" variant"
8282
83+ let () =
84+ if (Cfg. variant Variant_litmus. EIS || Cfg. variant Variant_litmus. EOS )
85+ && not (Cfg. variant Variant_litmus. ExS ) then
86+ Warn. user_error " \" eis\" /\" eos\" variants require \" exs\" variant"
87+
8388 module Insert =
8489 ObjUtil. Insert
8590 (struct
@@ -222,8 +227,17 @@ module Make
222227 if do_stats then O. o " #define STATS 1" ;
223228 if Cfg. is_kvm then begin
224229 O. o " #define KVM 1" ;
230+ if Cfg. variant Variant_litmus. ExS then begin
231+ let eis = if Cfg. variant Variant_litmus. EIS then 1 else 0 in
232+ let eos = if Cfg. variant Variant_litmus. EOS then 1 else 0 in
233+ O. o " #define EXS 1" ;
234+ O. f " #define EIS %d" eis ;
235+ O. f " #define EOS %d" eos
236+ end ;
225237 O. o " #include <libcflat.h>" ;
226238 O. o " #include \" kvm-headers.h\" " ;
239+ if Cfg. variant Variant_litmus. ExS then
240+ O. o " #include \" exs.h\" " ;
227241 O. o " #include \" utils.h\" " ;
228242 if not Cfg. stdio then begin
229243 O. o " #include \" litmus_io.h\" " ;
@@ -2312,6 +2326,10 @@ module Make
23122326 dump_cond_def env test ;
23132327 dump_parameters env test ;
23142328 dump_hash_def doc.Name. name env test ;
2329+ if Cfg. is_kvm && Cfg. variant Variant_litmus. ExS then begin
2330+ Insert. insert O. o " _exs.c" ;
2331+ O. o " "
2332+ end ;
23152333 dump_set_feature test db ;
23162334 dump_test_code env test procs_user ;
23172335 dump_instance_def procs_user test ;
@@ -2329,6 +2347,8 @@ module Make
23292347 end ;
23302348 if Cfg. variant Variant_litmus. ConstPacField then
23312349 O. fi " if (!check_const_pac_field_variant(%S)) return 0;" doc.Name. name;
2350+ if Cfg. is_kvm && Cfg. variant Variant_litmus. ExS then
2351+ O. fi " if (!check_exs(%S)) return 0;" doc.Name. name ;
23322352 if Cfg. is_kvm then begin
23332353 match db with
23342354 | None ->
0 commit comments