#include #include enum bshell_status bshell_status_from_errno(int err) { switch (err) { case 0: return BSHELL_SUCCESS; case EIO: return BSHELL_ERR_IO_FAILURE; case ENOENT: return BSHELL_ERR_NO_ENTRY; case EPERM: case EACCES: return BSHELL_ERR_ACCESS_DENIED; default: return BSHELL_ERR_INTERNAL_FAILURE; } } const char *bshell_status_get_description(int err) { switch (err) { case BSHELL_SUCCESS: return "Success"; case BSHELL_ERR_EOF: return "Unexpected end-of-file"; case BSHELL_ERR_BAD_SYNTAX: return "Bad syntax"; case BSHELL_ERR_BAD_FORMAT: return "Bad data format"; case BSHELL_ERR_BAD_STATE: return "Object is in bad state"; case BSHELL_ERR_INVALID_VALUE: return "Invalid value"; case BSHELL_ERR_INVALID_ARGUMENT: return "Invalid argument"; case BSHELL_ERR_NO_MEMORY: return "Out of memory"; case BSHELL_ERR_NO_ENTRY: return "No such file or directory"; case BSHELL_ERR_NO_DATA: return "No data available"; case BSHELL_ERR_NAME_EXISTS: return "File or object already exists"; case BSHELL_ERR_NOT_SUPPORTED: return "Operation not supported"; case BSHELL_ERR_IO_FAILURE: return "I/O failure"; case BSHELL_ERR_ACCESS_DENIED: return "Access denied"; case BSHELL_ERR_INTERNAL_FAILURE: return "Internal failure"; default: return "Unknown error"; } }