Getting SharC to check some locking
[akaros.git] / kern / ivy / sharc.c
1 #include <assert.h>
2
3 int __ivy_checking_on = 1;
4
5 void __sharc_lock_error(const void *lck, const void *what,
6                         unsigned int sz, char *msg)
7 {
8         int old;
9         if (!__ivy_checking_on) return;
10         old = __ivy_checking_on;
11         __ivy_checking_on = 0;
12         warn("Ivy: The lock %p was not held for (%p,%d): %s\n",
13           lck, what, sz, msg);
14         __ivy_checking_on = old;
15 }
16
17 void __sharc_lock_coerce_error(void *dstlck, void *srclck, char *msg)
18 {
19         int old;
20         if (!__ivy_checking_on) return;
21         old = __ivy_checking_on;
22         __ivy_checking_on = 0;
23         warn("Ivy: The locks in the coercion at %s must be the same\n", msg);
24         __ivy_checking_on = old;
25 }