/* * Copyright (c) 2007 Vreixo Formoso * * This file is part of the libisofs project; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. See COPYING file for details. */ #ifndef LIBISO_ERROR_H_ #define LIBISO_ERROR_H_ /* * Error codes and return values for libisofs. * TODO #00003 make this header public */ /* * error codes are 32 bit numbers, that follow the following conventions: * * bit 31 (MSB) -> 1 (to make the value always negative) * bits 30-24 -> Encoded severity (Use ISO_ERR_SEV to translate an error code * to a LIBISO_MSGS_SEV_* constant) * = 0x10 -> DEBUG * = 0x20 -> UPDATE * = 0x30 -> NOTE * = 0x40 -> HINT * = 0x50 -> WARNING * = 0x60 -> SORRY * = 0x6A -> ERROR * = 0x70 -> FATAL * = 0x71 -> ABORT * bits 23-20 -> Encoded priority (Use ISO_ERR_PRIO to translate an error code * to a LIBISO_MSGS_PRIO_* constant) * = 0x0 -> ZERO * = 0x1 -> LOW * = 0x2 -> MEDIUM * = 0x3 -> HIGH * = 0x7 -> TOP * bits 19-16 -> Reserved for future usage (maybe message ranges) * bits 15-0 -> Error code */ #define ISO_ERR_SEV(e) (e & 0x7F000000) #define ISO_ERR_PRIO(e) ((e & 0x00F00000) << 8) #define ISO_ERR_CODE(e) (e & 0x0000FFFF) /** successfully execution */ #define ISO_SUCCESS 1 /** * special return value, it could be or not an error depending on the * context. */ #define ISO_NONE 0 /** Operation canceled (ERROR,TOP, -1) */ #define ISO_CANCELED 0xEA70FFFF /** Unknown or unexpected fatal error (FATAL,HIGH, -2) */ #define ISO_FATAL_ERROR 0xF030FFFE /** Unknown or unexpected error (ERROR,HIGH, -3) */ #define ISO_ERROR 0xEA30FFFD /** Internal programming error. Please report this bug (FATAL,HIGH, -4) */ #define ISO_ASSERT_FAILURE 0xF030FFFC /** * NULL pointer as value for an arg. that doesn't allow NULL (ERROR,HIGH, -5) */ #define ISO_NULL_POINTER 0xEA30FFFB /** Memory allocation error (FATAL,HIGH, -6) */ #define ISO_OUT_OF_MEM 0xF030FFFA /** Interrupted by a signal (FATAL,HIGH, -7) */ #define ISO_INTERRUPTED 0xF030FFF9 /** Invalid parameter value (ERROR,HIGH, -8) */ #define ISO_WRONG_ARG_VALUE 0xF030FFF8 /** Can't create a needed thread (FATAL,HIGH, -9) */ #define ISO_THREAD_ERROR 0xF030FFF7 /** Trying to add to a dir a node already added to a dir (ERROR,HIGH, -64) */ #define ISO_NODE_ALREADY_ADDED 0xEA30FFC0 /** Node with same name already exists (ERROR,HIGH, -65) */ #define ISO_NODE_NAME_NOT_UNIQUE 0xEA30FFBF /** Trying to remove a node that was not added to dir (ERROR,HIGH, -65) */ #define ISO_NODE_NOT_ADDED_TO_DIR 0xEA30FFBE /** A requested node does not exists (ERROR,HIGH, -66) */ #define ISO_NODE_DOESNT_EXIST 0xEA30FFBD /** Try to set the boot image of an already bootable image (ERROR,HIGH, -67) */ #define ISO_IMAGE_ALREADY_BOOTABLE 0xEA30FFBC /** Trying to use an invalid file as boot image (ERROR,HIGH, -68) */ #define ISO_BOOT_IMAGE_NOT_VALID 0xEA30FFBB /** * Error on file operation (ERROR,HIGH, -128) * (take a look at more specified error codes below) */ #define ISO_FILE_ERROR 0xEA30FF80 /** Trying to open an already openned file (ERROR,HIGH, -129) */ #define ISO_FILE_ALREADY_OPENNED 0xEA30FF7F /** Access to file is not allowed (ERROR,HIGH, -130) */ #define ISO_FILE_ACCESS_DENIED 0xEA30FF7E /** Incorrect path to file (ERROR,HIGH, -131) */ #define ISO_FILE_BAD_PATH 0xEA30FF7D /** The file does not exists in the filesystem (ERROR,HIGH, -132) */ #define ISO_FILE_DOESNT_EXIST 0xEA30FF7C /** Trying to read or close a file not openned (ERROR,HIGH, -133) */ #define ISO_FILE_NOT_OPENNED 0xEA30FF7B /** Directory used where no dir is expected (ERROR,HIGH, -134) */ #define ISO_FILE_IS_DIR 0xEA30FF7A /** Read error (ERROR,HIGH, -135) */ #define ISO_FILE_READ_ERROR 0xEA30FF79 /** Not dir used where a dir is expected (ERROR,HIGH, -136) */ #define ISO_FILE_IS_NOT_DIR 0xEA30FF78 /** Not symlink used where a symlink is expected (ERROR,HIGH, -137) */ #define ISO_FILE_IS_NOT_SYMLINK 0xEA30FF77 /** Can't seek to specified location (ERROR,HIGH, -138) */ #define ISO_FILE_SEEK_ERROR 0xEA30FF76 /* will be a NOTE message */ /* #define ISO_FILE_TOO_BIG -139 */ /** Charset conversion error (ERROR,HIGH, -256) */ #define ISO_CHARSET_CONV_ERROR 0xEA30FF00 /** * Too much files to mangle, i.e. we cannot guarantee unique file names * (ERROR,HIGH, -257) */ #define ISO_MANGLE_TOO_MUCH_FILES 0xEA30FEFF /* image related errors */ /** * Wrong or damaged Primary Volume Descriptor (ERROR,HIGH, -320) * This could mean that the file is not a valid ISO image. */ #define ISO_WRONG_PVD 0xEA30FEC0 /** Wrong or damaged RR entry (SORRY,HIGH, -321) */ #define ISO_WRONG_RR 0xE030FEBF /** Unsupported RR feature (SORRY,HIGH, -322) */ #define ISO_UNSUPPORTED_RR 0xE030FEBE /** Wrong or damaged ECMA-119 (ERROR,HIGH, -323) */ #define ISO_WRONG_ECMA119 0xEA30FEBD /** Unsupported ECMA-119 feature (ERROR,HIGH, -324) */ #define ISO_UNSUPPORTED_ECMA119 0xEA30FEBC /** Wrong or damaged El-Torito catalog (SORRY,HIGH, -325) */ #define ISO_WRONG_EL_TORITO 0xEA30FEBB /** Unsupported El-Torito feature (SORRY,HIGH, -326) */ #define ISO_UNSUPPORTED_EL_TORITO 0xEA30FEBA #endif /*LIBISO_ERROR_H_*/