software-modes.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. #pragma once
  2. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  3. #ifdef CHECK_SOFTWARE_MODES
  4. #define MODE inSoftwareMode
  5. #define MODE_ inSoftwareMode,
  6. #else
  7. #define MODE
  8. #define MODE_
  9. #endif
  10. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  11. // B O O T M O D E
  12. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  13. #ifdef CHECK_SOFTWARE_MODES
  14. class BOOT_mode_class {
  15. private: BOOT_mode_class (void) = delete ;
  16. private: BOOT_mode_class & operator = (const BOOT_mode_class &) = delete ;
  17. public: BOOT_mode_class (const BOOT_mode_class &) ;
  18. } ;
  19. #endif
  20. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  21. #ifdef CHECK_SOFTWARE_MODES
  22. #define BOOT_MODE const BOOT_mode_class MODE
  23. #define BOOT_MODE_ const BOOT_mode_class MODE,
  24. #else
  25. #define BOOT_MODE void
  26. #define BOOT_MODE_
  27. #endif
  28. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  29. // I N I T M O D E
  30. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  31. #ifdef CHECK_SOFTWARE_MODES
  32. class INIT_mode_class {
  33. private: INIT_mode_class (void) = delete ;
  34. private: INIT_mode_class & operator = (const INIT_mode_class &) = delete ;
  35. public: INIT_mode_class (const INIT_mode_class &) ;
  36. } ;
  37. #endif
  38. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  39. #ifdef CHECK_SOFTWARE_MODES
  40. #define INIT_MODE const INIT_mode_class MODE
  41. #define INIT_MODE_ const INIT_mode_class MODE,
  42. #else
  43. #define INIT_MODE void
  44. #define INIT_MODE_
  45. #endif
  46. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  47. // U S E R M O D E
  48. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  49. #ifdef CHECK_SOFTWARE_MODES
  50. class USER_mode_class {
  51. private: USER_mode_class (void) = delete ;
  52. private: USER_mode_class & operator = (const USER_mode_class &) = delete ;
  53. public: USER_mode_class (const USER_mode_class &) ;
  54. } ;
  55. #endif
  56. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  57. #ifdef CHECK_SOFTWARE_MODES
  58. #define USER_MODE const USER_mode_class MODE
  59. #define USER_MODE_ const USER_mode_class MODE,
  60. #else
  61. #define USER_MODE void
  62. #define USER_MODE_
  63. #endif
  64. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  65. // K E R N E L M O D E
  66. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  67. #ifdef CHECK_SOFTWARE_MODES
  68. class KERNEL_mode_class {
  69. private: KERNEL_mode_class (void) = delete ;
  70. private: KERNEL_mode_class & operator = (const KERNEL_mode_class &) = delete ;
  71. public: KERNEL_mode_class (const KERNEL_mode_class &) ;
  72. } ;
  73. #endif
  74. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  75. #ifdef CHECK_SOFTWARE_MODES
  76. #define KERNEL_MODE const KERNEL_mode_class MODE
  77. #define KERNEL_MODE_ const KERNEL_mode_class MODE,
  78. #else
  79. #define KERNEL_MODE void
  80. #define KERNEL_MODE_
  81. #endif
  82. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  83. // I R Q M O D E
  84. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  85. #ifdef CHECK_SOFTWARE_MODES
  86. class IRQ_mode_class {
  87. private: IRQ_mode_class (void) = delete ;
  88. private: IRQ_mode_class & operator = (const IRQ_mode_class &) = delete ;
  89. public: IRQ_mode_class (const IRQ_mode_class &) ;
  90. public: IRQ_mode_class (const KERNEL_mode_class &) ;
  91. public: IRQ_mode_class (const INIT_mode_class &) ;
  92. } ;
  93. #endif
  94. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  95. #ifdef CHECK_SOFTWARE_MODES
  96. #define IRQ_MODE const IRQ_mode_class MODE
  97. #define IRQ_MODE_ const IRQ_mode_class MODE,
  98. #else
  99. #define IRQ_MODE void
  100. #define IRQ_MODE_
  101. #endif
  102. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  103. // S E C T I O N M O D E
  104. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  105. #ifdef CHECK_SOFTWARE_MODES
  106. class SECTION_mode_class {
  107. private: SECTION_mode_class (void) = delete ;
  108. private: SECTION_mode_class & operator = (const SECTION_mode_class &) = delete ;
  109. public: SECTION_mode_class (const SECTION_mode_class &) ;
  110. public: SECTION_mode_class (const IRQ_mode_class &) ;
  111. public: SECTION_mode_class (const KERNEL_mode_class &) ;
  112. public: SECTION_mode_class (const INIT_mode_class &) ;
  113. } ;
  114. #endif
  115. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  116. #ifdef CHECK_SOFTWARE_MODES
  117. #define SECTION_MODE const SECTION_mode_class MODE
  118. #define SECTION_MODE_ const SECTION_mode_class MODE,
  119. #else
  120. #define SECTION_MODE void
  121. #define SECTION_MODE_
  122. #endif
  123. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  124. // F A U L T M O D E
  125. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  126. #ifdef CHECK_SOFTWARE_MODES
  127. class FAULT_mode_class {
  128. private: FAULT_mode_class (void) = delete ;
  129. private: FAULT_mode_class & operator = (const FAULT_mode_class &) = delete ;
  130. public: FAULT_mode_class (const FAULT_mode_class &) ;
  131. } ;
  132. #endif
  133. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  134. #ifdef CHECK_SOFTWARE_MODES
  135. #define FAULT_MODE const FAULT_mode_class MODE
  136. #define FAULT_MODE_ const FAULT_mode_class MODE,
  137. #else
  138. #define FAULT_MODE void
  139. #define FAULT_MODE_
  140. #endif
  141. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  142. // A N Y M O D E
  143. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  144. #ifdef CHECK_SOFTWARE_MODES
  145. class ANY_mode_class {
  146. private: ANY_mode_class (void) = delete ;
  147. private: ANY_mode_class & operator = (const ANY_mode_class &) = delete ;
  148. public: ANY_mode_class (const ANY_mode_class &) ;
  149. public: ANY_mode_class (const SECTION_mode_class &) ;
  150. public: ANY_mode_class (const IRQ_mode_class &) ;
  151. public: ANY_mode_class (const KERNEL_mode_class &) ;
  152. public: ANY_mode_class (const INIT_mode_class &) ;
  153. public: ANY_mode_class (const USER_mode_class &) ;
  154. } ;
  155. #endif
  156. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  157. #ifdef CHECK_SOFTWARE_MODES
  158. #define ANY_MODE const ANY_mode_class MODE
  159. #define ANY_MODE_ const ANY_mode_class MODE,
  160. #else
  161. #define ANY_MODE void
  162. #define ANY_MODE_
  163. #endif
  164. //——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————