From 397fc48664bc2fdc4e29ed11560a7629446f8a88 Mon Sep 17 00:00:00 2001 From: Vreixo Formoso Date: Wed, 13 Feb 2008 15:13:24 +0100 Subject: [PATCH] Add MISHAP message severity. --- libisofs/libiso_msgs.c | 8 +++- libisofs/libiso_msgs.h | 88 +++++++++++++++++++++++++++++++++++------- libisofs/libisofs.h | 53 ++++++++++++------------- libisofs/messages.c | 1 + 4 files changed, 109 insertions(+), 41 deletions(-) diff --git a/libisofs/libiso_msgs.c b/libisofs/libiso_msgs.c index da2d413..b777cf6 100644 --- a/libisofs/libiso_msgs.c +++ b/libisofs/libiso_msgs.c @@ -1,5 +1,5 @@ -/* libiso_msgs (generated from libdax_msgs : Xov Xan 24 11:24:13 CET 2008) +/* libiso_msgs (generated from libdax_msgs : Qua Fev 13 14:58:12 CET 2008) Message handling facility of libisofs. Copyright (C) 2006 - 2008 Thomas Schmitt , provided under GPL version 2 @@ -254,6 +254,8 @@ int libiso_msgs__text_to_sev(char *severity_name, int *severity, *severity= LIBISO_MSGS_SEV_FATAL; else if(strncmp(severity_name,"FAILURE",7)==0) *severity= LIBISO_MSGS_SEV_FAILURE; + else if(strncmp(severity_name,"MISHAP",6)==0) + *severity= LIBISO_MSGS_SEV_MISHAP; else if(strncmp(severity_name,"SORRY",5)==0) *severity= LIBISO_MSGS_SEV_SORRY; else if(strncmp(severity_name,"WARNING",7)==0) @@ -280,7 +282,7 @@ int libiso_msgs__sev_to_text(int severity, char **severity_name, int flag) { if(flag&1) { - *severity_name= "NEVER\nABORT\nFATAL\nFAILURE\nSORRY\nWARNING\nHINT\nNOTE\nUPDATE\nDEBUG\nALL"; + *severity_name= "NEVER\nABORT\nFATAL\nFAILURE\nMISHAP\nSORRY\nWARNING\nHINT\nNOTE\nUPDATE\nDEBUG\nALL"; return(1); } *severity_name= ""; @@ -292,6 +294,8 @@ int libiso_msgs__sev_to_text(int severity, char **severity_name, *severity_name= "FATAL"; else if(severity>=LIBISO_MSGS_SEV_FAILURE) *severity_name= "FAILURE"; + else if(severity>=LIBISO_MSGS_SEV_MISHAP) + *severity_name= "MISHAP"; else if(severity>=LIBISO_MSGS_SEV_SORRY) *severity_name= "SORRY"; else if(severity>=LIBISO_MSGS_SEV_WARNING) diff --git a/libisofs/libiso_msgs.h b/libisofs/libiso_msgs.h index 36bd2c4..74029fb 100644 --- a/libisofs/libiso_msgs.h +++ b/libisofs/libiso_msgs.h @@ -1,5 +1,5 @@ -/* libiso_msgs (generated from libdax_msgs : Xov Xan 24 11:24:13 CET 2008) +/* libiso_msgs (generated from libdax_msgs : Qua Fev 13 14:58:12 CET 2008) Message handling facility of libisofs. Copyright (C) 2006-2008 Thomas Schmitt , provided under GPL version 2 @@ -141,12 +141,19 @@ struct libiso_msgs_item; #define LIBISO_MSGS_SEV_WARNING 0x50000000 -/** Non-fatal error messages indicating that important parts of an action - failed but processing may go on if one accepts deviations from the - desired result. +/** Non-fatal error messages indicating that parts of an action failed but + processing may go on if one accepts deviations from the desired result. - E.g.: One of several libisofs input files cannot be found. + SORRY may also be the severity for incidents which are severe enough + for FAILURE but happen within already started irrevocable actions, + like ISO image generation. A precondition for such a severity ease is + that the action can be continued after the incident. + See below MISHAP for what xorriso would need instead of this kind of SORRY + an generates for itself in case of libisofs image generation. + + E.g.: A pattern yields no result. A speed setting cannot be made. + A libisofs input file is inaccessible during image generation. After SORRY a function should try to go on if that makes any sense and if no threshold prescribes abort on SORRY. The function should @@ -156,15 +163,31 @@ struct libiso_msgs_item; #define LIBISO_MSGS_SEV_SORRY 0x60000000 -/** Non-fatal error indicating that a complete action failed and that - only a thorough new setup of preconditions will give hope for success. +/** A FAILURE (see below) which can be tolerated during long lasting + operations just because they cannot simply be stopped or revoked. + + xorriso converts libisofs SORRY messages issued during image generation + into MISHAP messages in order to allow its evaluators to distinguish + image generation problems from minor image composition problems. + E.g.: + A libisofs input file is inaccessible during image generation. + + After a MISHAP a function should behave like after SORRY. +*/ +#define LIBISO_MSGS_SEV_MISHAP 0x64000000 + + +/** Non-fatal error indicating that an important part of an action failed and + that only a new setup of preconditions will give hope for sufficient + success. E.g.: No media is inserted in the output drive. No write mode can be found for inserted media. - All libisofs input files are inaccessible. + A libisofs input file is inaccessible during grafting. - After FAILURE a function should end very soon with a return value - indicating failure. + After FAILURE a function should end with a return value indicating failure. + It is at the discretion of the function whether it ends immediately in any + case or whether it tries to go on if the eventual threshold allows. */ #define LIBISO_MSGS_SEV_FAILURE 0x68000000 @@ -527,9 +550,9 @@ Range "vreixo" : 0x00030000 to 0x0003ffff 0x0003ff78 (FAILURE,HIGH) = Not dir used where a dir is expected 0x0003ff77 (FAILURE,HIGH) = Not symlink used where a symlink is expected 0x0003ff76 (FAILURE,HIGH) = Cannot seek to specified location - 0x0003ff75 (HINT,MEDIUM) = File not supported in ECMA-119 tree and ignored + 0x0003ff75 (HINT,MEDIUM) = File not supported in ECMA-119 tree and ignored 0x0003ff74 (HINT,MEDIUM) = File bigger than supported by used standard - 0x0003ff73 (SORRY,HIGH) = File read error during image creation + 0x0003ff73 (MISHAP,HIGH) = File read error during image creation 0x0003ff72 (HINT,MEDIUM) = Cannot convert filename to requested charset 0x0003ff71 (SORRY,HIGH) = File cannot be added to the tree 0x0003ff70 (HINT,MEDIUM) = File path breaks specification constraints @@ -549,9 +572,32 @@ Range "vreixo" : 0x00030000 to 0x0003ffff 0x0003feb5 (WARNING,HIGH) = Multiple ER SUSP entries found 0x0003feb4 (HINT,MEDIUM) = Unsupported volume descriptor found 0x0003feb3 (WARNING,HIGH) = El-Torito related warning - 0x0003feb2 (SORRY,HIGH) = Image write cancelled + 0x0003feb2 (MISHAP,HIGH) = Image write cancelled 0x0003feb1 (WARNING,HIGH) = El-Torito image is hidden +Outdated codes which may not be re-used for other purposes than +re-instating them, if ever: + +X 0x00031001 (SORRY,HIGH) = Cannot read file (ignored) +X 0x00031002 (FATAL,HIGH) = Cannot read file (operation canceled) +X 0x00031000 (FATAL,HIGH) = Unsupported ISO-9660 image +X 0x00031001 (HINT,MEDIUM) = Unsupported Vol Desc that will be ignored +X 0x00031002 (FATAL,HIGH) = Damaged ISO-9660 image +X 0x00031003 (SORRY,HIGH) = Cannot read previous image file +X 0x00030101 (HINT,MEDIUM) = Unsupported SUSP entry that will be ignored +X 0x00030102 (SORRY,HIGH) = Wrong/damaged SUSP entry +X 0x00030103 (WARNING,MEDIUM)= Multiple SUSP ER entries where found +X 0x00030111 (SORRY,HIGH) = Unsupported RR feature +X 0x00030112 (SORRY,HIGH) = Error in a Rock Ridge entry +X 0x00030201 (HINT,MEDIUM) = Unsupported Boot Vol Desc that will be ignored +X 0x00030202 (SORRY,HIGH) = Wrong El-Torito catalog +X 0x00030203 (HINT,MEDIUM) = Unsupported El-Torito feature +X 0x00030204 (SORRY,HIGH) = Invalid file to be an El-Torito image +X 0x00030205 (WARNING,MEDIUM)= Cannot properly patch isolinux image +X 0x00030206 (WARNING,MEDIUM)= Copying El-Torito from a previous image without +X enought info about it +X 0x00030301 (NOTE,MEDIUM) = Unsupported file type for Joliet tree + ------------------------------------------------------------------------------ Range "application" : 0x00040000 to 0x0004ffff @@ -566,6 +612,22 @@ Range "application" : 0x00040000 to 0x0004ffff 0x00040007 (DEBUG,HIGH) : Application supplied message +------------------------------------------------------------------------------ +Range "libisofs-xorriso" : 0x00050000 to 0x0005ffff + +This is an alternative representation of libisofs.so.6 error codes in xorriso. +If values returned by iso_error_get_code() do not fit into 0x30000 to 0x3ffff +then they get truncated to 16 bit and mapped into this range. +(This should never need to happen, of course.) + +------------------------------------------------------------------------------ +Range "libisoburn" : 0x00060000 to 0x00006ffff + + 0x00060000 (*,*) : Message which shall be attributed to libisoburn + + >>> the messages of libisoburn need to be registered individually + + ------------------------------------------------------------------------------ #endif /* LIDBAX_MSGS_________________ */ diff --git a/libisofs/libisofs.h b/libisofs/libisofs.h index d39e7ce..c10a2ab 100644 --- a/libisofs/libisofs.h +++ b/libisofs/libisofs.h @@ -381,7 +381,7 @@ struct iso_filesystem * ISO_FILE_ACCESS_DENIED * ISO_FILE_BAD_PATH * ISO_FILE_DOESNT_EXIST - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_FILE_ERROR * ISO_NULL_POINTER */ @@ -472,7 +472,7 @@ struct IsoFileSource_Iface * ISO_FILE_ACCESS_DENIED * ISO_FILE_BAD_PATH * ISO_FILE_DOESNT_EXIST - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_FILE_ERROR * ISO_NULL_POINTER */ @@ -488,7 +488,7 @@ struct IsoFileSource_Iface * ISO_FILE_ACCESS_DENIED * ISO_FILE_BAD_PATH * ISO_FILE_DOESNT_EXIST - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_FILE_ERROR * ISO_NULL_POINTER */ @@ -508,7 +508,7 @@ struct IsoFileSource_Iface * ISO_FILE_ACCESS_DENIED * ISO_FILE_BAD_PATH * ISO_FILE_DOESNT_EXIST - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_FILE_ERROR * ISO_NULL_POINTER */ @@ -522,7 +522,7 @@ struct IsoFileSource_Iface * ISO_FILE_ACCESS_DENIED * ISO_FILE_BAD_PATH * ISO_FILE_DOESNT_EXIST - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_FILE_ERROR * ISO_NULL_POINTER */ @@ -554,7 +554,7 @@ struct IsoFileSource_Iface * ISO_FILE_NOT_OPENNED * ISO_WRONG_ARG_VALUE -> if count == 0 * ISO_FILE_IS_DIR - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_INTERRUPTED */ int (*read)(IsoFileSource *src, void *buf, size_t count); @@ -579,7 +579,7 @@ struct IsoFileSource_Iface * ISO_NULL_POINTER * ISO_FILE_NOT_OPENNED * ISO_FILE_IS_NOT_DIR - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM */ int (*readdir)(IsoFileSource *src, IsoFileSource **child); @@ -600,7 +600,7 @@ struct IsoFileSource_Iface * ISO_NULL_POINTER * ISO_WRONG_ARG_VALUE -> if bufsiz <= 0 * ISO_FILE_IS_NOT_SYMLINK - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_FILE_BAD_PATH * ISO_FILE_DOESNT_EXIST * @@ -2117,7 +2117,7 @@ off_t iso_file_get_size(IsoFile *file); * Possible errors: * ISO_NULL_POINTER, if parent or name are NULL * ISO_NODE_NAME_NOT_UNIQUE, a node with same name already exists - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * * @since 0.6.2 */ @@ -2150,7 +2150,7 @@ int iso_tree_add_new_dir(IsoDir *parent, const char *name, IsoDir **dir); * Possible errors: * ISO_NULL_POINTER, if parent, name or dest are NULL * ISO_NODE_NAME_NOT_UNIQUE, a node with same name already exists - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * * @since 0.6.2 */ @@ -2193,7 +2193,7 @@ int iso_tree_add_new_symlink(IsoDir *parent, const char *name, * ISO_NULL_POINTER, if parent, name or dest are NULL * ISO_NODE_NAME_NOT_UNIQUE, a node with same name already exists * ISO_WRONG_ARG_VALUE if you select a incorrect mode - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * * @since 0.6.2 */ @@ -2378,7 +2378,7 @@ void iso_tree_set_report_callback(IsoImage *image, * Possible errors: * ISO_NULL_POINTER, if image, parent or path are NULL * ISO_NODE_NAME_NOT_UNIQUE, a node with same name already exists - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * * @since 0.6.2 */ @@ -2550,6 +2550,7 @@ const char *iso_error_to_msg(int errcode); * 0x40000000 -> HINT * 0x50000000 -> WARNING * 0x60000000 -> SORRY + * 0x64000000 -> MISHAP * 0x68000000 -> FAILURE * 0x70000000 -> FATAL * 0x71000000 -> ABORT @@ -2580,9 +2581,9 @@ int iso_error_get_code(int e); * be aborted as soon as possible. * * @param severity - * one of "FAILURE", "SORRY", "WARNING", "HINT", "NOTE". Severities - * greater than SORRY always cause program to abort. Severities under - * NOTE won't never cause function abort. + * one of "FAILURE", "MISHAP", "SORRY", "WARNING", "HINT", "NOTE". + * Severities greater or equal than FAILURE always cause program to abort. + * Severities under NOTE won't never cause function abort. * @return * Previous abort priority on success, < 0 on error. * @@ -2651,7 +2652,7 @@ char* iso_file_source_get_name(IsoFileSource *src); * ISO_FILE_ACCESS_DENIED * ISO_FILE_BAD_PATH * ISO_FILE_DOESNT_EXIST - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_FILE_ERROR * ISO_NULL_POINTER * @@ -2673,7 +2674,7 @@ int iso_file_source_lstat(IsoFileSource *src, struct stat *info); * ISO_FILE_ACCESS_DENIED * ISO_FILE_BAD_PATH * ISO_FILE_DOESNT_EXIST - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_FILE_ERROR * ISO_NULL_POINTER * @@ -2691,7 +2692,7 @@ int iso_file_source_access(IsoFileSource *src); * ISO_FILE_ACCESS_DENIED * ISO_FILE_BAD_PATH * ISO_FILE_DOESNT_EXIST - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_FILE_ERROR * ISO_NULL_POINTER * @@ -2707,7 +2708,7 @@ int iso_file_source_stat(IsoFileSource *src, struct stat *info); * ISO_FILE_ACCESS_DENIED * ISO_FILE_BAD_PATH * ISO_FILE_DOESNT_EXIST - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_FILE_ERROR * ISO_NULL_POINTER * @@ -2750,7 +2751,7 @@ int iso_file_source_close(IsoFileSource *src); * ISO_FILE_NOT_OPENNED * ISO_WRONG_ARG_VALUE -> if count == 0 * ISO_FILE_IS_DIR - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_INTERRUPTED * * @since 0.6.2 @@ -2777,7 +2778,7 @@ int iso_file_source_read(IsoFileSource *src, void *buf, size_t count); * ISO_NULL_POINTER * ISO_FILE_NOT_OPENNED * ISO_FILE_IS_NOT_DIR - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * * @since 0.6.2 */ @@ -2802,7 +2803,7 @@ int iso_file_source_readdir(IsoFileSource *src, IsoFileSource **child); * ISO_NULL_POINTER * ISO_WRONG_ARG_VALUE -> if bufsiz <= 0 * ISO_FILE_IS_NOT_SYMLINK - * ISO_MEM_ERROR + * ISO_OUT_OF_MEM * ISO_FILE_BAD_PATH * ISO_FILE_DOESNT_EXIST * @@ -3039,8 +3040,8 @@ const char *iso_image_fs_get_biblio_file_id(IsoImageFilesystem *fs); /* A file is bigger than supported by used standard (HINT,MEDIUM, -140) */ #define ISO_FILE_TOO_BIG 0xC020FF74 -/* File read error during image creation (SORRY,HIGH, -141) */ -#define ISO_FILE_CANT_WRITE 0xE030FF73 +/* File read error during image creation (MISHAP,HIGH, -141) */ +#define ISO_FILE_CANT_WRITE 0xE430FF73 /* Can't convert filename to requested charset (HINT,MEDIUM, -142) */ #define ISO_FILENAME_WRONG_CHARSET 0xC020FF72 @@ -3110,8 +3111,8 @@ const char *iso_image_fs_get_biblio_file_id(IsoImageFilesystem *fs); /** El-Torito related warning (WARNING,HIGH, -333) */ #define ISO_EL_TORITO_WARN 0xD030FEB3 -/** Image write cancelled (SORRY,HIGH, -334) */ -#define ISO_IMAGE_WRITE_CANCELED 0xE030FEB2 +/** Image write cancelled (MISHAP,HIGH, -334) */ +#define ISO_IMAGE_WRITE_CANCELED 0xE430FEB2 /** El-Torito image is hidden (WARNING,HIGH, -335) */ #define ISO_EL_TORITO_HIDDEN 0xD030FEB1 diff --git a/libisofs/messages.c b/libisofs/messages.c index b5d6d20..30e3fc1 100644 --- a/libisofs/messages.c +++ b/libisofs/messages.c @@ -26,6 +26,7 @@ * = 0x40 -> HINT * = 0x50 -> WARNING * = 0x60 -> SORRY + * = 0x64 -> MISHAP * = 0x68 -> FAILURE * = 0x70 -> FATAL * = 0x71 -> ABORT