Support debugging of the operating system.  
More...
 | 
| #define  | STRINGIFY(S)   #S | 
|   | Converts a macro parameter into a string.  More...
  | 
|   | 
| #define  | assert_size(TYPE,  SIZE)   static_assert(sizeof(TYPE) == (SIZE), "Wrong size for " STRINGIFY(TYPE)) | 
|   | Statically ensure (at compile time) that a data type (or variable) has the expected size.  More...
  | 
|   | 
| #define  | assert(EXP) | 
|   | Ensure (at execution time) an expression evaluates to true, print an error message and stop the CPU otherwise.  More...
  | 
|   | 
| #define  | kernelpanic(MSG) | 
|   | Print an error message in the debug window and stop the current core.  More...
  | 
|   | 
Support debugging of the operating system. 
◆ STRINGIFY
      
        
          | #define STRINGIFY | 
          ( | 
            | 
          S | ) | 
             #S | 
        
      
 
Converts a macro parameter into a string. 
- Parameters
 - 
  
    | S | Expression to be converted  | 
  
   
- Returns
 - stringified version of S 
 
 
 
◆ assert_size
      
        
          | #define assert_size | 
          ( | 
            | 
          TYPE,  | 
        
        
           | 
           | 
            | 
          SIZE  | 
        
        
           | 
          ) | 
           |    static_assert(sizeof(TYPE) == (SIZE), "Wrong size for " STRINGIFY(TYPE)) | 
        
      
 
Statically ensure (at compile time) that a data type (or variable) has the expected size. 
- Parameters
 - 
  
    | TYPE | The type to be checked  | 
    | SIZE | Expected size in bytes  | 
  
   
 
 
◆ assert
Value:    do { \
        if (__builtin_expect(!(EXP), 0)) { \
            assertion_failed(
STRINGIFY(EXP), __func__, __FILE__, __LINE__); \
 
        } \
    } while (false)
 
Ensure (at execution time) an expression evaluates to true, print an error message and stop the CPU otherwise. 
- Parameters
 - 
  
    | EXP | The expression to be checked  | 
  
   
 
 
◆ kernelpanic
      
        
          | #define kernelpanic | 
          ( | 
            | 
          MSG | ) | 
           | 
        
      
 
Value:    do { \
            DBG << "PANIC: '" << (MSG) << "' in " << __func__ \
                << " @ " << __FILE__ << ":" << __LINE__ << ") - CPU stopped." \
    } while (0)
 
Print an error message in the debug window and stop the current core. 
- Parameters
 - 
  
  
 
 
 
 
void die()
Permanently halts the core.
Definition: core.h:107
 
#define STRINGIFY(S)
Converts a macro parameter into a string.
Definition: assert.h:18
 
OutputStream & endl(OutputStream &os)
Prints a newline character to the stream and issues a buffer flush.
Definition: outputstream.cc:151