@@ -11,6 +11,7 @@ open GobConfig
1111
1212let big_kernel_lock = LockDomain.Addr. from_var (Goblintutil. create_var (makeGlobalVar " [big kernel lock]" intType))
1313let console_sem = LockDomain.Addr. from_var (Goblintutil. create_var (makeGlobalVar " [console semaphore]" intType))
14+ let rtnl_lock = LockDomain.Addr. from_var (Goblintutil. create_var (makeGlobalVar " [rtnl_lock]" intType))
1415let verifier_atomic = LockDomain.Addr. from_var (Goblintutil. create_var (makeGlobalVar " [__VERIFIER_atomic]" intType))
1516
1617module Spec : MCPSpec =
@@ -118,10 +119,14 @@ struct
118119 (* print_endline @@ "Mutex `Unlock "^f.vname;*)
119120 unlock remove_rw
120121 | _ , "spinlock_check" -> ()
121- | _ , "acquire_console_sem" when get_bool " kernel" ->
122+ | _ , "acquire_console_sem" -> (* TODO: removed for Klever: when get_bool "kernel" *)
122123 ctx.emit (Events. Lock (console_sem, true ))
123- | _ , "release_console_sem" when get_bool " kernel" ->
124+ | _ , "release_console_sem" -> (* TODO: removed for Klever: when get_bool "kernel" *)
124125 ctx.emit (Events. Unlock console_sem)
126+ | _ , "rtnl_lock" ->
127+ ctx.emit (Events. Lock (rtnl_lock, true ))
128+ | _ , ("rtnl_unlock" | "__rtnl_unlock" ) ->
129+ ctx.emit (Events. Unlock rtnl_lock)
125130 | _ , "__builtin_prefetch" | _ , "misc_deregister" ->
126131 ()
127132 | _ , "__VERIFIER_atomic_begin" when get_bool " ana.sv-comp.functions" ->
0 commit comments