Now with more sandwich
[lttv.git] / contrib / fsm_checker / LOCK_CHECK / fsm_locking.sm
CommitLineData
e09e518e
GM
1%start Map1::S0
2%class lockclass
3%header lockclass.h
4
5%map Map1
6%%
7
8S0
9{
10 acquire_lock(lock: void *, lock_add: guint32, hardirqs_off: int,hardirq_context: int, pid: int)
11 [irq_check(ctxt, lock, hardirqs_off, hardirq_context)] S0
12 {updatelock(lock, lock_add, pid, hardirqs_off, hardirq_context);warning("potential deadlock", lock);pushlock(lock);}
13 acquire_lock(lock: void *, lock_add: guint32, hardirqs_off: int,hardirq_context: int, pid: int)
14 Locks_acquired
15 {updatelock(lock, lock_add, pid, hardirqs_off, hardirq_context);pushlock(lock);}
16 free_lock(lock: void *)
17 S0
18 {clearlock(lock);}
19
20 Default
21 S0
22 {}
23}
24Locks_acquired
25{
26 acquire_lock(lock: void *, lock_add: guint32, hardirqs_off: int,hardirq_context: int, pid: int)
27 [irq_check(ctxt, lock, hardirqs_off, hardirq_context)] Locks_acquired
28 {updatelock(lock, lock_add, pid, hardirqs_off, hardirq_context);pushlock(lock);warning("potential deadlock", lock);}
29 acquire_lock(lock: void *, lock_add: guint32, hardirqs_off: int,hardirq_context: int, pid: int)
30 Locks_acquired
31 {updatelock(lock, lock_add, pid, hardirqs_off, hardirq_context);pushlock(lock);}
32 release_lock(lock: void *)
33 [empty_stack(ctxt)] S0
34 {poplock(lock);}
35 release_lock(lock: void *)
36 Locks_acquired
37 {poplock(lock);}
38 free_lock(lock: void *)
39 [lock_held(ctxt, lock)] Locks_acquired
40 {warning("Lockdep attempting to free a held lock", lock);}
41 free_lock(lock: void *)
42 Locks_acquired
43 {clearlock(lock);}
44 schedule_out(pid: guint32)
45 [lock_held_on_behalf(ctxt, pid)] Locks_acquired
46 // {warning("process... was scheduled out when a lock is being held on its behalf", NULL);printstack();
47 // schedule_err(pid);}
48 {test();}
49 Default
50 Locks_acquired
51 {}
52}
53Potential_Deadlock
54{
55 Default Potential_Deadlock {}
56}
57Error{
58 Default Error {}
59}
60%%
This page took 0.031715 seconds and 4 git commands to generate.