Rev 886 | Rev 889 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
854 | serge | 1 | |
2 | |||
3 | |||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | |||
11 | |||
12 | |||
13 | panic_printf("Kernel panic in %s() at %s:%u: " format, __func__, \ |
||
14 | __FILE__, __LINE__, ##__VA_ARGS__); |
||
15 | |||
16 | |||
17 | if (!(expr)) { \ |
||
18 | panic("assertion failed (%s), caller=%p\n", #expr, CALLER); \ |
||
19 | } |
||
20 | |||
862 | serge | 21 | |
22 | |||
23 | |||
854 | serge | 24 | |
862 | serge | 25 | |
854 | serge | 26 | panic_printf("Kernel panic: " format, ##__VA_ARGS__); |
27 | |||
28 | |||
29 | |||
862 | serge | 30 | |
31 | |||
32 | |||
888 | serge | 33 | if (!(expr)) { \ |
34 | panic_printf("Kernel panic in %s() at %s:%u: " \ |
||
35 | "assertion failed (%s)",__func__ ,__FILE__,__LINE__, \ |
||
36 | #expr); \ |
||
37 | }; |
||
38 | |||
39 | |||
854 | serge | 40 | |
41 | |||
42 | |||
43 | { |
||
44 | eflags_t tmp; |
||
45 | asm volatile ( |
||
46 | "pushfl\n\t" |
||
886 | serge | 47 | "popl %0\n\t" |
48 | "cli\n" |
||
854 | serge | 49 | : "=r" (tmp) |
50 | ); |
||
51 | return tmp; |
||
52 | } |
||
53 | |||
54 | |||
55 | { |
||
56 | asm volatile ( |
||
57 | "pushl %0\n\t" |
||
886 | serge | 58 | "popfl\n" |
59 | : : "r" (efl) |
||
854 | serge | 60 | ); |
61 | } |
||
62 | |||
859 | serge | 63 | |
64 | { |
||
65 | count_t n; |
||
66 | asm volatile ("xorl %0, %0 \n\t" |
||
886 | serge | 67 | "bsr %1, %0" |
68 | :"=&r" (n) |
||
859 | serge | 69 | :"r"(arg) |
70 | ); |
||
71 | return n; |
||
72 | } |
||
73 | |||
74 | |||
75 | { |
||
76 | count_t n; |
||
77 | asm volatile ("xorl %0, %0 \n\t" |
||
886 | serge | 78 | "bsf %1, %0" |
79 | :"=&r" (n) |
||
859 | serge | 80 | :"r"(arg) |
81 | ); |
||
82 | return n; |
||
83 | } |
||
84 | |||
85 | |||
86 | { |
||
87 | asm volatile ("bts %0, %1 \n\t" |
||
88 | : |
||
89 | :"g"(data), "r"(val) |
||
90 | :"cc" |
||
91 | ); |
||
92 | } |
||
93 | |||
94 | |||
95 | { |
||
96 | asm volatile ("btr %0, %1 \n\t" |
||
97 | : |
||
98 | :"g"(data), "r"(val) |
||
99 | :"cc" |
||
100 | ); |
||
101 | } |
||
102 |