#ifndef ERRORS_H_ #define ERRORS_H_ #define E_OK 0 #define E_NOMEMORY -1 #define E_UNKNOWN_FSTYPE -2 #define E_NOENTRY -3 #define E_OUTOFBOUNDS -4 #define E_UNKNOWN_SDTYPE -5 #define E_TODO -6 #define E_BADIO -7 #define E_BADSYSCALL -8 #define E_DOSCHEDULING -9 #define E_INVALIDARGUMENT -10 #define E_INVALIDOPER -11 #define E_RESOURCEAVAIL -12 #define E_SPAWNERROR -13 #define E_NOTYET -14 #define E_MOUNTERR -15 #define E_DEVLOCKED -16 #define E_DEVNOTYOURLOCK -17 #if !defined(__ASSEMBLER__) __attribute__((unused)) static const char *_ERROR_STRINGS[] = { "OK", "Out of memory", "Unknown filesystem type", "No entry", "Out of bounds access", "Unknown storage device type", "TODO", "I/O error", "System call error", "Perform scheduling (internal flag)", "Invalid argument", "Invalid operation", "Resource already available", "Process spawn error", "Data isn't ready yet", "File system mount error", "This device is locked", "Device is hasn't been locked by this process", }; #define ERRSTRING_INDEX(ioh) ((size_t)((ioh) < 0 ? (ioh) * (-1) : (ioh))) #define ERRSTRING(ioh) (_ERROR_STRINGS[ERRSTRING_INDEX(ioh)]) #endif #endif // ERRORS_H_