00001 #ifndef _exit_h_defined_
00002 #define _exit_h_defined_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 ARCH_COPYRIGHT_APACHE(exit, h, "$URL: https://svn.apache.org/path/name/exit.h $ $Id: exit.h 0 09/28/2005 dlydick $");
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075 #ifdef I_AM_EXIT_C
00076 #define EXIT_MAIN_OKAY_DESC "no error"
00077 #define EXIT_LONGJMP_ARGERROR_DESC "longjmp(3) argument error"
00078
00079 #define EXIT_ARGV_HELP_DESC "help request"
00080 #define EXIT_ARGV_VERSION_DESC "version request"
00081 #define EXIT_ARGV_COPYRIGHT_DESC "copyright request"
00082 #define EXIT_ARGV_LICENSE_DESC "license request"
00083 #define EXIT_ARGV_ENVIRONMENT_DESC "environment request"
00084
00085 #define EXIT_JVM_THREAD_DESC "thread start error"
00086 #define EXIT_JVM_CLASS_DESC "class load error"
00087 #define EXIT_JVM_OBJECT_DESC "object load error"
00088 #define EXIT_JVM_METHOD_DESC "method invocation error"
00089 #define EXIT_JVM_FIELD_DESC "field access error"
00090 #define EXIT_JVM_ATTRIBUTE_DESC "attribute access error"
00091 #define EXIT_JVM_THROWABLE_DESC "throwable event abort"
00092 #define EXIT_JVM_SIGNAL_DESC "OS signal abort trapped"
00093 #define EXIT_JVM_BYTECODE_DESC "JVM byte code execution error"
00094 #define EXIT_JVM_GC_DESC "Garbage collection error"
00095 #define EXIT_JVM_INTERNAL_DESC "Internal JVM logic error"
00096
00097 #define EXIT_HEAP_ALLOC_DESC "Heap allocation error"
00098 #define EXIT_GC_ALLOC_DESC "Garbage collection heap error"
00099 #define EXIT_THREAD_STACK_DESC "Stack overflow suppressed"
00100 #define EXIT_TIMESLICE_START_DESC "cannot start timer"
00101 #define EXIT_TMPAREA_MKDIR_DESC "cannot make temp directory"
00102 #define EXIT_TMPAREA_RMDIR_DESC "cannot remove temp directory"
00103 #define EXIT_CLASSPATH_JAR_DESC "cannot run jar command"
00104 #define EXIT_MANIFEST_JAR_DESC "cannot process jar manifest file"
00105 #endif
00106
00107 typedef enum
00108 {
00109 EXIT_MAIN_OKAY = 0,
00110
00111
00112
00113 EXIT_LONGJMP_ARGERROR = 1,
00114
00115
00116 EXIT_ARGV_HELP = 10,
00117 EXIT_ARGV_VERSION = 11,
00118 EXIT_ARGV_COPYRIGHT = 12,
00119 EXIT_ARGV_LICENSE = 13,
00120 EXIT_ARGV_ENVIRONMENT = 14,
00121
00122
00123 EXIT_JVM_THREAD = 20,
00124 EXIT_JVM_CLASS = 21,
00125 EXIT_JVM_OBJECT = 22,
00126 EXIT_JVM_METHOD = 23,
00127 EXIT_JVM_FIELD = 24,
00128 EXIT_JVM_ATTRIBUTE = 25,
00129 EXIT_JVM_THROWABLE = 26,
00130 EXIT_JVM_SIGNAL = 27,
00131 EXIT_JVM_BYTECODE = 28,
00132 EXIT_JVM_GC = 29,
00133 EXIT_JVM_INTERNAL = 30,
00134
00135
00136 EXIT_HEAP_ALLOC = 31,
00137 EXIT_GC_ALLOC = 32,
00138 EXIT_THREAD_STACK = 33,
00139 EXIT_TIMESLICE_START = 34,
00140 EXIT_TMPAREA_MKDIR = 35,
00141 EXIT_TMPAREA_RMDIR = 36,
00142 EXIT_CLASSPATH_JAR = 37,
00143 EXIT_MANIFEST_JAR = 38
00144
00145 } exit_code_enum;
00146
00147
00148
00149
00150
00151 extern int exit_init(rvoid);
00152
00153 extern rchar *exit_get_name(exit_code_enum code);
00154
00155 extern rchar *exit_LinkageError_subclass;
00156 extern jvm_thread_index exit_LinkageError_thridx;
00157 extern int exit_exception_setup(rvoid);
00158
00159 extern rvoid exit_throw_exception(exit_code_enum rc, rchar *preason);
00160
00161 extern int exit_end_thread_setup(rvoid);
00162 extern rvoid exit_end_thread_test(jvm_thread_index thridx);
00163
00164 extern rvoid exit_jvm(exit_code_enum rc);
00165
00166 #endif
00167
00168
00169
00170