summaryrefslogtreecommitdiff
path: root/libchill/ioerror.h
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-09-05 01:11:54 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-09-05 01:11:54 +0000
commitffcbbbab99149ea7d8e800326458b70b54438076 (patch)
treee2a997b294961a00f5d259edefbef93b8501c089 /libchill/ioerror.h
parentff8e09bdcb33f98c7094eec337fb5e93da360a0d (diff)
downloadgcc-ffcbbbab99149ea7d8e800326458b70b54438076.tar.gz
* Chill runtime moved into toplevel libchill.
* Makefile.in Revamped due to move. Add multilib support. * configure.in: Similarly. Use autoconf. * powerset.h: Do not depend on BITS_PER_UNIT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22238 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libchill/ioerror.h')
-rw-r--r--libchill/ioerror.h161
1 files changed, 161 insertions, 0 deletions
diff --git a/libchill/ioerror.h b/libchill/ioerror.h
new file mode 100644
index 00000000000..e2ddfe57c1e
--- /dev/null
+++ b/libchill/ioerror.h
@@ -0,0 +1,161 @@
+/* Implement Input/Output runtime actions for CHILL.
+ Copyright (C) 1992,1993 Free Software Foundation, Inc.
+ Author: Wilfried Moser, et al
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING. If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#ifndef _ioerror_h_
+#define _ioerror_h_
+
+#include <setjmp.h>
+
+/* Note: numbers must be in the same order as
+ strings in ioerror.c */
+typedef enum
+{ NOTASSOCIATED = 1,
+ ASSOCIATEFAIL,
+ CREATEFAIL,
+ DELETEFAIL,
+ MODIFYFAIL,
+ CONNECTFAIL,
+ NOTCONNECTED,
+ EMPTY,
+ RANGEFAIL,
+ SPACEFAIL,
+ READFAIL,
+ WRITEFAIL,
+ TEXTFAIL
+} io_exceptions_t;
+
+#ifndef FIRST_IO_ERROR_NUMBER
+#define FIRST_IO_ERROR_NUMBER 0
+#endif
+
+typedef enum {
+ FIRST_AND_UNUSED = FIRST_IO_ERROR_NUMBER,
+ INTERNAL_ERROR,
+ INVALID_IO_LIST,
+ REPFAC_OVERFLOW,
+ CLAUSE_WIDTH_OVERFLOW,
+ UNMATCHED_CLOSING_PAREN,
+ UNMATCHED_OPENING_PAREN,
+ BAD_FORMAT_SPEC_CHAR,
+ NO_PAD_CHAR,
+ IO_CONTROL_NOT_VALID,
+ DUPLICATE_QUALIFIER,
+ NO_FRACTION_WIDTH,
+ NO_EXPONENT_WIDTH,
+ FRACTION_WIDTH_OVERFLOW,
+ EXPONENT_WIDTH_OVERFLOW,
+ NO_FRACTION,
+ NO_EXPONENT,
+ NEGATIVE_FIELD_WIDTH,
+ TEXT_LOC_OVERFLOW,
+ IOLIST_EXHAUSTED,
+ CONVCODE_MODE_MISFIT,
+ SET_CONVERSION_ERROR,
+ BOOL_CONVERSION_ERROR,
+ NON_INT_FIELD_WIDTH,
+ EXCESS_IOLIST_ELEMENTS,
+ NOT_ENOUGH_CHARS,
+ NO_CHARS_FOR_INT,
+ NO_CHARS_FOR_FLOAT,
+ NO_EXPONENT_VAL,
+ INT_VAL_OVERFLOW,
+ REAL_OVERFLOW,
+ NO_DIGITS_FOR_INT,
+ NO_DIGITS_FOR_FLOAT,
+ NO_CHARS_FOR_SET,
+ NO_CHARS_FOR_CHAR,
+ NO_CHARS_FOR_BOOLS,
+ NO_CHARS_FOR_CHARS,
+ NO_CHARS_FOR_TEXT,
+ NO_CHARS_FOR_EDIT,
+ NO_SPACE_TO_SKIP,
+ FORMAT_TEXT_MISMATCH,
+ INTEGER_RANGE_ERROR,
+ SET_RANGE_ERROR,
+ CHAR_RANGE_ERROR,
+ INVALID_CHAR,
+/* end of formatting errors */
+ NULL_ASSOCIATION,
+ NULL_ACCESS,
+ NULL_TEXT,
+ IS_NOT_ASSOCIATED,
+ IS_ASSOCIATED,
+ GETCWD_FAILS,
+ INVALID_ASSOCIATION_MODE,
+ FILE_EXISTING,
+ CREATE_FAILS,
+ DELETE_FAILS,
+ RENAME_FAILS,
+ IMPL_RESTRICTION,
+ NOT_EXISTING,
+ NOT_READABLE,
+ NOT_WRITEABLE,
+ NOT_INDEXABLE,
+ NOT_SEQUENCIBLE,
+ NO_CURRENT_POS,
+ NOT_VARIABLE,
+ NOT_FIXED,
+ NOT_INDEXED,
+ LENGTH_CHANGE,
+ LSEEK_FAILS,
+ BUFFER_ALLOC,
+ OPEN_FAILS,
+ NO_ACCESS_SUBLOCATION,
+ BAD_INDEX,
+ IS_NOT_CONNECTED,
+ NO_PATH_NAME,
+ PATHNAME_ALLOC,
+ BAD_USAGE,
+ OUT_OF_FILE,
+ NULL_STORE_LOC,
+ STORE_LOC_ALLOC,
+ OS_IO_ERROR,
+ RECORD_TOO_LONG,
+ RECORD_TOO_SHORT,
+ BAD_TEXTINDEX,
+ NULL_TEXTREC
+} io_info_word_t;
+
+
+extern
+char* io_info_text [];
+
+extern
+char* exc_text [];
+
+extern
+jmp_buf __io_exception;
+
+extern
+jmp_buf __rw_exception;
+
+void __cause_exception (char *ex, char* f, int line, int info);
+extern char * __IO_exception_names[];
+
+#define IOEXCEPTION(EXC,INFO) \
+ longjmp( __io_exception, (EXC<<16) + INFO )
+
+#define RWEXCEPTION(EXC,INFO) \
+ longjmp( __rw_exception, (EXC<<16) + INFO )
+
+#define CHILLEXCEPTION(FILE,LINE,EXC,INFO) \
+ __cause_exception (__IO_exception_names[EXC], FILE, LINE, INFO);
+
+#endif