Redid timer architecture, only tick handling remaining.
[tart.git] / include / kernel / critical.h
blob78bad7f727154d83a76040766b5dd70bf222fed3
1 #ifndef _CRITICAL_H
2 #define _CRITICAL_H
4 #include <stdint.h>
5 #include <exceptions.h>
7 extern volatile int critical_section_count;
9 static inline void enter_critical_section()
11 if (!critical_section_count) {
12 arch_disable_interrupts();
15 critical_section_count++;
18 static inline void exit_critical_section()
20 if (!(--critical_section_count)) {
21 arch_enable_interrupts();
25 #endif /* _CRITICAL_H */