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