35 lines
		
	
	
		
			776 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			776 B
		
	
	
	
		
			C++
		
	
	
	
| #include "util/debug.h"
 | |
| 
 | |
| #include <glacier/status/error.h>
 | |
| #include <zcall.h>
 | |
| 
 | |
| void dbgln(const glcr::String& string) { (void)ZDebug(string.cstr()); }
 | |
| 
 | |
| void check(uint64_t code) {
 | |
|   switch (code) {
 | |
|     case glcr::OK:
 | |
|       return;
 | |
|     case glcr::UNIMPLEMENTED:
 | |
|       dbgln("crash: UNIMPLEMENTED");
 | |
|       break;
 | |
|     case glcr::CAP_NOT_FOUND:
 | |
|       dbgln("crash: missing capability");
 | |
|       break;
 | |
|     case glcr::CAP_WRONG_TYPE:
 | |
|       dbgln("crash: capability of the wrong type");
 | |
|       break;
 | |
|     case glcr::CAP_PERMISSION_DENIED:
 | |
|       dbgln("crash: capability permissions error");
 | |
|       break;
 | |
|     default:
 | |
|       dbgln("Unhandled code");
 | |
|       break;
 | |
|   }
 | |
|   (void)ZProcessExit(code);
 | |
| }
 | |
| 
 | |
| void crash(const char* str, uint64_t code) {
 | |
|   dbgln(str);
 | |
|   (void)ZProcessExit(code);
 | |
| }
 |