From 26adc8a4c7687a890a12fd44dc42428b2601521a Mon Sep 17 00:00:00 2001 From: mmitchel Date: Tue, 16 Apr 2002 22:01:55 +0000 Subject: [PATCH] Remove libchill git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52379 138bc75d-0d04-0410-961f-82ee72b054a4 --- libchill/ChangeLog | 865 ------------------ libchill/Makefile.in | 246 ----- libchill/abstime.c | 139 --- libchill/allgmem.c | 68 -- libchill/allmem.c | 80 -- libchill/allocate.c | 74 -- libchill/andps.c | 83 -- libchill/auxtypes.h | 53 -- libchill/basicio.c | 483 ---------- libchill/bitstring.h | 37 - libchill/cardps.c | 106 --- libchill/cause.c | 54 -- libchill/checkcycle.c | 73 -- libchill/chillrt0.c | 155 ---- libchill/chillstdio.c | 218 ----- libchill/concatps.c | 101 --- libchill/concatstr.c | 80 -- libchill/configure.in | 162 ---- libchill/continue.c | 91 -- libchill/convdurrtstime.c | 60 -- libchill/copyps.c | 118 --- libchill/delaycase.c | 229 ----- libchill/delete.c | 50 -- libchill/diffps.c | 81 -- libchill/eoln.c | 38 - libchill/eqps.c | 74 -- libchill/eqstr.c | 64 -- libchill/exh.c | 162 ---- libchill/exhstack.c | 47 - libchill/existing.c | 39 - libchill/ffsetclrps.c | 92 -- libchill/ffsetps.c | 116 --- libchill/fileio.h | 161 ---- libchill/flsetclrps.c | 89 -- libchill/flsetps.c | 114 --- libchill/format.c | 2194 --------------------------------------------- libchill/format.h | 79 -- libchill/getassoc.c | 45 - libchill/gettextaccess.c | 39 - libchill/gettextindex.c | 38 - libchill/gettextrecord.c | 38 - libchill/getusage.c | 48 - libchill/inbitstr.c | 81 -- libchill/indexable.c | 39 - libchill/inps.c | 72 -- libchill/inttime.c | 93 -- libchill/ioerror.c | 53 -- libchill/ioerror.h | 169 ---- libchill/iomodes.h | 259 ------ libchill/isassociated.c | 37 - libchill/leps.c | 83 -- libchill/ltps.c | 93 -- libchill/ltstr.c | 65 -- libchill/memmove.c | 75 -- libchill/neps.c | 59 -- libchill/notps.c | 88 -- libchill/orps.c | 82 -- libchill/outoffile.c | 48 - libchill/powerset.h | 106 --- libchill/printbuffer.c | 125 --- libchill/printevent.c | 102 --- libchill/queuelength.c | 87 -- libchill/readable.c | 40 - libchill/readrecord.c | 217 ----- libchill/remaintime.c | 91 -- libchill/retmem.c | 59 -- libchill/rtltypes.h | 89 -- libchill/rts.c | 663 -------------- libchill/rts.h | 159 ---- libchill/rtsdummy.c | 72 -- libchill/sendbuffer.c | 184 ---- libchill/sequencible.c | 40 - libchill/setbitps.c | 96 -- libchill/setbits.c | 92 -- libchill/settextaccess.c | 47 - libchill/settextindex.c | 46 - libchill/settextrecord.c | 45 - libchill/sliceps.c | 72 -- libchill/terminate.c | 67 -- libchill/unhex.c | 64 -- libchill/unhex1.c | 65 -- libchill/variable.c | 39 - libchill/waitbuffer.c | 306 ------- libchill/waituntil.c | 82 -- libchill/writeable.c | 39 - libchill/writerecord.c | 141 --- libchill/xorps.c | 83 -- 87 files changed, 11897 deletions(-) delete mode 100644 libchill/ChangeLog delete mode 100644 libchill/Makefile.in delete mode 100644 libchill/abstime.c delete mode 100644 libchill/allgmem.c delete mode 100644 libchill/allmem.c delete mode 100644 libchill/allocate.c delete mode 100644 libchill/andps.c delete mode 100644 libchill/auxtypes.h delete mode 100644 libchill/basicio.c delete mode 100644 libchill/bitstring.h delete mode 100644 libchill/cardps.c delete mode 100644 libchill/cause.c delete mode 100644 libchill/checkcycle.c delete mode 100644 libchill/chillrt0.c delete mode 100644 libchill/chillstdio.c delete mode 100644 libchill/concatps.c delete mode 100644 libchill/concatstr.c delete mode 100644 libchill/configure.in delete mode 100644 libchill/continue.c delete mode 100644 libchill/convdurrtstime.c delete mode 100644 libchill/copyps.c delete mode 100644 libchill/delaycase.c delete mode 100644 libchill/delete.c delete mode 100644 libchill/diffps.c delete mode 100644 libchill/eoln.c delete mode 100644 libchill/eqps.c delete mode 100644 libchill/eqstr.c delete mode 100644 libchill/exh.c delete mode 100644 libchill/exhstack.c delete mode 100644 libchill/existing.c delete mode 100644 libchill/ffsetclrps.c delete mode 100644 libchill/ffsetps.c delete mode 100644 libchill/fileio.h delete mode 100644 libchill/flsetclrps.c delete mode 100644 libchill/flsetps.c delete mode 100644 libchill/format.c delete mode 100644 libchill/format.h delete mode 100644 libchill/getassoc.c delete mode 100644 libchill/gettextaccess.c delete mode 100644 libchill/gettextindex.c delete mode 100644 libchill/gettextrecord.c delete mode 100644 libchill/getusage.c delete mode 100644 libchill/inbitstr.c delete mode 100644 libchill/indexable.c delete mode 100644 libchill/inps.c delete mode 100644 libchill/inttime.c delete mode 100644 libchill/ioerror.c delete mode 100644 libchill/ioerror.h delete mode 100644 libchill/iomodes.h delete mode 100644 libchill/isassociated.c delete mode 100644 libchill/leps.c delete mode 100644 libchill/ltps.c delete mode 100644 libchill/ltstr.c delete mode 100644 libchill/memmove.c delete mode 100644 libchill/neps.c delete mode 100644 libchill/notps.c delete mode 100644 libchill/orps.c delete mode 100644 libchill/outoffile.c delete mode 100644 libchill/powerset.h delete mode 100644 libchill/printbuffer.c delete mode 100644 libchill/printevent.c delete mode 100644 libchill/queuelength.c delete mode 100644 libchill/readable.c delete mode 100644 libchill/readrecord.c delete mode 100644 libchill/remaintime.c delete mode 100644 libchill/retmem.c delete mode 100644 libchill/rtltypes.h delete mode 100644 libchill/rts.c delete mode 100644 libchill/rts.h delete mode 100644 libchill/rtsdummy.c delete mode 100644 libchill/sendbuffer.c delete mode 100644 libchill/sequencible.c delete mode 100644 libchill/setbitps.c delete mode 100644 libchill/setbits.c delete mode 100644 libchill/settextaccess.c delete mode 100644 libchill/settextindex.c delete mode 100644 libchill/settextrecord.c delete mode 100644 libchill/sliceps.c delete mode 100644 libchill/terminate.c delete mode 100644 libchill/unhex.c delete mode 100644 libchill/unhex1.c delete mode 100644 libchill/variable.c delete mode 100644 libchill/waitbuffer.c delete mode 100644 libchill/waituntil.c delete mode 100644 libchill/writeable.c delete mode 100644 libchill/writerecord.c delete mode 100644 libchill/xorps.c diff --git a/libchill/ChangeLog b/libchill/ChangeLog deleted file mode 100644 index 6186902ae65..00000000000 --- a/libchill/ChangeLog +++ /dev/null @@ -1,865 +0,0 @@ -2002-01-11 Craig Rodrigues - - PR other/5299 - * delaycase.c (__delay_event): Fix spelling error. - * waitbuffer.c: Same. - -2000-05-31 Richard Henderson - - * Makefile.in (STROBJS): Get memmove.o from configure. - * configure.in (RANLIB): Detect and substitute. - (memmove): Detect and substitute. - * memmove.c (memmove): Use size_t. - -2000-05-29 Zack Weinberg - - * concatstr.c, exh.c: Include stdlib.h and string.h. - * delaycase.c, eqstr.c, memmove.c, printbuffer.c, - printevent.c, sendbuffer.c, waitbuffer.c: Include string.h. - -Mon Apr 3 01:20:50 2000 George France - - * basicio.c (PATH_MAX): Always provide a definition. - -Wed Oct 27 01:13:12 1999 Alan Modra - - * Makefile.in (config.status): Fix leading whitespace. - (clean): Remove libchill.a. - -Thu Sep 2 17:50:47 1999 Jeffrey A Law (law@cygnus.com) - - * powerset.h (SET_WORD, SET_SHORT, SET_CHAR): Do not redefine based - on USE_CHAR. - (USE_CHAR): No longer define. - * eqps.c ffsetclrps.c flsetclrps.c: Remove !USE_CHARS support. - -Mon Aug 30 16:42:45 1999 Hans-Peter Nilsson - - * Makefile.in (chillrt0.o): Depend on chillrt0.c explicitly. - -Fri Aug 6 23:32:29 1999 Daniel Jacobowitz - - * Makefile.in (FLAGS_TO_PASS): Include prefix, exec_prefix, - libdir, libsubdir and tooldir. - -Thu May 20 03:20:59 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (AC_EXEEXT): Remove call. - (compiler_name): Explicitly check with no extension and .exe - extension. - * configure: Regenerate. - -Wed Mar 24 22:41:28 1999 Mumit Khan - - * configure.in (AC_PREREQ): Update to 2.13. - (AC_EXEEXT): Call to find possible file extension. - (compiler_name): Use. - * configure: Regenerate. - -1999-01-19 08:10 -0500 Zack Weinberg - - * Makefile.in: Fix typos in previous change. - (rtsdummy.o): Don't depend on gvarargs.h. - -Mon Jan 18 04:47:34 1999 Jeffrey A Law (law@cygnus.com) - Hans-Peter Nilsson - - * Makefile.in: Add many missing dependencies. - -Sun Jan 3 21:04:53 1999 Rainer Orth - - * readrecord.c: Include for off_t. - -1998-11-26 Manfred Hollstein - - * configure.in (compiler_name): Add check to detect if this - language's compiler has been built. - * configure: Regenerate. - -Mon Nov 23 16:48:39 1998 Kaveh R. Ghazi - - * configure.in: Use AC_PREREQ(2.12.1). - -Fri Nov 20 18:48:34 1998 J"orn Rennecke - - * basicio.c (PATH_MAX): Define only to _POSIX_PATH_MAX if that is - defined. Otherwise, try MAXPATHLEN. - -Thu Oct 22 14:37:35 1998 Kaveh R. Ghazi - - * configure.in: Use AC_CONFIG_AUX_DIR($topsrcdir). - -1998-09-22 Ben Elliston - - * configure.in: This is GNU CHILL, not GNU Fortran. - -1998-09-20 Manfred Hollstein - - * Makefile.in: Add dummy targets "info", "install-info", "clean-info" - and "dvi". - -1998-09-13 David S. Miller - - * configure.in: Use 'if test' not brackets. - * configure: Rebuilt. - -Wed Sep 9 21:32:46 1998 Jeffrey A Law (law@cygnus.com) - - * Add library exception clause to the copyright notice for all - .c and .h files. - -Tue Sep 8 10:41:38 1998 Jeffrey A Law (law@cygnus.com) - - * rts.h: Update with missing code. - -Sun Sep 6 01:30:40 1998 Jeffrey A Law (law@cygnus.com) - - * allgmem.c: Do not include config.h anymore. - * allmem.c allocate.c andps.c cardps.c cause.c copyps.c: Likewise. - * diffps.c eqps.c exh.c exhstack.c ffsetclrps.c ffsetps.c: Likewise. - * flsetclrps.c flsetps.c inbitstr.c inps.c leps.c ltps.c: Likewise. - * neps.c notps.c orps.c retmem.c rtsdummy.c setbitps.c: Likewise. - * setbits.c sliceps.c terminate.c unhex.c unhex1.c xorps.c: Likewise. - -Sat Sep 5 02:09:42 1998 Jeffrey A Law (law@cygnus.com) - - * 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. - -Fri Apr 24 16:12:40 1998 Dave Brolley - - * writerecord.c (sys/types.h): #included to pick up off_t. - -Tue Nov 26 01:56:03 1996 Wilfried Moser - - * memmove.c (memmove): If nor overlapping use memcpy instead of - byte copy. - -Tue May 14 21:26:52 1996 Per Bothner - - * gestr.c, gtstr.c, lestr.c, nestr.c: Removed - no longer used. - * Makefile.in (STROBJS) Removed gestr.o, gtstr.o, lestr.o, nestr.o. - -Thu May 9 06:59:23 1996 Wilfried Moser - - * basicio.c (__connect): In case of Same, fix condition for - exception. - -Thu Feb 29 10:55:01 1996 Per Bothner - - * format.c: Use ANSI-standard float.h, rather than old values.h. - -Mon Jan 15 06:16:22 1996 Wilfried Moser - - * sendbuffer.c (__send_buffer): Take care of possibly unaligned - pointers. - - * waitbuffer.c (__wait_buffer): Ditto. - -Thu Nov 30 03:49:58 1995 Wilfried Moser - - * format.c (inpioctrl): Process NOTCONNECTED. - (outioctrl): Deto. - (scanformcont): Fix processing of %% in format string. - -Mon Nov 27 05:27:14 1995 Wilfried Moser - - * chillrt0.c (main): Pass argc & argv to __RTS_INIT__. - -Thu Nov 23 05:15:05 1995 Wilfried Moser - - * ioerror.h (io_info_word_t): Make value of first entry compile time - comfigurable. - -Tue Nov 7 22:52:24 1995 Wilfried Moser - - * format.c: Rename ultoa to myultoa cause of conflicting types - on some systems. - -Mon Nov 6 03:17:50 1995 Wilfried Moser - - * chillrt0.c: Move definition of chill_stdin, chill_stdout, - chill_stderr ... - - * chillstdio.c: ... to here. - - * delete.c, eoln.c, existing.c, getusage.c, indexable.c, - isassociated.c, outoffile.c, readable.c, sequencible.c, - variable.c, writeable.c: Modified for new implementation of - chill file i/o. - - * basicio.c, format.c, getassoc.c, gettextaccess.c, gettextindex.c, - gettextrecord.c, ioerror.c, readrecord.c, settextaccess.c, - settextindex.c, settextrecord.c, writerecord.c: New files to - implement chill file i/o. - - * allocate.c, terminate.c: New files to implement chill's - ALLOCATE and TERMINATE built-in's. - - * associate.c, checksum.c, connect.c, create.c, disconnect.c, - dissociate.c, findfile.c, findnextfile.c, fstable.c, getass.c, - getdir.c, gettxtacc.c, gettxtidx.c, gettxtrec.c, iostatus.c, - lowlevelio.c, modify.c, rdformat.c, rdrecord.c, rdstring.c, - rdtext.c, rdunixstd.c, readlen.c, regexp.h, setdir.c, settxtacc.c, - settxtidx.c, settxtrec.c, skiprec.c, wrformat.c, wrrecord.c, - wrstring.c, wrtext.c, wrunixstd.c: Removed. - -Tue Sep 12 04:27:47 1995 Wilfried Moser - - * Makefile.in (Makefile): Add rule for Makefile. - OBJS depends on ../../cc1 to build a new library when cc1 have - changed. - -Mon Jul 31 15:04:04 1995 Per Bothner - - * ffsetclrps.c, flsetclrps.c: Completely different interface, - * storeoutps.c: Remove, no longer needed. - * Makefile.in (PSOBJS): Take out storeoutps.o. - -Mon Jun 19 05:23:35 1995 Wilfried Moser - - * exh.c (__cause_exception): New argument. - (__cause_ex1): New function. This function will get called - now by the compiler when an exception should be raised. - - * abstime.c, allgmem.c, allmem.c, checkcycle.c, delaycase.c, - ffsetps.c, flsetps.c, inbitstr.c, sendbuffer.c, waitbuffer.c: - Change calls to __cause_exception to calls to __cause_ex1. - - * unhex.c (unhandled_exception), - cause.c (cause_exception): New argument. - - * rts.h: Add prototypes for __delay_this and __continue_that. - - * ffsetclrps.c, flsetclrps.c, inps.c, rtltypes.h, setbitps.c: - Remove prototype for __cause_exception (not needed). - - * rdstring.c (_readstring), wrstring.c (_writestring): Add argument - to call to __cause_exception. - - * Makefile.in, unhex1.c: New file. Function __unhandled_ex - is defined here. This gets called when the compiler doesn't - find a handler when causing an exception. - -Tue Apr 11 16:01:02 1995 Per Bothner - - * iomodes.h (__tmp_WIO_union, __tmp_RIO_union): Make __forbyte - be explicitly signed, for the sake of systems where char is unsigned. - -Wed Mar 22 06:10:18 1995 Wilfried Moser - - * setbitps.c (__setbitpowerset): Change definition of new_value - to char, cause booleans are represented as 8 bit values by the - compiler. Use only least significant bit of new_value. - -Tue Jan 17 07:32:17 1995 Wilfried Moser - - * inps.c (__inpowerset): Don't do rangecheck. Return 0 - if value not in range. - - * Makefile.in, inbitstr.c (__inbitstring): New file and - function for accessing single elements in a bitstring. - -Tue Dec 6 02:35:00 1994 Wilfried Moser - - * rdformat.c (rf_parse_iolist): In case of __IO_set and - __IO_SetRange process the ignore_case flag. - - * iomodes.h: Change definition of __tmp_RIO_forset and - __tmp_RIO_forsetrange. - -Fri Nov 4 12:04:16 1994 Per Bothner - - * concatstr.c (__concatstring): Add support for input strings - to overlap target. - * setbits.c (__setbits): Fix function name passed - to __cause_exception. - -Wed Nov 2 05:02:59 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * Makefile.in (TIMEOBJS): Add new files. - - * checkcycle.c (__check_cycle): New file and function for - CYCLE statement. - - * convdurrtstime.c (__convert_duration_rtstime): New file - and function for conversion of DURATION (unsigned long) to - RtsTime format. - - * delaycase.c (__delay_event): Implement processing of - timesupervision. - - * remaintime.c (__remaintime): New file and function to - calculate the remaining time of a duration (used for - timesupervision). - - * rts.h: New definitions and prototypes. - - * sendbuffer.c (__send_buffer): Implement processing of - timesupervision. - - * waitbuffer.c (__wait_buffer): Implement processing of - timesupervision. - - * waituntil.c (__wait_until): Changed due to implementation - of timesupervision. - -Thu Oct 6 06:41:02 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * wrformat.c (default_conv): Remove processing of - POWERSET's. - - * rdformat.c (rf_parse_iolist): Remove processing of - POWERSET's. - - * iomodes.h: Remove definition for POWERSET's. - -Fri Sep 30 01:52:25 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * rdformat.c (rf_parse_iolist): Fix processing of BITSTRINGs. - -Mon Sep 26 16:10:47 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * copyps.c (__pscpy): Add missing 'const'. - - * wrformat.c (default_conv): Replace memcpy by explicit loop, - since memcpy can get mis-optimized when we have unaligned data. - - * wrformat.c (__write_format): Don't alloca an extra copy of - the format string. - -Mon Sep 26 08:54:03 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * wrformat.c (default_conv): Remove formating of nonprintable - characters (ESC-sequences wouldn't work). - -Fri Sep 23 00:48:28 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * copyps.c (__pscpy): Fix masking out unused bits. - - * fileio.h: Fix prototype. - -Tue Sep 13 04:54:45 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * rdformat.c (__read_format): Remove end-of-input string - check. - -Thu Sep 8 17:20:07 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * setbits.c (__setbits): New function, based on __setpowersetbits, - but with 4 instead of 5 parameters. - * setpsbits.c: Removed. No longer used. - * Makefile (PSOBJS): Update accordingly. - -Mon Sep 5 08:03:46 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * queuelength.c (__queue_length): New file and function - to implement QUEUE_LENGTH built-in. - * Makefile.in (TASKOBJS): Add queuelength.o. - -Fri Aug 26 16:27:21 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * Makefile.in (INCLUDES): Add -I../../include. - -Wed Aug 24 01:12:32 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * sendbuffer.c, waitbuffer.c, delaycase.c, printbuffer.c, - printevent.c: Be careful with addresses of data from the - application,they may be unaligned (-fpack). - -Fri Aug 19 07:16:15 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * wrformat.c (default_conv), rdformat.c (rf_parse_iolist): Be - careful with addresses of data from the application, they may - be unaligned (-fpack). - -Fri Aug 12 20:31:47 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * eqps.c (__eqpowerset): Calculate number of full words - as floor, not ceiling of bitslength/SET_WORD_SIZE. - -Fri Aug 5 17:25:48 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * eqps.c (__eqpowerset): Revert Wilfried's fix, and fix - the problem in a slightly different way (which is simpler - and will also work for 0-length bitstrings). - * neps.c (__nepowerset): Simplify - just call __eqpowerset. - -Fri Jul 29 04:06:56 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * neps.c (__nepowerset): Correct processing of powerset - in case of USE_CHARS defined. - -Wed Jul 27 05:27:06 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * eqps.c (__eqpowerset): Correct processing of powerset - in case of USE_CHARS defined. - -Mon Jun 27 01:17:09 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * iomodes.h: Change layout of __tmp_WIO_list that it is always - the same, regardless if compiled with -fpack or not. - -Tue May 31 04:54:48 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * printbuffer.c, printevent.c, rts.h, sendbuffer.c, - waitbuffer.c: Finish the implementation of BUFFER's - and EVENT's. - -Tue May 10 05:17:43 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * iomodes.h: Change names of __access, __association and - __text to __access_type, __association_type and - __text_type. __access is already defined in one of the - linux header files. - -Wed May 4 15:37:22 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * Makefile.in (clean): Add chillrt0.o - * continue.c (__continue): Implement the function. - * delaycase.c (__delay_event): Implement the function. - * printbuffer.c (__print_buffer): Implement the function. - * printevent.c (__print_event.c): Implement the function. - * rts.h: Change datatypes used for EVENT's and BUFFER's. - * sendbuffer.c (__send_buffer): Implement the function. - FIXME: not completely done. - * waitbuffer.c (__wait_buffer): Implement the function. - FIXME: not completely done. - -Thu Apr 28 14:39:06 1994 Wilfried Moser (moser@rtl.cygnus.com) - - * Makefile.in (TASKOBJS): New variable for tasking related - objects files. - * Makefile.in (TIMEOBJS): New object file added. - * rts.h: Add definitions for BUFFER's and EVENT's. - * waituntil.c (__wait_until): New file and new function. - Implements the AT action. - * delaycase.c (__delay_event): New file and new function. - Implements the DELAY and DELAY CASE action. FIXME: not yet done. - * continue.c (__continue): New file and new function. - Implements the CONTINUE action. FIXME: not yet done. - * sendbuffer.c (__send_buffer): New file and new function. - Implements the SEND buffer action. FIXME: not yet done. - * waitbuffer.c (__wait_buffer): New file and new function. - Implements the RECEIVE buffer CASE action. FIXME: not yet done. - * printevent.c (__print_event): New file and new function. - Prints an event queue. FIXME: not yet done. - * printbuffer.c (__print_buffer): New file and new function. - Prints a buffer queue. FIXME: not yet done. - -Fri Apr 1 10:59:55 1994 Wilfried Moser (fs_moser at rcsw47) - - * wrformat.c (default_conv): Change output of characters in the - range 0 to 31 (control characters now printed as ^C). - -Fri Apr 15 16:29:21 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * Makefile.in: XTRAFLAGS is no longer need, since -Bdir now - implies -Idir/include. - (XTRAFLAGS): Don't define. - (ALL_CFLAGS): Don't include $(XTRAFLAGS). - -Thu Apr 14 13:44:31 1994 Wilfried Moser (moser@phishhead.cygnus.com) - - * Makefile.in (TIMEOBJS): New variable for time related stuff. - * Makefile.in (OBJS): Add TIMEOBJS. - * abstime.c (_abstime): New file and new function to handle - ABSTIME builtin. - * inttime.c (_inttime): New file and new function to handle - INTTIME builtin. - -Tue Mar 29 13:11:37 1994 Wilfried Moser (fs_moser at rcsw1h) - - * Makefile.in (LIBOBJS2): Add new modules rdformat.o rdstring.o - rdunixstd.o - * iomodes.h: Remove unnecessary definitions. Redefine interface to - READTEXT/WRITETEXT functions. - * rdstring.c (_readstring): Rework function. - * rdformat.c: Rework functionality. - * rdunixstd.d: New module. This is designed to implement - READTEXT (stdin...). - * wrformat.c (copy_text): Change return value of function. In case - of an empty string this function has failed. - * wrformat.c: Change formating of a NULL pointer to NULL instead - of 0. - * wrformat.c (PUT_CHARS): Change macro according to new return - value of function copy_text. - -Sun Mar 20 21:11:35 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * powerset.h: Bitstrings are now allocated in units - of (unsigned char), rather than words. - * eqps.c (__eqpowerset): Optimize slighly for above change. - - * setbitps.c (__setbitpowerset): Clean up parameter list. - -Thu Mar 10 11:10:32 1994 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in: Add standard gcc Makefile stuff. Move - chillcrt0 and libchill.a to all.indirect from all target. - -Tue Mar 1 17:01:32 1994 Wilfried Moser (fs_moser at rcsw1h) - - * iomodes.h: Add definition for POWERSET's - * wrunixstd.c: Change the write call to an fprintf cause a system - we have doesn't support write. - * wrformat.c: Add processing of SET's and POWERSET's - -Sat Jan 29 13:32:52 1994 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in: Add new files copyps.c and concatps.c. - * copyps.c: New function with functionality from sliceps.c, - * sliceps.c: Change to call copyps now from here. - * concatps.c: New function - call copyps from here. - * powerset.h: Fix CLEAR_BIT_IN_CHAR macro. - -Wed Jan 26 12:30:48 1994 Mike Stump (mrs@cygnus.com) - - * Makefile.in: Don't echo ranlib command. - -Wed Jan 26 12:21:11 1994 Mike Stump (mrs@cygnus.com) - - * Makefile.in: Make sure cross builds work. AR, and RANLIB now - used properly. Make sure we can reconfigure if Makefile.in - changes. Use GCC_FOR_TARGET, not CC to compile libchill.a. - -Fri Jan 21 15:30:31 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * allgmem.c: Make prototype K&R-compatible. - -Sat Jan 15 10:04:08 1994 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in: Remove unused install code. - (Install will happen from devo/gcc). Add - rules for cleaning up. - -Fri Jan 14 21:43:45 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * chillrt0.c (__init_list): Renamed to _ch_init_list, to - avoid a conflict on the Alpha. - -Tue Jan 25 13:28:15 1994 Wilfried Moser (fs_moser at rcsw1j) - - * Makefile.in: clean up for cross compilation. Remove a lot of - functions (file-io) which are not used at the moment. - * iomodes.h: clean up the datatypes passed to the writetext - functions. - * unhex.c: Comment out include of gvarargs.h (not needed). - * rtsdummy.c: Comment out include of gvarargs.h (not needed). - * wrformat.c: change various procedure arguments according to the - new type passed by the compiler. Remove include of fcntl.h and - sys/stat.h (not needed). - * wrformat.c (default_conv): Change formatting of integers in case - of %O, %H, %B to unsigned. (PR-4395) - * wrstring.c: change various procedure arguments according to the - new type passed by the compiler. Remove include of fcntl.h and - sys/stat.h (not needed). - * wrtext.c: change various procedure arguments according to the - new type passed by the compiler. - * wrunixstd.c: change various procedure arguments according to the - new type passed by the compiler. Remove include of fcntl.h and - sys/stat.h (not needed). - * wrunixstd.c (_writeunixstd): Change the fwrite call to fprintf. - This is necessary due to a port to a system which does not - support fwrite. - -Sun Jan 2 14:40:32 1994 Bill Cox (bill@cygnus.com) - - * Makefile.in: Clean out obsolete .c286 suffix references. - -Sat Jan 1 16:51:22 1994 Bill Cox (bill@cygnus.com) - - * Makefile.in: Add dependencies on fileio.h - -Sat Jan 1 12:31:22 1994 Bill Cox (bill@cygnus.com) - - * Reorganize the whole directory and the Makefile. Now you - can recompile a single function and not have to recompile - a whole file full of them. - * eqps.c, neps.c: Fix handling of a one-word set. (PR-4077). - -Thu Dec 16 10:19:00 1993 Bill Cox (bill@rtl.cygnus.com) - - * fileio.c (default_conv): Changes to support all basic CHILL types. - Standardize function header formats. - -Tue Dec 14 14:36:27 1993 Bill Cox (bill@rtl.cygnus.com) - - * fileio.c (writeunixstd): Call _allocate_memory and - _return_memory, so we'll get appropriate exceptions. - * powerset.c: Ensure a space between each macro name and the - parameters. - -Mon Nov 22 10:42:37 1993 Wilfried Moser (moser@rtl.cygnus.com) - - * Makefile.in: Add functions to LIBFUNCS1 - * chillrt0.c (main): Clear the exception stack. - * libchill.c (__setexceptionStack, __getexceptionStack): New - functions according to allow one exceptionStack per thread. - -Sat Nov 20 17:45:52 1993 Per Bothner (bothner@kalessin.cygnus.com) - - * libchill.c (__ch_link_handler, __ch_unlink_handler): New functions. - -Fri Nov 19 14:37:12 1993 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in, string.c: Add memmove function (PR-3937). - -Wed Nov 17 17:07:46 1993 Bill Cox (bill@rtl.cygnus.com) - - * fileio.c (_writestring): Add parameters for the source file - and line number where it was called, for way better error - messages. - * powerset.c: Make all length and count variables longs. - Allows much larger powersets. - -Mon Nov 15 14:59:47 1993 Bill Cox (bill@rtl.cygnus.com) - - * fileio.c (writestring): Changed interface. - * iomodes.h: New structures for above interface. - * libchill.c: Delete bunch of powerset-related cruft. - (cause_exception): Empty it out. - * powerset.c: Call correct exception causer. - * string.c: Rewrite string comparisons from scratch. They - were bad... - -Sat Oct 30 14:54:39 1993 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in: Change paths to executables. - -Thu Oct 28 16:38:34 1993 Bill Cox (bill@rtl.cygnus.com) - - * powerset.c (__inpowerset, __setbitpowerset): Correct error checking. - These were throwing false exceptions. - (__setpowersetbits): Add check for null output set ptr. - -Wed Oct 27 16:45:29 1993 Bill Cox (bill@rtl.cygnus.com) - - * powerset.c (__diffpowerset): Check for SET_SHORT_SIZE, not - SET_CHAR_SIZE twice. - (__ffsetpowerset, __flsetpowerset): Add code for CHAR and SHORT sets. - * libchill.c (cause_exception): Output a message to stderr, and - abort, as a default exception action. - -Thu Oct 21 16:04:09 1993 Per Bothner (bothner@kalessin.cygnus.com) - - * fileio.c (__write_format): Add missing increment of fstr. - -Thu Sep 30 20:11:34 1993 Per Bothner (bothner@kalessin.cygnus.com) - - * powerset.c (__psslice): Take length, rather than upper bound. - -Sun Sep 19 23:14:57 1993 Per Bothner (bothner@kalessin.cygnus.com) - - * chillrt0.c, fileio.c (_writeunixstd): Change a standard Unix file - from (long*) to (long). Use fwrite rather than write. - * fileio.c (PUT_CHARS, PUT_CHAR): New macros. - * fileio.c (__write_format): Use them. - * fileio.c (__write-format): Handle "%/" format even if - not io_ctrl_allowed (by emitting '\n'). - -Fri Sep 10 12:15:51 1993 Wilfried Moser (fs_moser at rcsw1j) - - * chillrt0.c: Make stdin, stdout, stderr available to chill - programs. This is done by setting the apropriate file handles - to chill_stdin, chill_stdout, chill_stderr. - * fileio.c: Add a new function (_writeunixstd) to the - chill library. This function will be called when the compiler - detects a WRITETEXT action to one of the above mentioned - file handles. - * Makefile.in: Add _writeunixstd to LIBFUNCS3. - -Sat Aug 21 17:17:53 1993 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in: Add psset to list of powerset stuff. - * powerset.c: Standardize (and correct) for loops. Fix - comments. - -Mon Jul 5 09:48:06 1993 Wilfried Moser (fs_moser at rcsw1j) - - * rtltypes.h: Change layout of struct __ch_handler. The entry - jmp_buf is moved to the end of the structure. - -Mon Jun 14 12:17:53 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com) - - * Makefile.in: rename INSTALLDIR to libdir; remove parentdir - support; update definition of INSTALL - -Thu Jun 10 18:14:41 1993 Wilfried Moser (moser@deneb.cygnus.com) - - * libchill.c: (vector): This entry was removed. It is no - longer neccessary. - * Makefile.in: Change due to the remove of vector. - -Wed Jun 9 10:39:25 1993 Wilfried Moser (moser@deneb.cygnus.com) - - * chillrt0.c (main): Change processing of constructors - according to the new design made for tasking. - * libchill.c (__rts_main_loop, __rts_init): Don't do an - abort () there. - -Mon May 31 08:24:51 1993 Ian Lance Taylor (ian@cygnus.com) - - * Makefile.in (install): Create directory if necessary. - -Sun May 30 15:57:05 1993 Per Bothner (bothner@cygnus.com) - - * powerset.c (__eqpowerset, _newpowerset): Don't call - MASK_UNUSED_{CHAR,SHORT}_BITS on input operand - (which might be in read-only memory). - * powerset.c (SET_CHAR, SET_SHORT): Make unsigned. - -Fri May 21 10:45:07 1993 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in, chillrt0.c, fileio.c, libchill.c, - powerset.c, rtltypes.h: Wilfried's changes checked - in at Cygnus. - -Tue May 18 09:21:56 1993 Bill Cox (bill@rtl.cygnus.com) - - * powerset.c, Makefile.in: Add psslice routine. - Change function name from bitsetpowerset to - setpowersetbits. Drop build of I/O library - stuff, per Wilfried's request. - -Tue May 18 07:55:25 1993 Wilfried Moser (fs_moser at rcsw1j) - - * Makefile.in: clean up directory. Remove chillrt0.c - from libchill.a, this will be linked separately. - Remove librmt.a from Makefile, this is application - dependent. - -Fri May 7 10:45:09 1993 Ian Lance Taylor (ian@cygnus.com) - - * Makefile.in (tooldir): Define. - * configure.in: If cross-compilation, install in $(tooldir)/lib - rather than in $(exec_prefix)/lib. - -Sat May 1 11:43:44 1993 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in: Add store_output to lists. - * powerset.c: Add char- and short-length set handling - across the board. - -Thu Apr 8 17:43:33 1993 Bill Cox (bill@rtl.cygnus.com) - - * powerset.c (nepowerset): Return TRUE for non-equal comparison. - * string.c (eqstring, nestring): Call memcmp for the real work. - -Mon Mar 22 23:22:53 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) - - * Makefile.in: add dvi, check and installcheck targets - -Fri Mar 12 10:59:31 1993 Bill Cox (bill@rtl.cygnus.com) - - * string.c (nestring): Fix return status - was completely bogus. - -Fri Mar 5 18:34:15 1993 Per Bothner (bothner@rtl.cygnus.com) - - * powerset.c: Re-name INT_TYPE_SIZE to SET_WORD_SIZE. - * powerset.c: Use SET_WORD instead of (unsigned int). - * powerset.c (__eqpowerset, __nepowerset): Fix masking - of final word to not trash memory. - -Fri Mar 5 07:55:13 1993 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in, powerset.c (__nepowerset): add psne for powerset - inequality test. - * string.c: fix comment. - -Sat Feb 20 08:07:21 1993 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in, libchill.c, powerset.c: split out powerset stuff. - * powerset.c: fix __ffsetpowerset and __flsetpowerset. - -Fri Feb 19 11:00:10 1993 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in: add psmax and psmin to LIBFUNCS1, so the - ffsetpowerset and flsetpowerset functions get into the library. - -Sat Feb 13 15:43:21 1993 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in, string.c: cleanup - -Sat Feb 13 13:52:20 1993 Bill Cox (bill@rtl.cygnus.com) - - * Makefile.in: Add LIBFUNC4, and loop for it. Builds - string-related runtime functions, adds them to libchill.a. - -Wed Feb 10 09:45:29 1993 Bill Cox (bill@rtl.cygnus.com) - - * rtltypes.h: added missing TExceptionDefinition. - - * libchill.c: add GNU comment header, various new powerset - support routines. Change function declarations for K&R - compatibility. - * string.c: added - runtime string routines (relationals and - concat). - -Tue Feb 9 16:17:35 1993 Per Bothner (bothner@rtl.cygnus.com) - - * libchill.c, rtltypes.h: Replace exceptions-handling code. - * fileio.c: Comment out non-working pseudo-exception-handlers. - -Fri Feb 5 07:38:39 1993 Fred Fish (fnf@cygnus.com) - - * Makefile.in (RANLIB_TEST, INSTALL, INSTALL_PROGRAM, - INSTALL_DATA): Supply default definitions. - -Sat Jan 30 13:57:09 1993 Per Bothner (bothner@rtl.cygnus.com) - - * libchill.c: Change exception to be plain (char*). - (This is a simplification, at the cost of needing strcmp's.) - * Makefile.in: Move install actions over form ../gcc/Makefile.in. - -Wed Jan 27 23:22:44 1993 Per Bothner (bothner@rtl.cygnus.com) - - * libchill.c (__cause_exception): Exception is (for now) - (char**), rather than short. - Also, add (commented-out) sketch of new exception implementation. - -Tue Jan 12 21:14:56 1993 Per Bothner (bothner@cygnus.com) - - * libchill.c: Re-wrote bitstring/powerset code: Each chunk is - now a (unsigned int), rather than a (char), and bit-order - depends on BITS_BIG_ENDIAN, rather than being always - litle-endian. Other improvements here and there. - * libchill.c (__cardpowerset, __diffpowerset): Faster code. - * libchill.c (__setbitinstring): New routine, to assign - a single bit in a bitstring/powerset. - * Makefile.in (LIBFUNCS1): Add psset for __setbitinstring(). - -Tue Jan 12 00:10:46 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) - - * Makefile.in: compile all files with ALL_CFLAGS instead of CFLAGS, - default ALL_CFLAGS to include CFLAGS, - default XTRAFLAGS which is used to find the C library (like libg++), - added dummy install-info target for devo builds, - -Wed Jan 6 08:03:46 1993 Fred Fish (fnf@cygnus.com) - - * Makefile.in (libchill.a): Since libchill.a depends upon - chillrt0.o, don't remove chillrt0.o after adding to archive. - * config/mh-sysv4: Add SVR4 configuration file. - * Makefile.in (GCC_MAKEFILE): Define to point to gcc/chill - compiler Makefile, which contains the actual makefile fragments - to do the install, since it knows where gcc/chill is installed. - * Makefile.in: Add lines that configure looks for to insert - host, target, and site specific Makefile fragments. - * Makefile.in (install): New target that invokes make on the - gcc/chill makefile to do the actual install. - * configure.in (*-*-sysv4): Use mh-sysv4 as host_makefile_frag. - -Sun Jan 3 16:47:25 1993 Per Bothner (bothner@cygnus.com) - - * chillrt0.c: Comment out for now the non-portable - kludge for adding build_exceptions to the C++ initialision list. - -Sat Jan 2 15:51:43 1993 Per Bothner (bothner@rtl.cygnus.com) - - * New directory. Moved files from ../gcc/chillrt. - * configure.in: New file. - * Makefile.in: Modified from old Makefile to fit into standard - directory structure. diff --git a/libchill/Makefile.in b/libchill/Makefile.in deleted file mode 100644 index fb03aeec038..00000000000 --- a/libchill/Makefile.in +++ /dev/null @@ -1,246 +0,0 @@ -# Makefile for GNU CHILL compiler runtime library. -# Copyright (C) 1987, 88, 90-94, 1998, 1999 Free Software Foundation, Inc. - -#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, 59 Temple Place - Suite 330, -#Boston, MA 02111-1307, USA. */ - -# This was cribbed from the libf2c, libiberty and libstdc++ Makefile.in -# files. Some of this stuff may be unnecessary and worthless. - -SHELL = /bin/sh - -#### Start of system configuration section. #### - -srcdir = @srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ -target_alias = @target_alias@ -gcc_version = @gcc_version@ -gcc_version_trigger = @gcc_version_trigger@ - -libdir = $(exec_prefix)/lib -libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version) - -# Multilib support variables. -MULTISRCTOP = -MULTIBUILDTOP = -MULTIDIRS = -MULTISUBDIR = -MULTIDO = true -MULTICLEAN = true - -# Not configured per top-level version, since that doesn't get passed -# down at configure time, but overrridden by the top-level install -# target. -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ - -AR = @AR@ -AR_FLAGS = rc - -RANLIB = @RANLIB@ - -CC = @CC@ -CFLAGS = @CFLAGS@ -ALL_CFLAGS = -I. -I$(srcdir) $(CPPFLAGS) $(DEFS) $(CFLAGS) - -.SUFFIXES: -.SUFFIXES: .c .o - -.c.o: - $(CC) -c $(ALL_CFLAGS) $(INCLUDES) $< - -# Lists of required functions for each archive. - -LIBOBJS1 = allgmem.o allmem.o allocate.o cause.o exhstack.o exh.o retmem.o \ - unhex.o unhex1.o rtsdummy.o terminate.o - -IOOBJS = basicio.o chillstdio.o delete.o eoln.o existing.o format.o getassoc.o \ - gettextaccess.o gettextindex.o gettextrecord.o getusage.o \ - indexable.o ioerror.o isassociated.o outoffile.o readable.o \ - readrecord.o sequencible.o settextaccess.o settextindex.o \ - settextrecord.o variable.o writeable.o writerecord.o - -PSOBJS = andps.o cardps.o concatps.o copyps.o diffps.o eqps.o ffsetclrps.o \ - ffsetps.o flsetclrps.o flsetps.o inbitstr.o inps.o leps.o ltps.o \ - neps.o notps.o orps.o setbitps.o setbits.o sliceps.o xorps.o - -STROBJS = concatstr.o eqstr.o ltstr.o @MEMMOVE_O@ - -TIMEOBJS = abstime.o inttime.o waituntil.o remaintime.o convdurrtstime.o \ - checkcycle.o - -TASKOBJS = continue.o delaycase.o printbuffer.o printevent.o queuelength.o \ - sendbuffer.o waitbuffer.o - -OBJS = $(LIBOBJS1) $(IOOBJS) $(PSOBJS) $(STROBJS) $(TIMEOBJS) $(TASKOBJS) - -libchill.a: $(OBJS) - $(AR) $(AR_FLAGS) $@ $(OBJS) - $(RANLIB) $@ - -allgmem.o: allgmem.c rtltypes.h -allmem.o: allmem.c rtltypes.h -allocate.o: allocate.c rtltypes.h -cause.o: cause.c -exhstack.o: exhstack.c rtltypes.h -exh.o: exh.c rtltypes.h -retmem.o: retmem.c -unhex.o: unhex.c -unhex1.o: unhex1.c -rtsdummy.o: rtsdummy.c rtltypes.h -terminate.o: terminate.c rtltypes.h -basicio.o: basicio.c fileio.h -chillstdio.o: chillstdio.c iomodes.h -delete.o: delete.c fileio.h -eoln.o: eoln.c fileio.h -existing.o: existing.c fileio.h -format.o: format.c bitstring.h auxtypes.h iomodes.h format.h fileio.h ioerror.h -getassoc.o: getassoc.c fileio.h -gettextaccess.o: gettextaccess.c fileio.h -gettextindex.o: gettextindex.c fileio.h -gettextrecord.o: gettextrecord.c fileio.h -getusage.o: getusage.c fileio.h -indexable.o: indexable.c fileio.h -ioerror.o: ioerror.c -isassociated.o: isassociated.c fileio.h -outoffile.o: outoffile.c fileio.h -readable.o: readable.c fileio.h -readrecord.o: readrecord.c fileio.h -sequencible.o: sequencible.c fileio.h -settextaccess.o: settextaccess.c fileio.h -settextindex.o: settextindex.c fileio.h -settextrecord.o: settextrecord.c fileio.h -variable.o: variable.c fileio.h -writeable.o: writeable.c fileio.h -writerecord.o: writerecord.c fileio.h -andps.o: andps.c powerset.h -cardps.o: cardps.c powerset.h -concatps.o: concatps.c powerset.h -copyps.o: copyps.c powerset.h -diffps.o: diffps.c powerset.h -eqps.o: eqps.c powerset.h -ffsetclrps.o: ffsetclrps.c powerset.h -ffsetps.o: ffsetps.c powerset.h -flsetclrps.o: flsetclrps.c powerset.h -flsetps.o: flsetps.c powerset.h -inbitstr.o: inbitstr.c powerset.h -inps.o: inps.c powerset.h -leps.o: leps.c powerset.h -ltps.o: ltps.c powerset.h -neps.o: neps.c powerset.h -notps.o: notps.c powerset.h -orps.o: orps.c powerset.h -setbitps.o: setbitps.c powerset.h -setbits.o: setbits.c powerset.h -sliceps.o: sliceps.c powerset.h -xorps.o: xorps.c powerset.h -concatstr.o: concatstr.c -eqstr.o: eqstr.c -ltstr.o: ltstr.c -memmove.o: memmove.c -abstime.o: abstime.c rtltypes.h -inttime.o: inttime.c -waituntil.o: waituntil.c rtltypes.h rts.h -remaintime.o: remaintime.c rts.h -convdurrtstime.o: convdurrtstime.c rts.h -checkcycle.o: checkcycle.c rtltypes.h rts.h -continue.o: continue.c rtltypes.h rts.h -delaycase.o: delaycase.c rtltypes.h rts.h -printbuffer.o: printbuffer.c rtltypes.h rts.h -printevent.o: printevent.c rtltypes.h rts.h -queuelength.o: queuelength.c rtltypes.h rts.h -sendbuffer.o: sendbuffer.c rtltypes.h rts.h -waitbuffer.o: waitbuffer.c rtltypes.h rts.h - -$(PSOBJS): $(srcdir)/powerset.h -librmt.o: $(srcdir)/rtltypes.h -chillrt0.o: chillrt0.c $(srcdir)/rtltypes.h $(srcdir)/iomodes.h $(srcdir)/auxtypes.h -$(LIBOBJS1): $(srcdir)/rtltypes.h -$(TIMEOBJS): $(srcdir)/rtltypes.h $(srcdir)/rts.h -$(TASKOBJS): $(srcdir)/rts.h $(srcdir)/rtltypes.h -$(IOOBJS): $(srcdir)/fileio.h $(srcdir)/bitstring.h $(srcdir)/auxtypes.h \ - $(srcdir)/iomodes.h $(srcdir)/format.h $(srcdir)/ioerror.h - -# Flags to pass to a recursive make. -FLAGS_TO_PASS = \ - "AR=$(AR)" \ - "AR_FLAGS=$(AR_FLAGS)" \ - "CC=$(CC)" \ - "CFLAGS=$(CFLAGS)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "EXTRA_OFILES=$(EXTRA_OFILES)" \ - "HDEFINES=$(HDEFINES)" \ - "INSTALL=$(INSTALL)" \ - "INSTALL_DATA=$(INSTALL_DATA)" \ - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ - "LDFLAGS=$(LDFLAGS)" \ - "LOADLIBES=$(LOADLIBES)" \ - "PICFLAG=$(PICFLAG)" \ - "RANLIB=$(RANLIB)" \ - "SHELL=$(SHELL)" \ - "prefix=$(prefix)" \ - "exec_prefix=$(exec_prefix)" \ - "libdir=$(libdir)" \ - "libsubdir=$(libsubdir)" \ - "tooldir=$(tooldir)" - -all: chillrt0.o libchill.a - @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all - -Makefile: Makefile.in config.status - $(SHELL) config.status - -config.status: configure - rm -f config.cache - CONFIG_SITE=no-such-file CC='$(CC)' AR='$(AR)' CFLAGS='$(CFLAGS)' \ - CPPFLAGS='$(CPPFLAGS)' $(SHELL) config.status --recheck - -${srcdir}/configure: configure.in - rm -f config.cache - cd ${srcdir} && autoconf - -install: all - $(INSTALL_DATA) libchill.a $(libsubdir)$(MULTISUBDIR)/libchill.a.n - $(RANLIB) $(libsubdir)$(MULTISUBDIR)/libchill.a.n - mv $(libsubdir)$(MULTISUBDIR)/libchill.a.n $(libsubdir)$(MULTISUBDIR)/libchill.a - $(INSTALL_DATA) chillrt0.o $(libsubdir)$(MULTISUBDIR)/chillrt0.o - @rootme=`pwd`/ ; export rootme ; \ - $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install - - -check uninstall install-strip dist installcheck installdirs info install-info clean-info dvi: - -mostlyclean: - rm -f *.o - @$(MULTICLEAN) multi-clean DO=mostlyclean - -clean: mostlyclean - rm -f config.log libchill.a - @$(MULTICLEAN) multi-clean DO=clean - -distclean: clean - @$(MULTICLEAN) multi-clean DO=distclean - rm -f config.cache config.status Makefile configure - -maintainer-clean realclean: distclean - -.PHONY: mostlyclean clean distclean maintainer-clean all check uninstall \ - install-strip dist installcheck installdirs - diff --git a/libchill/abstime.c b/libchill/abstime.c deleted file mode 100644 index bf3d6149110..00000000000 --- a/libchill/abstime.c +++ /dev/null @@ -1,139 +0,0 @@ -/* Implement timing-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include "rtltypes.h" - -EXCEPTION (rangefail); - -#define SECOND_VALID 1 -#define MINUTE_VALID 2 -#define HOUR_VALID 4 -#define DAY_VALID 8 -#define MONTH_VALID 16 -#define YEAR_VALID 32 - -extern void __cause_ex1 (char *ex, char *file, int lineno); - -#define CAUSE_RANGEFAIL __cause_ex1 ("rangefail", filename, lineno) - -/* - * function _abstime - * - * parameters: - * mask - mask of valid values - * year - * month - * day - * hour - * minute - * second - * - * returns: - * unsigned long - * - * exceptions: - * rangefail - * - * abstract: - * perform the ABSTIME builtin call - * - */ - -unsigned long -_abstime (mask, year, month, day, hour, minute, second, - filename, lineno) - int mask, year, month, day, hour, minute, second; - char *filename; - int lineno; -{ - struct tm *time_str; - time_t result, current_time; - - /* first of all get current time */ - if ((current_time = time (0)) == (time_t)-1) - /* FIXME: what excpetion ?? */ - CAUSE_RANGEFAIL; - - /* if we just have to determine the current time, we are ready. - This is shown by mask == 0. */ - if (mask == 0) - return (unsigned long)current_time; - - /* convert current time to struct tm */ - time_str = localtime (¤t_time); - - if (mask & YEAR_VALID) - { - if (year < 1900) - CAUSE_RANGEFAIL; - time_str->tm_year = year - 1900; - } - - if (mask & MONTH_VALID) - { - if (month < 1 || month > 12) - CAUSE_RANGEFAIL; - time_str->tm_mon = month - 1; - } - - if (mask & DAY_VALID) - { - if (day < 1 || day > 31) - CAUSE_RANGEFAIL; - time_str->tm_mday = day; - } - - if (mask & HOUR_VALID) - { - if (hour < 0 || hour > 23) - CAUSE_RANGEFAIL; - time_str->tm_hour = hour; - } - - if (mask & MINUTE_VALID) - { - if (minute < 0 || minute > 59) - CAUSE_RANGEFAIL; - time_str->tm_min = minute; - } - - if (mask & SECOND_VALID) - { - if (second < 0 || second > 59) - CAUSE_RANGEFAIL; - time_str->tm_sec = second; - } - - /* do it */ - time_str->tm_isdst = -1; - if ((result = mktime (time_str)) == (time_t)-1) - CAUSE_RANGEFAIL; - - return (unsigned long)result; -} diff --git a/libchill/allgmem.c b/libchill/allgmem.c deleted file mode 100644 index 3e80d119ae6..00000000000 --- a/libchill/allgmem.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include "rtltypes.h" - -extern void __cause_ex1 (char *ex, char *filename, int lineno); - -EXCEPTION (notimplemented); - -/* - * function _allocate_global_memory - * - * parameters: - * ptr pointer to location where pointer should be written - * size number of bytes to allocate - * filename source file which issued the call - * linenumber line number of the call within that file - * - * returns: - * void - * - * exceptions: - * spacefail - * protectionfail - * rangefail - * - * abstract: - * allocate global memory. At the moment we dont know how to realize this, - * therefore cause NotImplemented. - * -*/ - -void -_allocate_global_memory (ptr, size, filename, linenumber) - void **ptr; - int size; - char *filename; - int linenumber; -{ - __cause_ex1 ("notimplemented", filename, linenumber); -} - diff --git a/libchill/allmem.c b/libchill/allmem.c deleted file mode 100644 index c8306482472..00000000000 --- a/libchill/allmem.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "rtltypes.h" - -extern void __cause_ex1 (char *exname, char *file, int lineno); - -/* define needed exceptions */ -EXCEPTION (protectionfail); -EXCEPTION (rangefail); -EXCEPTION (spacefail); - -/* - * function _allocate_memory - * - * parameters: - * ptr pointer to location where pointer should be written - * size number of bytes to allocate - * filename source file which issued the call - * linenumber line number within that source file - * - * returns: - * void - * - * exceptions: - * spacefail - * protectionfail - * rangefail - * - * abstract: - * allocate memory from heap - * -*/ - -void -_allocate_memory (ptr, size, filename, linenumber) - void **ptr; - int size; - char *filename; - int linenumber; -{ - void *tmp; - - if (!ptr) - __cause_ex1 ("protectionfail", filename, linenumber); - if (size < 0) - __cause_ex1 ("rangefail", filename, linenumber); - tmp = malloc (size); - if (!tmp) - __cause_ex1 ("spacefail", filename, linenumber); - *ptr = tmp; -} diff --git a/libchill/allocate.c b/libchill/allocate.c deleted file mode 100644 index 628381e772a..00000000000 --- a/libchill/allocate.c +++ /dev/null @@ -1,74 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "rtltypes.h" - -extern void __cause_ex1 (char *exname, char *file, int lineno); - -/* define needed exceptions */ -EXCEPTION (allocatefail) -EXCEPTION (rangefail) - -/* - * function __allocate - * - * parameters: - * size number of bytes to allocate - * filename source file which issued the call - * linenumber line number within that source file - * - * returns: - * void * - * - * exceptions: - * allocatefail - * rangefail - * - * abstract: - * allocate memory from heap - * -*/ - -void * -__allocate (size, filename, linenumber) - int size; - char *filename; - int linenumber; -{ - void *tmp; - - if (size < 0) - __cause_ex1 ("rangefail", filename, linenumber); - tmp = malloc (size); - if (!tmp) - __cause_ex1 ("allocatefail", filename, linenumber); - return tmp; -} diff --git a/libchill/andps.c b/libchill/andps.c deleted file mode 100644 index c638a5a6de1..00000000000 --- a/libchill/andps.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __andpowerset - * - * parameters: - * out return from __andpowerset - * left left powerset - * right right powerset - * bitlength length of powerset in bits - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * and's two powersets - * - */ - -void -__andpowerset (out, left, right, bitlength) - SET_WORD *out; - SET_WORD *left; - SET_WORD *right; - unsigned long bitlength; -{ - if (bitlength <= SET_CHAR_SIZE) - { - *((SET_CHAR *)out) = *((SET_CHAR *)left) & - *((SET_CHAR *)right); - MASK_UNUSED_CHAR_BITS((SET_CHAR *)out, bitlength); - } - else if (bitlength <= SET_SHORT_SIZE) - { - *((SET_SHORT *)out) = *((SET_SHORT *)left) & - *((SET_SHORT *)right); - MASK_UNUSED_SHORT_BITS((SET_SHORT *)out, bitlength); - } - else - { - unsigned long len = BITS_TO_WORDS (bitlength); - register unsigned long i; - - for (i = 0; i < len; i++) - out[i] = left[i] & right[i]; - MASK_UNUSED_WORD_BITS ((out + len - 1), - bitlength % SET_WORD_SIZE); - } -} diff --git a/libchill/auxtypes.h b/libchill/auxtypes.h deleted file mode 100644 index 33bcc36573b..00000000000 --- a/libchill/auxtypes.h +++ /dev/null @@ -1,53 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#ifndef _auxtypes_h_ -#define _auxtypes_h_ - - -typedef enum { False, True } Boolean; - -#define VARYING_STRING(strlen) \ - struct { unsigned short len; char body[strlen]; } - -typedef struct { - unsigned short len; - char body[1]; -} VarString; - -/* Macros for moving an (U)INT and (U)LONG without alignment worries */ -#define MOV2(tgt,src) \ - *((char*)(tgt) ) = *((char*)(src) ), \ - *((char*)(tgt)+1) = *((char*)(src)+1) -#define MOV4(tgt,src) \ - *((char*)(tgt) ) = *((char*)(src) ), \ - *((char*)(tgt)+1) = *((char*)(src)+1), \ - *((char*)(tgt)+2) = *((char*)(src)+2), \ - *((char*)(tgt)+3) = *((char*)(src)+3) - -#endif diff --git a/libchill/basicio.c b/libchill/basicio.c deleted file mode 100644 index 79fd9cbfa93..00000000000 --- a/libchill/basicio.c +++ /dev/null @@ -1,483 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "fileio.h" - -#ifndef PATH_MAX -# ifdef _POSIX_PATH_MAX -# define PATH_MAX _POSIX_PATH_MAX -# else -# ifdef MAXPATHLEN -# define PATH_MAX MAXPATHLEN -# else -# define PATH_MAX 1024 -# endif -# endif -#endif - -static -void -GetSetAttributes( Association_Mode* the_assoc ) -{ - struct stat statbuf; - int retco; - - if( (retco = stat( the_assoc->pathname, &statbuf )) ) - return; - - if( S_ISREG(statbuf.st_mode) ) - { - SET_FLAG( the_assoc, IO_EXISTING ); - if( !TEST_FLAG( the_assoc, IO_VARIABLE ) ) - SET_FLAG( the_assoc, IO_INDEXABLE ); - } - else - if( S_ISCHR(statbuf.st_mode) || S_ISFIFO(statbuf.st_mode) ) - { - SET_FLAG( the_assoc, IO_EXISTING ); - CLR_FLAG( the_assoc, IO_INDEXABLE ); - } - SET_FLAG( the_assoc, IO_SEQUENCIBLE ); - - /* FIXME: File size and computation of number of records for outoffile ? */ - - if( !access( the_assoc->pathname, R_OK ) ) - SET_FLAG( the_assoc, IO_READABLE ); - if( !access( the_assoc->pathname, W_OK ) ) - SET_FLAG( the_assoc, IO_WRITEABLE ); -} - -static -void -makeName( Association_Mode* the_assoc, char* the_path, int the_path_len, - char* file, int line) -{ - int namlen; - if( ! the_assoc->pathname && - ! (the_assoc->pathname = (char*)malloc( PATH_MAX )) ) - CHILLEXCEPTION( file, line, SPACEFAIL, PATHNAME_ALLOC ); - - if( the_path[0] != DIRSEP ) - { - if( !getcwd( the_assoc->pathname, PATH_MAX ) ) - { - the_assoc->syserrno = errno; - CHILLEXCEPTION( file, line, ASSOCIATEFAIL, GETCWD_FAILS ); - } - namlen = strlen( the_assoc->pathname ); - the_assoc->pathname[namlen++] = DIRSEP; - } - else - namlen = 0; - - strncpy( the_assoc->pathname + namlen, the_path, the_path_len ); - the_assoc->pathname[namlen+the_path_len] = '\0'; -} - -/* - * ASSOCIATE - */ -/* Caution: returns an Association mode location (!) */ -Association_Mode* -__associate( Association_Mode* the_assoc, - char* the_path, - int the_path_len, - char* the_mode, - int the_mode_len, - char* file, - int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - - if( TEST_FLAG(the_assoc, IO_ISASSOCIATED) ) - CHILLEXCEPTION( file, line, ASSOCIATEFAIL, IS_ASSOCIATED ); - - /* clear all flags */ - the_assoc->flags = 0; - - if( ! the_path_len ) - CHILLEXCEPTION( file, line, ASSOCIATEFAIL, NO_PATH_NAME ); - - makeName( the_assoc, the_path, the_path_len, file, line ); - GetSetAttributes( the_assoc ); - - CLR_FLAG( the_assoc, IO_VARIABLE ); - if ( the_mode ) - { - if( !strncmp( the_mode, "VARIABLE", 8 ) ) - { - SET_FLAG( the_assoc, IO_VARIABLE ); - CLR_FLAG( the_assoc, IO_INDEXABLE ); - } - else - if( strlen( the_mode ) ) - CHILLEXCEPTION( file, line, ASSOCIATEFAIL, INVALID_ASSOCIATION_MODE ); - } - - SET_FLAG( the_assoc, IO_ISASSOCIATED ); - return the_assoc; -} - -/* - * DISSOCIATE - */ -void -__dissociate( Association_Mode* the_assoc, char* file, int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - - if( !TEST_FLAG( the_assoc, IO_ISASSOCIATED ) ) - CHILLEXCEPTION( file, line, NOTASSOCIATED, IS_NOT_ASSOCIATED ); - - if( the_assoc->access ) - __disconnect( the_assoc->access, file, line ); - - the_assoc->access = NULL; - CLR_FLAG( the_assoc, IO_ISASSOCIATED ); - - /* free allocated memory */ - if (the_assoc->pathname) - { - free (the_assoc->pathname); - the_assoc->pathname = 0; - } - if (the_assoc->bufptr) - { - free (the_assoc->bufptr); - the_assoc->bufptr = 0; - } -} - -/* - * CREATE - */ -void __create( Association_Mode* the_assoc, char* file, int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - - if( !TEST_FLAG( the_assoc, IO_ISASSOCIATED ) ) - CHILLEXCEPTION( file, line, NOTASSOCIATED, IS_NOT_ASSOCIATED ); - - if( TEST_FLAG( the_assoc, IO_EXISTING ) ) - CHILLEXCEPTION( file, line, CREATEFAIL, FILE_EXISTING ); - - if( (the_assoc->handle = open( the_assoc->pathname, O_CREAT+O_TRUNC+O_WRONLY, 0666 )) - == -1 ) - CHILLEXCEPTION( file, line, CREATEFAIL, CREATE_FAILS ); - - the_assoc->usage = ReadWrite; - GetSetAttributes( the_assoc ); - - close( the_assoc->handle ); -} - -/* - * MODIFY - */ -void -__modify( Association_Mode* the_assoc, - char* the_path, - int the_path_len, - char* the_mode, - int the_mode_len, - char* file, - int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - - if( !TEST_FLAG( the_assoc, IO_ISASSOCIATED ) ) - CHILLEXCEPTION( file, line, NOTASSOCIATED, IS_NOT_ASSOCIATED ); - - if( the_path_len ) - { - char* oldname; - - if( ! (oldname = (char*)malloc( PATH_MAX )) ) - CHILLEXCEPTION( file, line, SPACEFAIL, PATHNAME_ALLOC ); - strcpy( oldname, the_assoc->pathname ); - - makeName( the_assoc, the_path, the_path_len, file, line ); - - if( rename( oldname, the_assoc->pathname ) ) - { - free( oldname ); - CHILLEXCEPTION( file, line, MODIFYFAIL, RENAME_FAILS ); - } - free( oldname ); - } - else - { - /* FIXME: other options? */ - } -} - -static -/*** char* DirMode[] = { "rb", "r+b", "r+b" }; ***/ -int DirMode[] = { O_RDONLY, O_RDWR, O_RDWR }; - -static -/*** char* SeqMode [] = { "rb", "r+b", "r+b" }; ***/ -int SeqMode[] = { O_RDONLY, O_RDWR, O_RDWR }; - -/* - * CONNECT - */ -void -__connect( void* the_transfer, - Association_Mode* the_assoc, - Usage_Mode the_usage, - Where_Mode the_where, - Boolean with_index, - signed long the_index, - char* file, - int line ) -{ - Access_Mode* the_access; - off_t filepos; - off_t savepos; - char dummy; - unsigned long nbytes; - int oflag; - - if( !the_transfer ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ACCESS ); - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - - if( TEST_FLAG((Text_Mode*)the_transfer, IO_TEXTLOCATION )) - { - if( ! ((Text_Mode*)the_transfer)->access_sub ) - CHILLEXCEPTION( file, line, EMPTY, NO_ACCESS_SUBLOCATION ); - the_access = ((Text_Mode*)the_transfer)->access_sub; - SET_FLAG( the_access, IO_TEXTIO ); - } - else - { - the_access = (Access_Mode*)the_transfer; - CLR_FLAG( the_access, IO_TEXTIO ); - } - - /* FIXME: This should be an (implementation-dependent) static check - if( with_index && the_access->rectype > Fixed ) - CHILLEXCEPTION( file, line, CONNECTFAIL, IMPL_RESTRICTION ); - */ - - if( ! TEST_FLAG(the_assoc, IO_ISASSOCIATED) ) - CHILLEXCEPTION( file, line, NOTASSOCIATED, IS_NOT_ASSOCIATED ); - - if( ! TEST_FLAG( the_assoc, IO_EXISTING ) ) - CHILLEXCEPTION( file, line, CONNECTFAIL, NOT_EXISTING ); - - if( ! TEST_FLAG( the_assoc, IO_READABLE ) && - ( the_usage = ReadOnly || the_usage == ReadWrite ) ) - CHILLEXCEPTION( file, line, CONNECTFAIL, NOT_READABLE ); - - if( ! TEST_FLAG( the_assoc, IO_WRITEABLE ) && - ( the_usage = WriteOnly || the_usage == ReadWrite ) ) - CHILLEXCEPTION( file, line, CONNECTFAIL, NOT_WRITEABLE ); - - if( ! TEST_FLAG( the_assoc, IO_INDEXABLE ) - && TEST_FLAG( the_access, IO_INDEXED ) ) - CHILLEXCEPTION( file, line, CONNECTFAIL, NOT_INDEXABLE ); - - if( ! TEST_FLAG( the_assoc, IO_SEQUENCIBLE ) - && ! TEST_FLAG( the_access, IO_INDEXED ) ) - CHILLEXCEPTION( file, line, CONNECTFAIL, NOT_SEQUENCIBLE ); - - if( the_where == Same && the_assoc->access == NULL ) - CHILLEXCEPTION( file, line, CONNECTFAIL, NO_CURRENT_POS ); - - /* This dynamic condition is not checked for text connections. */ - if( ! TEST_FLAG( the_access, IO_TEXTIO ) ) - if( ! TEST_FLAG( the_assoc, IO_VARIABLE ) - && the_access->rectype > Fixed - && ( the_usage == WriteOnly || the_usage == ReadWrite ) ) - CHILLEXCEPTION( file, line, CONNECTFAIL, NOT_VARIABLE ); - - if( TEST_FLAG( the_assoc, IO_VARIABLE ) - && the_access->rectype == Fixed - && ( the_usage == ReadOnly || the_usage == ReadWrite ) ) - CHILLEXCEPTION( file, line, CONNECTFAIL, NOT_FIXED ); - - if( ! TEST_FLAG( the_access, IO_INDEXED ) && the_usage == ReadWrite ) - CHILLEXCEPTION( file, line, CONNECTFAIL, NOT_INDEXED ); - - /* Access location may be connected to a different association. */ - if( the_access->association && the_access->association != the_assoc ) - __disconnect( the_access, file, line ); - - /* Is the association location already connected? */ - if( the_assoc->access ) - { - /* save position just in case we need it for the_where == Same */ - if( (savepos = lseek( the_assoc->handle, 0L, SEEK_CUR )) == -1L ) - CHILLEXCEPTION( file, line, CONNECTFAIL, LSEEK_FAILS ); - - /* text: read correction, flush buffer */ - if( the_assoc->bufptr ){ - savepos -= the_assoc->bufptr->len - the_assoc->bufptr->cur; - the_assoc->bufptr->len = the_assoc->bufptr->cur = 0; - } - - /* implicit disconnect */ - __disconnect( the_assoc->access, file, line ); - } - - the_assoc->usage = the_usage; - CLR_FLAG( the_access, IO_OUTOFFILE ); - - if( TEST_FLAG( the_access, IO_INDEXED ) ) - { - if( (the_assoc->handle = open( the_assoc->pathname, DirMode[the_usage] )) == -1 ) - CHILLEXCEPTION( file, line, CONNECTFAIL, OPEN_FAILS ); - - /* Set base index. */ - switch( the_where ) - { - case First: - filepos = 0; - break; - case Same: - filepos = savepos; - break; - case Last: - if( lseek( the_assoc->handle, 0L, SEEK_END ) == -1L ) - CHILLEXCEPTION( file, line, CONNECTFAIL, LSEEK_FAILS ); - filepos = lseek( the_assoc->handle, 0L, SEEK_CUR ); - break; - } - - /* Set current index */ - if( with_index ) - { - if( the_index < the_access->lowindex - || the_access->highindex < the_index ) - CHILLEXCEPTION( file, line, RANGEFAIL, BAD_INDEX ); - filepos += (the_index - the_access->lowindex) * the_access->reclength; - } - if( lseek( the_assoc->handle, filepos, SEEK_SET ) == -1L ) - CHILLEXCEPTION( file, line, CONNECTFAIL, LSEEK_FAILS ); - the_access->base = filepos; - } - else - { - /* for association to text for reading: allocate buffer */ - if( TEST_FLAG((Text_Mode*)the_transfer, IO_TEXTLOCATION ) && - the_usage == ReadOnly && - !the_assoc->bufptr ) - { - if( ! (the_assoc->bufptr = (readbuf_t*)malloc( sizeof(readbuf_t) )) ) - CHILLEXCEPTION( file, line, CONNECTFAIL, BUFFER_ALLOC ); - memset (the_assoc->bufptr, 0, sizeof (readbuf_t)); - } - if( (the_assoc->handle = open( the_assoc->pathname, SeqMode[the_usage] )) == -1 ) - CHILLEXCEPTION( file, line, CONNECTFAIL, OPEN_FAILS ); - - /* Set base index. */ - switch( the_where ) - { - case First: - filepos = 0; - break; - case Same: - filepos = savepos; - break; - case Last: - if( lseek( the_assoc->handle, 0L, SEEK_END ) == -1L ) - CHILLEXCEPTION( file, line, CONNECTFAIL, LSEEK_FAILS ); - filepos = lseek( the_assoc->handle, 0L, SEEK_CUR ); - break; - } - - /* file truncation for sequential, Write Only */ - /***************************** FIXME: cannot truncate at Same - if( the_usage == WriteOnly ) - { - if( fseek( the_assoc->file_ptr, filepos, SEEK_SET ) == -1L ) - CHILLEXCEPTION( file, line, CONNECTFAIL, FSEEK_FAILS ); - fclose( the_assoc->file_ptr ); - if( !(the_assoc->file_ptr = fopen( the_assoc->pathname, "ab" )) ) - CHILLEXCEPTION( file, line, CONNECTFAIL, OPEN_FAILS ); - } - else - ***************************/ - if( (filepos = lseek( the_assoc->handle, filepos, SEEK_SET )) == -1L ) - CHILLEXCEPTION( file, line, CONNECTFAIL, LSEEK_FAILS ); - } - - the_access->association = the_assoc; - the_assoc->access = the_access; - /* for text: set carriage control default */ - if( TEST_FLAG((Text_Mode*)the_transfer, IO_TEXTLOCATION ) ){ - the_assoc->ctl_pre = '\0'; - the_assoc->ctl_post = '\n'; - } -} - -void -__disconnect( void* the_transfer, char* file, int line ) -{ - Access_Mode* the_access; - - if( !the_transfer ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ACCESS ); - - if( TEST_FLAG((Text_Mode*)the_transfer, IO_TEXTLOCATION )) - { - the_access = ((Text_Mode*)the_transfer)->access_sub; - CLR_FLAG( the_access, IO_TEXTIO ); - } - else - the_access = (Access_Mode*)the_transfer; - - if( !the_access->association ) - CHILLEXCEPTION( file, line, NOTCONNECTED, IS_NOT_CONNECTED ); - - close( the_access->association->handle ); - /* FIXME: check result */ - - if( the_access->store_loc ) - free( the_access->store_loc ); - the_access->store_loc = NULL; - the_access->association->access = NULL; - the_access->association = NULL; -} diff --git a/libchill/bitstring.h b/libchill/bitstring.h deleted file mode 100644 index 6870277d0b1..00000000000 --- a/libchill/bitstring.h +++ /dev/null @@ -1,37 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#ifndef _bitstring_h_ -#define _bitstring_h_ - -int __inpowerset( int i, char* string, int strlen, int dummy ); -void __setbitpowerset (char *powerset, unsigned long bitlength, - long minval, long bitno, char newval, - char *filename, int lineno); - -#endif diff --git a/libchill/cardps.c b/libchill/cardps.c deleted file mode 100644 index c3de8c921da..00000000000 --- a/libchill/cardps.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - - -/* - * function __cardpowerset - * - * parameters: - * ps powerset - * bitlength length of powerset - * - * returns: - * long number of set bits - * - * exceptions: - * none - * - * abstract: - * returns the number of set bit's in a powerset - * - */ - -/* bit_count[I] is number of '1' bits in I. */ -static -const unsigned char __four_bit_count[16] = { - 0, 1, 1, 2, - 1, 2, 2, 3, - 1, 2, 2, 3, - 2, 3, 3, 4 }; - -long -__cardpowerset (ps, bitlength) - SET_WORD *ps; - unsigned long bitlength; -{ - unsigned long count = 0; - if (bitlength <= SET_CHAR_SIZE) - { - register SET_CHAR c = *((SET_CHAR *)ps); - /* count 4 bits at a time. */ - while (c > 0) - { - count += __four_bit_count[c & 15]; - c >>= 4; - } - return count; - } - else if (bitlength <= SET_SHORT_SIZE) - { - register SET_SHORT c = *((SET_SHORT *)ps); - /* count 4 bits at a time. */ - while (c > 0) - { - count += __four_bit_count[c & 15]; - c >>= 4; - } - return count; - } - else - { - register SET_WORD *p = ps; - SET_WORD *endp = p + BITS_TO_WORDS(bitlength); - - while (p < endp) - { - register SET_WORD c = *p++; - /* count 4 bits at a time. */ - while (c > 0) - { - count += __four_bit_count[c & 15]; - c >>= 4; - } - } - return (count); - } -} diff --git a/libchill/cause.c b/libchill/cause.c deleted file mode 100644 index 544f0f94a5e..00000000000 --- a/libchill/cause.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -/* - * function cause_exception - * - * parameters: - * exname exception name - * file file name - * lineno line number - * user_arg user specified argument - * - * returns: - * void - * - * abstract: - * dummy for ChillLib but may be overwritten by the user - * - */ -void -cause_exception (exname, file, lineno, user_arg) - char *exname; - char *file; - int lineno; - int user_arg; -{ -} diff --git a/libchill/checkcycle.c b/libchill/checkcycle.c deleted file mode 100644 index 992a05acbd6..00000000000 --- a/libchill/checkcycle.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Implement timing-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "rtltypes.h" -#include "rts.h" - -EXCEPTION (cyclefail); - -/* - * function __check_cycle - * - * parameters: - * t pointer to initial time - * dur duration - * filename filename of call - * lineno linenumber of call - * - * returns: - * void - * - * exceptions: - * cyclefail - * - * abstract: - * Function checks if cycle is possible (there is time left) and wait the - * remaining time. - * - */ - -extern int __remaintime (RtsTime *since, unsigned long dur, RtsTime *remain); -extern int __cause_ex1 (char *ex, char *file, int lineno); - -void -__check_cycle (t, dur, fname, lineno) - RtsTime *t; - unsigned long dur; - char *fname; - int lineno; -{ - RtsTime remain; - - if (__remaintime (t, dur, &remain) != 0) - /* no time left -- cause exception */ - __cause_ex1 ("cyclefail", fname, lineno); - - /* delay the process */ - __delay_this (wait_wait, &remain, fname, lineno); -} diff --git a/libchill/chillrt0.c b/libchill/chillrt0.c deleted file mode 100644 index 3c25be2d3eb..00000000000 --- a/libchill/chillrt0.c +++ /dev/null @@ -1,155 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include -#include -#include - -#include "rtltypes.h" -#include "iomodes.h" - -/* type definitions */ -typedef void (*init_ptr) (); -typedef void (*rts_init_ptr) (int *argc, char *argv []); - -typedef struct INIT_LIST -{ - init_ptr code; - struct INIT_LIST *forward; -} InitList; - -InitList *_ch_init_list = 0; - -/* force linker to get correct RTS functions */ -extern rts_init_ptr __RTS_INIT__; -extern init_ptr __RTS_MAIN_LOOP__; -extern init_ptr __RTS_FETCH_NUMBERS__; -extern init_ptr __RTS_FETCH_NAMES__; -static init_ptr *rts_dummies[4] = -{ - &__RTS_INIT__, - &__RTS_MAIN_LOOP__, - &__RTS_FETCH_NUMBERS__, - &__RTS_FETCH_NAMES__, -}; - -/* chill argc and argv */ -int chill_argc = 0; -TVaryingCharType **chill_argv = NULL; - -/* the program name for debugging purpose */ -char *progname = 0; - -extern void *__xmalloc_ (); - -/* - * function __xrealloc_ - * - * parameter: - * ptr pointer to reallocate - * size new number of bytes - * - * returns: - * void* - * - * abstract: - * This is the general reallocation routine for libchill - * - */ - -void * -__xrealloc_ (ptr, size) -void *ptr; -int size; -{ - void *tmp = realloc (ptr, size); - - if (!tmp) - { - fprintf (stderr, "ChillLib: Out of heap space.\n"); - fflush (stderr); - exit (ENOMEM); - } - return (tmp); -} /* __xrealloc_ */ - -static void -setup_argc_argv (argc, argv) -int argc; -char *argv[]; -{ - int i; - - chill_argv = __xmalloc_ ((argc + 1) * sizeof (TVaryingCharType *)); - for (i = 0; i < argc; i++) - { - chill_argv[i] = __xmalloc_ (sizeof (TVaryingCharType) + strlen (argv[i]) + 1); - chill_argv[i]->len = strlen (argv[i]); - strcpy (chill_argv[i]->body, argv[i]); - } - chill_argv[chill_argc = argc] = NULL; - - if ((progname = strrchr (argv[0], '/')) == 0) - progname = argv[0]; - else - progname++; - -} /* setup_argc_argv */ - -extern void __setexceptionStack (); - -/*--------- main entry for each CHILL - program ----------*/ -int -main (argc, argv) - int argc; - char *argv []; -{ - /* call look up for tasking */ - (*__RTS_INIT__) (&argc, argv); - - /* setup argc and argv */ - setup_argc_argv (argc, argv); - - /* clear exception stack */ - __setexceptionStack (0); - - /* now call code at module level */ - while (_ch_init_list) - { - if (_ch_init_list->code) - (*(_ch_init_list->code)) (); - _ch_init_list = _ch_init_list->forward; - } - - /* if we have rts linked, something will be done, else just return */ - (*__RTS_MAIN_LOOP__) (); - - return (0); - -} /* main */ diff --git a/libchill/chillstdio.c b/libchill/chillstdio.c deleted file mode 100644 index d12c809625e..00000000000 --- a/libchill/chillstdio.c +++ /dev/null @@ -1,218 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include -#include -#include - -#include "iomodes.h" - -/* predefined associations, accesses, and text for stdin, stdout, stderr */ -/* stdin */ -#define STDIO_TEXT_LENGTH 1024 -#define STDIN_TEXT_LENGTH STDIO_TEXT_LENGTH - -static Access_Mode stdin_access; - -#ifndef STDIN_FILENO -#define STDIN_FILENO 0 -#endif - -static -Association_Mode stdin_association = -{ - IO_EXISTING | IO_READABLE | IO_SEQUENCIBLE | IO_ISASSOCIATED, - NULL, - &stdin_access, - STDIN_FILENO, - NULL, - 0, - ReadOnly -}; - -static Access_Mode stdin_access = -{ - IO_TEXTIO, - STDIN_TEXT_LENGTH + 2, - 0, - 0, - &stdin_association, - 0, - NULL, - VaryingChars -}; - -static -VARYING_STRING(STDIN_TEXT_LENGTH) stdin_text_record; - -Text_Mode chill_stdin = -{ - IO_TEXTLOCATION, - (VarString *)&stdin_text_record, - &stdin_access, - 0 -}; - -/* stdout */ -#define STDOUT_TEXT_LENGTH STDIO_TEXT_LENGTH -#ifndef STDOUT_FILENO -#define STDOUT_FILENO 1 -#endif - -static Access_Mode stdout_access; - -static -Association_Mode stdout_association = -{ - IO_EXISTING | IO_WRITEABLE | IO_SEQUENCIBLE | IO_ISASSOCIATED, - NULL, - &stdout_access, - STDOUT_FILENO, - NULL, - 0, - WriteOnly -}; - -static Access_Mode stdout_access = -{ - IO_TEXTIO, - STDOUT_TEXT_LENGTH + 2, - 0, - 0, - &stdout_association, - 0, - NULL, - VaryingChars -}; - -static -VARYING_STRING(STDOUT_TEXT_LENGTH) stdout_text_record; - -Text_Mode chill_stdout = -{ - IO_TEXTLOCATION, - (VarString *)&stdout_text_record, - &stdout_access, - 0 -}; - -/* stderr */ -#define STDERR_TEXT_LENGTH STDIO_TEXT_LENGTH -#ifndef STDERR_FILENO -#define STDERR_FILENO 2 -#endif - -static Access_Mode stderr_access; - -static -Association_Mode stderr_association = -{ - IO_EXISTING | IO_WRITEABLE | IO_SEQUENCIBLE | IO_ISASSOCIATED, - NULL, - &stderr_access, - STDERR_FILENO, - NULL, - 0, - WriteOnly -}; - -static Access_Mode stderr_access = -{ - IO_TEXTIO, - STDERR_TEXT_LENGTH + 2, - 0, - 0, - &stderr_association, - 0, - NULL, - VaryingChars -}; - -static -VARYING_STRING(STDIN_TEXT_LENGTH) stderr_text_record; - -Text_Mode chill_stderr = -{ - IO_TEXTLOCATION, - (VarString *)&stderr_text_record, - &stderr_access, - 0 -}; - -/* - * function __xmalloc_ - * - * parameter: - * size number of bytes to allocate - * - * returns: - * void* - * - * abstract: - * This is the general allocation routine for libchill - * - */ - -void * -__xmalloc_ (size) -int size; -{ - void *tmp = malloc (size); - - if (!tmp) - { - fprintf (stderr, "ChillLib: Out of heap space.\n"); - fflush (stderr); - exit (ENOMEM); - } - return (tmp); -} /* __xmalloc_ */ - -static char * -newstring (char *str) -{ - char *tmp = __xmalloc_ (strlen (str) + 1); - strcpy (tmp, str); - return tmp; -} - -static void setup_stdinout (void) __attribute__((constructor)); - -static void -setup_stdinout () -{ - /* allocate the names */ - stdin_association.pathname = newstring ("stdin"); - stdout_association.pathname = newstring ("stdout"); - stderr_association.pathname = newstring ("stderr"); - - /* stdin needs a readbuffer */ - stdin_association.bufptr = __xmalloc_ (sizeof (readbuf_t)); - memset (stdin_association.bufptr, 0, sizeof (readbuf_t)); -} diff --git a/libchill/concatps.c b/libchill/concatps.c deleted file mode 100644 index f350f2b5363..00000000000 --- a/libchill/concatps.c +++ /dev/null @@ -1,101 +0,0 @@ -/* Implement powerset-related runtime actions for CHILL. - Copyright (C) 1992, 93, 1994 Free Software Foundation, Inc. - Author: Bill Cox - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include "powerset.h" - -extern void cause_exception (char *exname, char *file, int lineno); - -/* - * function __concatps - * - * parameters: - * OUT - pointer to output PS - * LEFT - pointer to left PS - * LEFTLEN - length of left PS in bits - * RIGHT - pointer to right PS - * RIGHTLEN - length of right PS in bits - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * concatenates two powersets into the output powerset. - * - */ - -extern void -__pscpy (SET_WORD *dps, - unsigned long dbl, - unsigned long doffset, - SET_WORD *sps, - unsigned long sbl, - unsigned long start, - unsigned long length); - -void -__concatps (out, left, leftlen, right, rightlen) - SET_WORD *out; - SET_WORD *left; - unsigned long leftlen; - SET_WORD *right; - unsigned long rightlen; -{ - /* allocated sizes for each set involved */ - unsigned long outall, leftall, rightall; - - if (!out) - { - /* FIXME: cause an exception */ - } - else if (leftlen == 0 || !left) - { - if (rightlen == 0 || !right) - return; /* no work to do */ - __pscpy (out, rightlen, (unsigned long)0, - right, rightlen, (unsigned long)0, rightlen); - } - else if (rightlen == 0 || !right) - { - if (leftlen == 0 || !left) - return; /* no work to do */ - __pscpy (out, leftlen, (unsigned long)0, - left, leftlen, (unsigned long)0, leftlen); - } - /* copy the left powerset into bits 0..leftlen - 1 */ - __pscpy (out, leftlen + rightlen, (unsigned long)0, - left, leftlen, (unsigned long)0, leftlen); - - /* copy the right powerset into bits leftlen..leftlen+rightlen-1 */ - __pscpy (out, leftlen + rightlen, leftlen, - right, rightlen, (unsigned long)0, rightlen); -} diff --git a/libchill/concatstr.c b/libchill/concatstr.c deleted file mode 100644 index 866d3307ef5..00000000000 --- a/libchill/concatstr.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Implement string-related runtime actions for CHILL. - Copyright (C) 1992,1993,2000 Free Software Foundation, Inc. - Author: Bill Cox - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include - -#define MIN(a, b) ((a) < (b) ? (a) : (b)) - -extern void cause_exception (char *exname, char *file, int lineno); - -/* - * function __concatstring - * - * parameters: - * OUT - pointer to output string - * S1 - pointer to left string - * LEN1 - length of left string - * S2 - pointer to right string - * LEN2 - length of right string - * - * returns: - * pointer to OUT string - * - * exceptions: - * none - * - * abstract: - * concatenates two character strings into the output string - * - */ - -char * -__concatstring (out, s1, len1, s2, len2) - char *out, *s1; - int len1; - char *s2; - int len2; -{ - if (out) - { - if (s2 /* Check for overlap between s2 and out. */ - && ((s2 >= out && s2 < (out + len1 + len2)) - || (s2 + len2 > out && s2 <= out + len1))) - { - char *tmp = alloca (len2); - memcpy (tmp, s2, len2); - s2 = tmp; - } - if (s1) - memmove (out, s1, len1); - if (s2) - memcpy (&out[len1], s2, len2); - } - return out; -} diff --git a/libchill/configure.in b/libchill/configure.in deleted file mode 100644 index cd08ba1f776..00000000000 --- a/libchill/configure.in +++ /dev/null @@ -1,162 +0,0 @@ -# Process this file with autoconf to produce a configure script. -# Copyright (C) 1995, 1997, 1998, 1999 Free Software Foundation, Inc. -# Contributed by Dave Love (d.love@dl.ac.uk). -# -#This file is part of GNU CC. -# -#GNU CHILL 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 CHILL 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 CHILL; see the file COPYING. If not, write to -#the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -#02111-1307, USA. - -AC_PREREQ(2.13) -AC_INIT(chillrt0.c) - -if test "${srcdir}" = "." ; then - if test "${with_target_subdir}" != "." ; then - topsrcdir=${with_multisrctop}../.. - else - topsrcdir=${with_multisrctop}.. - fi -else - topsrcdir=${srcdir}/.. -fi -dnl This is needed for a multilibbed build in the source tree so -dnl that install-sh and config.sub get found. -AC_CONFIG_AUX_DIR($topsrcdir) - -# If the language specific compiler does not exist, but the "gcc" directory -# does, we do not build anything. Note, $r is set by the top-level Makefile. -# Note that when we look for the compiler, we search both with and without -# extension to handle cross and canadian cross builds. -compiler_name=cc1chill -rm -f skip-this-dir -AC_MSG_CHECKING(if compiler $compiler_name has been built) -AC_CACHE_VAL(chill_cv_compiler_exists, -[chill_cv_compiler_exists=yes -if test -n "$r"; then - if test -d "$r"/gcc; then - if test -f "$r"/gcc/$compiler_name \ - || test -f "$r"/gcc/$compiler_name.exe; then - true - else - chill_cv_compiler_exists=no - echo "rm -f config.cache config.log multilib.out" > skip-this-dir - fi - fi -fi -]) -AC_MSG_RESULT($chill_cv_compiler_exists) -if test x$chill_cv_compiler_exists = xno -then - rm -f Makefile conftest* confdefs* core - exit 0 -fi - -dnl Checks for programs. -# For chill we'll set CC to point at the built gcc, but this will get it into -# the makefiles -AC_PROG_CC - -test "$AR" || AR=ar -AC_SUBST(AR) -if test "$RANLIB"; then : - AC_SUBST(RANLIB) -else - AC_PROG_RANLIB -fi -AC_PROG_MAKE_SET - -dnl Checks for libraries. - -dnl Checks for header files. -# Sanity check for the cross-compilation case: -AC_CHECK_HEADER(stdio.h,:, - [AC_MSG_ERROR([Can't find stdio.h. -You must have a usable C system for the target already installed, at least -including headers and, preferably, the library, before you can configure -the Chill runtime system. If necessary, install gcc now with \`LANGUAGES=c', -then the target library, then build with \`LANGUAGES=chill'.])]) - -AC_HEADER_STDC - -AC_MSG_CHECKING(for posix) -AC_CACHE_VAL(chill_cv_header_posix, - AC_EGREP_CPP(yes, - [#include -#include -#ifdef _POSIX_VERSION - yes -#endif -], - chill_cv_header_posix=yes, - chill_cv_header_posix=no)) -AC_MSG_RESULT($chill_cv_header_posix) - -# We can rely on the GNU library being posix-ish. I guess checking the -# header isn't actually like checking the functions, though... -AC_MSG_CHECKING(for GNU library) -AC_CACHE_VAL(chill_cv_lib_gnu, - AC_EGREP_CPP(yes, - [#include -#ifdef __GNU_LIBRARY__ - yes -#endif -], - chill_cv_lib_gnu=yes, chill_cv_lib_gnu=no)) -AC_MSG_RESULT($chill_cv_lib_gnu) - -dnl Checks for library functions. -AC_TYPE_SIGNAL -# we'll get atexit by default -if test $ac_cv_header_stdc != yes; then -AC_CHECK_FUNC(atexit, - AC_DEFINE(onexit,atexit),dnl just in case - [AC_DEFINE(NO_ONEXIT) - AC_CHECK_FUNC(onexit,, - [AC_CHECK_FUNC(on_exit, - AC_DEFINE(onexit,on_exit),)])]) -else true -fi -AC_CHECK_FUNC(memmove, - MEMMOVE_O='', - MEMMOVE_O=memmove.o) -AC_SUBST(MEMMOVE_O) - -# We need multilib support, but only if configuring for the target. -AC_OUTPUT(Makefile, -[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h -if test -n "$CONFIG_FILES"; then - if test -n "${with_target_subdir}"; then - # FIXME: We shouldn't need to set ac_file - ac_file=Makefile - . ${topsrcdir}/config-ml.in - fi -fi], -srcdir=${srcdir} -host=${host} -target=${target} -with_target_subdir=${with_target_subdir} -with_multisubdir=${with_multisubdir} -ac_configure_args="--enable-multilib ${ac_configure_args}" -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} -topsrcdir=${topsrcdir} -) - - - -dnl Local Variables: -dnl comment-start: "dnl " -dnl comment-end: "" -dnl comment-start-skip: "\\bdnl\\b\\s *" -dnl End: diff --git a/libchill/continue.c b/libchill/continue.c deleted file mode 100644 index f2048f17ae7..00000000000 --- a/libchill/continue.c +++ /dev/null @@ -1,91 +0,0 @@ -/* Implement tasking-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "rtltypes.h" -#include "rts.h" - -/* - * function __continue - * - * parameters: - * evaddr pointer to Eventlocation - * filename source file name where function gets called - * lineno linenumber in source file - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * implement the CHILL CONTINUE action. - */ - -void -__continue (evaddr, filename, lineno) - Event_Queue **evaddr; - char *filename; - int lineno; -{ - Event_Queue *ev = *evaddr; - Event_Queue *wrk; - - if (ev == 0) - /* nothing to do */ - return; - - /* search for 1st one is not already continued */ - while (ev && ev->is_continued) - ev = ev->forward; - if (!ev) - /* all have been continued in that queue, do nothing */ - return; - - wrk = ev->startlist; - while (wrk) - { - Event_Queue *tmp = (Event_Queue *)wrk->listhead; - - while (tmp->forward != wrk) - tmp = tmp->forward; - tmp->forward = wrk->forward; - wrk = wrk->chain; - } - - /* so far so good, continue this one */ - ev->is_continued = 1; - ev->who_continued = THIS; - - /* tell the runtime system to activate the process */ - __continue_that (ev->this, ev->priority, filename, lineno); -} - -/* force function print_event to be linked */ -extern void __print_event (); -static EntryPoint pev = __print_event; diff --git a/libchill/convdurrtstime.c b/libchill/convdurrtstime.c deleted file mode 100644 index 5a1d3380168..00000000000 --- a/libchill/convdurrtstime.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Implement timing-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "rts.h" - -/* - * function __convert_duration_rtstime - * - * parameters: - * dur the duration value - * t pointer to the duration value converted to RtsTime - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * converts a duration value (unsigned long in millisecs) to RtsTime - * format. - * - */ - -void -__convert_duration_rtstime (dur, t) - unsigned long dur; - RtsTime *t; -{ - unsigned long tmp; - - t->secs = dur / 1000; - tmp = dur - (t->secs * 1000); - t->nanosecs = tmp * 1000000; -} diff --git a/libchill/copyps.c b/libchill/copyps.c deleted file mode 100644 index 6b7a4a19356..00000000000 --- a/libchill/copyps.c +++ /dev/null @@ -1,118 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __powerset_copy - * This is more general than __psslice, since it - * can be told where in the destination powerset (DOFFSET - * parameter) to start storing the slice. - * - * parameters: - * dps dest powerset - * dbl destination bit length - * doffset offset bit number (zero origin) - * sps sourcepowerset - * sbl source powerset length in bits - * start starting bit number - * end ending bit number - * - * exceptions: - * none - * - * abstract: - * Extract into a powerset a slice of another powerset. - * - */ -void -__pscpy (dps, dbl, doffset, sps, sbl, start, length) - SET_WORD *dps; - unsigned long dbl; - unsigned long doffset; - const SET_WORD*sps; - unsigned long sbl; - unsigned long start; - unsigned long length; -{ - unsigned long end = start + length - 1; - unsigned long src, dst; - - /* assert end >= start; - assert end - start + 1 <= dbl; - assert "the sets don't overlap in memory" */ - - /* assert doffset >= 0 and < dbl */ - - for (src = start, dst = doffset; src <= end; src++, dst++) - { - char tmp; - - if (sbl <= SET_CHAR_SIZE) /* fetch a bit */ - tmp = GET_BIT_IN_CHAR (*((SET_CHAR *)sps), src); - else if (sbl <= SET_SHORT_SIZE) - tmp = GET_BIT_IN_SHORT (*((SET_SHORT *)sps), src); - else - tmp = GET_BIT_IN_WORD (sps[src / SET_WORD_SIZE], src % SET_WORD_SIZE); - - if (tmp & 1) - { - if (dbl <= SET_CHAR_SIZE) /* store a 1-bit */ - SET_BIT_IN_CHAR (*((SET_CHAR *)dps), dst); - else if (dbl <= SET_SHORT_SIZE) - SET_BIT_IN_SHORT (*((SET_SHORT *)dps), dst); - else - SET_BIT_IN_WORD (dps[dst / SET_WORD_SIZE], dst % SET_WORD_SIZE); - } - else - { - if (dbl <= SET_CHAR_SIZE) /* store a 0-bit */ - CLEAR_BIT_IN_CHAR (*((SET_CHAR *)dps), dst); - else if (dbl <= SET_SHORT_SIZE) - CLEAR_BIT_IN_SHORT (*((SET_SHORT *)dps), dst); - else - CLEAR_BIT_IN_WORD (dps[dst / SET_WORD_SIZE], dst % SET_WORD_SIZE); - } - } - if (dbl <= SET_CHAR_SIZE) /* clear unused bits in output bitstring */ - { - MASK_UNUSED_CHAR_BITS ((SET_CHAR *)dps, dbl); - } - else if (dbl <= SET_SHORT_SIZE) - { - MASK_UNUSED_SHORT_BITS ((SET_SHORT *)dps, dbl); - } - else - { - MASK_UNUSED_WORD_BITS ((SET_WORD *)(dps + (dbl/SET_WORD_SIZE)), - dbl % SET_WORD_SIZE); - } -} diff --git a/libchill/delaycase.c b/libchill/delaycase.c deleted file mode 100644 index b12d272d10a..00000000000 --- a/libchill/delaycase.c +++ /dev/null @@ -1,229 +0,0 @@ -/* Implement tasking-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include "rtltypes.h" -#include "rts.h" - -extern void __cause_ex1 (char *ex, char *file, int lineno); - -EXCEPTION (delayfail); -#define CAUSE_DELAYFAIL __cause_ex1 ("delayfail", filename, lineno) - -EXCEPTION (notyetimplemented); -#define CAUSE_NOTIMPLEMENTED __cause_ex1 ("notyetimplemeyed", filename, lineno) - -/* - * function __delay_event - * - * parameters: - * ev_got pointer to location where to write the event got. - * nevents number of events in list - * evptrs array of event descriptors - * priority specified priority - * insloc pointer to resulting instance location - * to timeout value - * filename filename of caller - * lineno linenumber of caller - * - * returns: - * int 0 .. success - * 1 .. timed out - * - * exceptions: - * delayfail - * - * abstract: - * implement the CHILL DELAY and DELAY CASE actions. - * - */ - -int -__delay_event (ev_got, nevents, evptrs, priority, to, insloc, filename, lineno) - void **ev_got; - int nevents; - Event_Descr *evptrs; - int priority; - void *to; - INSTANCE *insloc; - char *filename; - int lineno; -{ - int i, already_done = 0; - Event_Queue *start_list = 0; - Event_Queue **retval = 0; - Event_Queue *wrk; - int timed_out = 0; - - /* check if all specified event queues have enough space left - to perform the delay */ - for (i = 0; i < nevents; i++) - { - Event_Queue *e; - unsigned long cnt = 0; - int j, have_done = 0; - - if (evptrs[i].maxqueuelength == 0) - CAUSE_DELAYFAIL; - else if (evptrs[i].maxqueuelength == (unsigned long)-1L) - /* infinite length */ - continue; - - /* check if we already have processed this one, that means, this - event is mentioned more than once */ - for (j = 0; j < i; j++) - { - if (evptrs[i].ev == evptrs[j].ev) - { - have_done = 1; - break; - } - } - if (have_done) - continue; - - memcpy (&e, evptrs[i].ev, sizeof (Event_Queue *)); - while (e) - { - cnt++; - e = e->forward; - } - if (cnt >= evptrs[i].maxqueuelength) - CAUSE_DELAYFAIL; - } - - for (i = 0; i < nevents; i++) - { - /* queue that stuff on each event */ - Event_Queue *wrk; - Event_Queue *ev; - Event_Queue *prev_queue_entry = 0; - Event_Queue *prev_list_entry; - int j, have_done = 0; - - /* check for this event already processed */ - for (j = 0; j < i; j++) - { - if (evptrs[i].ev == evptrs[j].ev) - { - have_done = 1; - break; - } - } - if (have_done) - continue; - - memcpy (&ev, &evptrs[i].ev, sizeof (Event_Queue *)); - MALLOC (wrk, sizeof (Event_Queue)); - memset (wrk, 0, sizeof (Event_Queue)); - - wrk->priority = priority; - wrk->this = THIS; - wrk->listhead = evptrs[i].ev; - - /* search for the place to queue this entry in */ - while (ev->forward != 0 && ev->priority >= priority) - { - prev_queue_entry = ev; - ev = ev->forward; - } - - /* ready to put entry into queue */ - if (ev->forward == 0 || prev_queue_entry == 0) - { - /* beginning or end of the list */ - wrk->forward = ev->forward; - ev->forward = wrk; - } - else - { - /* this is somewhere in the middle */ - wrk->forward = prev_queue_entry->forward; - prev_queue_entry->forward = wrk; - } - - /* queue it into list */ - wrk->startlist = start_list; - if (! start_list) - { - /* we are the first in the list */ - start_list = wrk; - prev_list_entry = wrk; - wrk->startlist = start_list; - } - else - { - prev_list_entry->chain = wrk; - prev_list_entry = wrk; - } - } - - /* tell runtime system to delay that process */ - timed_out = __delay_this (wait_event_delay, to, filename, lineno); - if (timed_out) - { - /* we have to remove the entries from the queue's */ - wrk = start_list; - while (wrk) - { - Event_Queue *tmp = (Event_Queue *)wrk->listhead; - - while (tmp->forward != wrk) - tmp = tmp->forward; - tmp->forward = wrk->forward; - wrk = wrk->chain; - } - } - - wrk = start_list; - while (wrk) - { - Event_Queue *tmp; - - if (wrk->is_continued && ! already_done) - { - already_done = 1; - retval = wrk->listhead; - if (insloc && !timed_out) - { - insloc->ptype = wrk->who_continued.ptype; - insloc->pcopy = wrk->who_continued.pcopy; - } - } - tmp = wrk->chain; - FREE (wrk); - wrk = tmp; - } - if (!timed_out && ev_got) - *ev_got = (void *)retval; - return timed_out; -} - -/* force function print_event to be linked */ -extern void __print_event (); -static EntryPoint pev = __print_event; diff --git a/libchill/delete.c b/libchill/delete.c deleted file mode 100644 index eca04dd4e8f..00000000000 --- a/libchill/delete.c +++ /dev/null @@ -1,50 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include - -#include "fileio.h" - -void __delete( Association_Mode* the_assoc, char* file, int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - - if( !TEST_FLAG( the_assoc, IO_ISASSOCIATED ) ) - CHILLEXCEPTION( file, line, NOTASSOCIATED, IS_NOT_ASSOCIATED ); - - /* forced dissociate */ - if( the_assoc->access ) - __disconnect( the_assoc->access, file, line ); - - /* delete */ - if( unlink( the_assoc->pathname ) ) - CHILLEXCEPTION( file, line, DELETEFAIL, DELETE_FAILS ); - - CLR_FLAG( the_assoc, IO_EXISTING ); -} diff --git a/libchill/diffps.c b/libchill/diffps.c deleted file mode 100644 index 67027abd847..00000000000 --- a/libchill/diffps.c +++ /dev/null @@ -1,81 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __diffpowerset - * - * parameters: - * out result of __diffpowerset - * left powerset - * right powerset - * bitlength length of powerset - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * makes a difference of 2 powersets (out = left - right) - * - */ -void -__diffpowerset (out, left, right, bitlength) - SET_WORD *out; - SET_WORD *left; - SET_WORD *right; - unsigned long bitlength; -{ - if (bitlength <= SET_CHAR_SIZE) - { - *((SET_CHAR *)out) = *((SET_CHAR *)left) & ~ - *((SET_CHAR *)right); - MASK_UNUSED_CHAR_BITS ((SET_CHAR *)out, bitlength); - } - else if (bitlength <= SET_SHORT_SIZE) - { - *((SET_SHORT *)out) = *((SET_SHORT *)left) & ~ - *((SET_SHORT *)right); - MASK_UNUSED_SHORT_BITS ((SET_SHORT *)out, bitlength); - } - else - { - unsigned long len = BITS_TO_WORDS(bitlength); - register unsigned long i; - - for (i = 0; i < len; i++) - out[i] = left[i] & ~right[i]; - MASK_UNUSED_WORD_BITS ((out + len - 1), bitlength % SET_WORD_SIZE); - } -} diff --git a/libchill/eoln.c b/libchill/eoln.c deleted file mode 100644 index 6c881bb74ed..00000000000 --- a/libchill/eoln.c +++ /dev/null @@ -1,38 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Boolean -__eoln( Text_Mode* the_text, char* file, int line ) -{ - if( !the_text ) - CHILLEXCEPTION( file, line, EMPTY, NULL_TEXT ); - - return the_text->actual_index == the_text->access_sub->reclength - 2; -} diff --git a/libchill/eqps.c b/libchill/eqps.c deleted file mode 100644 index e0e00db3cc2..00000000000 --- a/libchill/eqps.c +++ /dev/null @@ -1,74 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __eqpowerset - * - * parameters: - * left left powerset - * right right powerset - * bitlength length of powerset in bits - * - * returns: - * 1 if powersets are equal, bit for bit - * - * exceptions: - * none - * - * abstract: - * compares two powersets for equality - * - */ -int -__eqpowerset (left, right, bitlength) - SET_WORD *left; - SET_WORD *right; - unsigned long bitlength; -{ - { - SET_WORD c; - register unsigned long i; - unsigned long len = bitlength / SET_WORD_SIZE; - - for (i = 0; i < len; i++) /* a word-oriented memcmp */ - if (left[i] != right[i]) - return 0; - /* do the last (possibly partial) word */ - bitlength %= SET_WORD_SIZE; - if (bitlength == 0) - return 1; - c = left[i] ^ right[i]; - MASK_UNUSED_WORD_BITS (&c, bitlength); - return (c == 0) ? 1 : 0; - } -} diff --git a/libchill/eqstr.c b/libchill/eqstr.c deleted file mode 100644 index 9261572a1f0..00000000000 --- a/libchill/eqstr.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Implement string-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Bill Cox - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include - -extern void cause_exception (char *exname, char *file, int lineno); - -/* - * function __eqstring - * - * parameters: - * S1 - pointer to left string - * LEN1 - length of left string - * S2 - pointer to right string - * LEN2 - length of right string - * - * returns: - * 1 if strings equal, 0 if not - * - * exceptions: - * none - * - * abstract: - * compares two character strings for equality - * - */ - -int -__eqstring (s1, len1, s2, len2) - char *s1; - int len1; - char *s2; - int len2; -{ - if (len1 != len2) - return 0; - - return ! memcmp (s1, s2, len1); -} diff --git a/libchill/exh.c b/libchill/exh.c deleted file mode 100644 index 8845d4336d5..00000000000 --- a/libchill/exh.c +++ /dev/null @@ -1,162 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - - -#define __CHILL_LIB__ - -#include -#include -#include -#include -#include "rtltypes.h" - -extern void cause_exception (char *exname, char *file, int lineno, int user_arg); -extern void unhandled_exception (char *exname, char *file, int lineno, int user_arg); - -/* An action with a handler: - BODY ON (e1, e2): H12; (e3): H3; ELSE HE; END; - is translated into: - - struct __ch_handler __tmp; - static struct __ch_handler_excepts _H[4] = - { - { <>, 1 }, - { <>, 1 }, - { <>, 2 }, - { __ch_else_except, 3 }, - }; - __ch_link_handler(&__tmp); - __tmp.handlers = _H; - switch (setmp(&__tmp.jbuf)) - { - case 0: BODY; __ch_unlink_handler(&__tmp); break; - case 1: H12; break; - case 2: H3; break; - case 3: HE; break; - } -*/ - -/* this part contains all neccessary functions to handle exceptions in CHILL */ - -/* These two trivial function aren't inlines, to allow for - more flexibility (e.g. a per-thread exception stack). */ - -extern void __setexceptionStack (TExceptionHandlerStack *new); -extern TExceptionHandlerStack * __getexceptionStack (void); - -void -__ch_link_handler (handler) - struct __ch_handler *handler; -{ - handler->prev = __getexceptionStack (); - __setexceptionStack (handler); -} - - void -__ch_unlink_handler (handler) - struct __ch_handler *handler; -{ - __setexceptionStack (handler->prev); -} - -/* - * function __cause_exception - * - * parameters: - * exnum name string of exception to raise - * file filename of CAUSE statement - * lineno linenumber of CAUSE statement - * user_arg user specified argument - * - * returns: - * never leave function with longjmp or abort - * - * abstract: - * search exceptionstack for last handler of caused exception, - * call userdefined function to signal exception, - * jump to handler with longjmp or call unhandled_exception - * - */ - -void -__cause_exception (ex, file, lineno, user_arg) - char *ex; - char *file; - int lineno; - int user_arg; -{ - register struct __ch_handler *handler = __getexceptionStack(); - - /* call user defined cause function */ - cause_exception (ex, file, lineno, user_arg); - - for ( ; handler != NULL; handler = handler->prev) - { - register struct __ch_handled_excepts *list = handler->handlers; - for ( ; list->code != 0; list++ ) - { - if (list->ex == __ch_else_except || EX_EQ(list->ex, ex)) /* found */ - { - __setexceptionStack (handler->prev); - longjmp(handler->jbuf, list->code); - } - } - } - - /* no handler found -- call unhandled_exception */ - unhandled_exception (ex, file, lineno, user_arg); - abort (); -} - -/* - * function __cause_ex1 - * - * parameters: - * exnum name string of exception to raise - * file filename of CAUSE statement - * lineno linenumber of CAUSE statement - * - * returns: - * never leave function with longjmp or abort - * - * abstract: - * This is the function the compiler generated code calls. - * Search exceptionstack for last handler of caused exception, - * call userdefined function to signal exception, - * jump to handler with longjmp or call unhandled_exception - * - */ - -void -__cause_ex1 (ex, file, lineno) - char *ex; - char *file; - int lineno; -{ - __cause_exception (ex, file, lineno, 0); -} diff --git a/libchill/exhstack.c b/libchill/exhstack.c deleted file mode 100644 index fe8ad2905f8..00000000000 --- a/libchill/exhstack.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "rtltypes.h" - -typedef void (*init_ptr) (); -typedef int * tasking_ptr; - -static TExceptionHandlerStack *__exceptionStack; - -TExceptionHandlerStack * __getexceptionStack () -{ - return __exceptionStack; -} - -void __setexceptionStack (TExceptionHandlerStack *new) -{ - __exceptionStack = new; -} diff --git a/libchill/existing.c b/libchill/existing.c deleted file mode 100644 index 186b77ca36f..00000000000 --- a/libchill/existing.c +++ /dev/null @@ -1,39 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Boolean -__existing( Association_Mode* the_assoc, char* file, int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - if( !TEST_FLAG(the_assoc, IO_ISASSOCIATED) ) - CHILLEXCEPTION( file, line, NOTASSOCIATED, IS_NOT_ASSOCIATED ); - return TEST_FLAG(the_assoc, IO_EXISTING ) ? True : False; -} diff --git a/libchill/ffsetclrps.c b/libchill/ffsetclrps.c deleted file mode 100644 index a5c202c7b93..00000000000 --- a/libchill/ffsetclrps.c +++ /dev/null @@ -1,92 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __ffsetclrpowerset - * - * parameters: - * ps powerset - * bitlength length of powerset - * - * returns: - * int -1 .. nothing found - * >=0 .. index of first true bit found - * exceptions: - * none - */ - -int -__ffsetclrpowerset (ps, bitlength, first_bit) - SET_WORD *ps; - unsigned long bitlength; - int first_bit; -{ - register int bitno; - - if (first_bit >= bitlength) - return -1; - - { - unsigned int words_to_skip = (unsigned) first_bit / SET_WORD_SIZE; - unsigned long cnt = words_to_skip * SET_WORD_SIZE; - SET_WORD *p = ps + words_to_skip; - SET_WORD *endp = ps + BITS_TO_WORDS(bitlength); - SET_WORD c; - first_bit = (unsigned) first_bit % (unsigned) SET_WORD_SIZE; - - c = *p++; - if (c) - { - for (bitno = first_bit; bitno < SET_WORD_SIZE; bitno++) - if (GET_BIT_IN_WORD(c, bitno)) - goto found; - } - cnt += SET_WORD_SIZE; - - while (p < endp) - { - if ((c = *p++)) - { - /* found a bit set .. calculate which */ - for (bitno = 0; bitno < SET_WORD_SIZE; bitno++) - if (GET_BIT_IN_WORD(c, bitno)) - goto found; - } - cnt += SET_WORD_SIZE; - } - return -1; - found: - bitno += cnt; - return bitno >= bitlength ? -1 : bitno; - } -} diff --git a/libchill/ffsetps.c b/libchill/ffsetps.c deleted file mode 100644 index e506db41a9d..00000000000 --- a/libchill/ffsetps.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -extern void __cause_ex1 (char *exname, char *file, int lineno); - -/* - * function __ffsetpowerset - * - * parameters: - * ps powerset - * bitlength length of powerset - * minval set low bound - * filename caller's file name - * lineno caller's line number - * - * returns: - * int enum value of lowest member of powerset - * - * exceptions: - * "empty" if the set is empty - * - * abstract: - * Find first bit set in a powerset and return the corresponding value. - * - */ -long -__ffsetpowerset (ps, bitlength, minval, filename, lineno) - SET_WORD *ps; - unsigned long bitlength; - long minval; - char *filename; - int lineno; -{ - unsigned long bitno; - - if (bitlength <= SET_CHAR_SIZE) - { - SET_CHAR cset = *((SET_CHAR *)ps); - if (cset != 0) - { - /* found a bit set .. calculate which */ - for (bitno = 0; bitno < SET_CHAR_SIZE; bitno++) - if (GET_BIT_IN_CHAR (cset, bitno)) - break; - /* return its index */ - return bitno + minval; - } - } - else if (bitlength <= SET_SHORT_SIZE) - { - SET_SHORT sset = *((SET_SHORT *)ps); - if (sset != 0) - { - /* found a bit set .. calculate which */ - for (bitno = 0; bitno < SET_SHORT_SIZE; bitno++) - if (GET_BIT_IN_SHORT (sset, bitno)) - break; - /* return its index */ - return bitno + minval; - } - } - else /* set composed of array of one or more WORDs */ - { - SET_WORD *p = ps; - SET_WORD *endp = ps + BITS_TO_WORDS(bitlength); - unsigned long cnt; - - /* FIXME: bitorder problems? */ - for (cnt = 0; p < endp; p++, cnt += SET_WORD_SIZE) - { - SET_WORD c = *p; - - if (c) - { - /* found a bit set .. calculate which */ - for (bitno = 0; bitno < SET_WORD_SIZE; bitno++) - if (GET_BIT_IN_WORD (c, bitno)) - break; - /* return its index */ - return cnt + bitno + minval; - } - } - } - /* no bits found - raise exception */ - __cause_ex1 ("empty", filename, lineno); -} diff --git a/libchill/fileio.h b/libchill/fileio.h deleted file mode 100644 index 7d0c1d09901..00000000000 --- a/libchill/fileio.h +++ /dev/null @@ -1,161 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#ifndef _fileio_h_ -#define _fileio_h_ - -#include - -#include "auxtypes.h" -#include "ioerror.h" -#include "iomodes.h" - -#define DIRSEP '/' - -#define TEST_FLAG(Xloc,Flag) (((Xloc)->flags) & (Flag)) -#define SET_FLAG(Xloc,Flag) (Xloc)->flags |= (Flag) -#define CLR_FLAG(Xloc,Flag) (Xloc)->flags = ((Xloc)->flags & ~(Flag)) - -Boolean -__isassociated( Association_Mode* the_assoc, char* file, int line ); - -Boolean -__existing( Association_Mode* the_assoc, char* file, int line ); - -Boolean -__readable( Association_Mode* the_assoc, char* file, int line ); - -Boolean -__writeable( Association_Mode* the_assoc, char* file, int line ); - -Boolean -__indexable( Association_Mode* the_assoc, char* file, int line ); - -Boolean -__sequencible( Association_Mode* the_assoc, char* file, int line ); - -Boolean -__variable( Association_Mode* the_assoc, char* file, int line ); - -typedef signed long int Index_t; - -Association_Mode* -__associate( Association_Mode* the_assoc, - char* the_path, - int the_path_len, - char* the_mode, - int the_mode_len, - char* file, - int line ); - -void -__dissociate( Association_Mode* the_assoc, char* file, int line ); - -void -__create( Association_Mode* the_assoc, char* file, int line ); - -void -__delete( Association_Mode* the_assoc, char* file, int line ); - -void -__modify( Association_Mode* the_assoc, - char* the_path, - int the_path_len, - char* the_mode, - int the_mode_len, - char* file, - int line ); - -void -__connect( void* the_transfer, - Association_Mode* the_assoc, - Usage_Mode the_usage, - Where_Mode the_where, - Boolean with_index, - signed long the_index, - char* file, - int line ); - -void -__disconnect( void* the_transfer, char* file, int line ); - -Association_Mode* -__getassociation( void* the_transfer, char* file, int line ); - -Usage_Mode -__getusage( void* the_transfer, char* file, int line ); - -Boolean -__outoffile( void* the_transfer, char* file, int line ); - -void* -__readrecord( Access_Mode* the_access, - signed long the_index, - char* the_buf_addr, - char* file, - int line ); - -void -__writerecord( Access_Mode* the_access, - signed long the_index, - char* the_val_addr, - unsigned long the_val_len, - char* file, - int line ); - -VarString* -__gettextrecord( Text_Mode* the_text, char* file, int line ); - -unsigned long -__gettextindex( Text_Mode* the_text, char* file, int line ); - -Access_Mode* -__gettextaccess( Text_Mode* the_text, char* file, int line ); - -Boolean -__eoln( Text_Mode* the_text, char* file, int line ); - -void -__settextrecord( Text_Mode* the_text, - VarString* the_text_rec, - char* file, - int line ); - -void -__settextindex( Text_Mode* the_text, - signed long the_text_index, - char* file, - int line ); - -void -__settextaccess( Text_Mode* the_text, - Access_Mode* the_access, - char* file, - int line ); - -#endif diff --git a/libchill/flsetclrps.c b/libchill/flsetclrps.c deleted file mode 100644 index fe86c0c9abf..00000000000 --- a/libchill/flsetclrps.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __flsetclrpowerset - * - * parameters: - * ps powerset - * bitlength length of powerset - * - * returns: - * int -1 .. nothing found - * >= 0 .. index of last set bit - * exceptions: - * none - * - * abstract: - * Find last bit set in a powerset and return the corresponding value - * in *out and clear this bit. Return 0 for no more found, else 1. - * - */ -int -__flsetclrpowerset (ps, bitlength, first_bit) - SET_WORD *ps; - unsigned long bitlength; - int first_bit; -{ - register int bitno; - - { - SET_WORD *p, c; - bitno = bitlength - 1; - if (bitno < first_bit) - return -1; - p = &ps[(unsigned) bitno / SET_WORD_SIZE]; - c = *p; - if (((unsigned) bitlength % SET_WORD_SIZE) != 0) - MASK_UNUSED_WORD_BITS(&c, (unsigned) bitlength % SET_WORD_SIZE); - if (c) - goto found; - else - bitno -= ((unsigned) bitno % SET_WORD_SIZE) + 1; - while (bitno >= first_bit) - { - c = *--p; - if (c) - goto found; - bitno -= SET_WORD_SIZE; - } - return -1; - found: - for (; bitno >= first_bit; bitno--) - { - if (GET_BIT_IN_WORD (c, (unsigned) bitno % SET_WORD_SIZE)) - return bitno; - } - return -1; - } -} diff --git a/libchill/flsetps.c b/libchill/flsetps.c deleted file mode 100644 index 95a0b3bad68..00000000000 --- a/libchill/flsetps.c +++ /dev/null @@ -1,114 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -extern void __cause_ex1 (char *exname, char *file, int lineno); - -/* - * function __flsetpowerset - * - * parameters: - * ps powerset - * bitlength length of powerset - * minval set low bound - * filename caller's file name - * lineno caller's line number - * - * returns: - * int largest enumeration value - * exceptions: - * "empty" if set is empty - * - * abstract: - * Find last bit set in a powerset and return the corresponding value. - * - */ -long -__flsetpowerset (ps, bitlength, minval, filename, lineno) - SET_WORD *ps; - unsigned long bitlength; - long minval; - char *filename; - int lineno; -{ - unsigned long bitno; - - if (bitlength <= SET_CHAR_SIZE) - { - SET_CHAR cset = *((SET_CHAR *)ps); - if (cset != 0) - { - /* found a bit set .. calculate which */ - for (bitno = SET_CHAR_SIZE; bitno >= 1; bitno--) - if (GET_BIT_IN_CHAR (cset, bitno - 1)) - break; - /* return its index */ - return bitno + minval - 1; - } - } - else if (bitlength <= SET_SHORT_SIZE) - { - SET_SHORT sset = *((SET_SHORT *)ps); - if (sset != 0) - { - /* found a bit set .. calculate which */ - for (bitno = SET_SHORT_SIZE; bitno >= 1; bitno--) - if (GET_BIT_IN_SHORT (sset, bitno - 1)) - break; - /* return its index */ - return bitno + minval - 1; - } - } - else /* set composed of array of one or more WORDs */ - { - SET_WORD *endp = ps; - SET_WORD *p = ps + BITS_TO_WORDS(bitlength) - 1; - unsigned long cnt; - - /* FIXME: bitorder problems? */ - for (cnt = ((bitlength - 1) / SET_WORD_SIZE) * SET_WORD_SIZE; - p >= endp; p--, cnt -= SET_WORD_SIZE) - { - SET_WORD c = *p; - if (c) - { - /* found a bit set .. calculate which */ - for (bitno = SET_WORD_SIZE; bitno >= 1; bitno--) - if (GET_BIT_IN_WORD (c, bitno - 1)) - break; - return cnt + bitno + minval - 1; - } - } - } - /* no bits found - raise exception */ - __cause_ex1 ("empty", filename, lineno); -} diff --git a/libchill/format.c b/libchill/format.c deleted file mode 100644 index da05e5edb7e..00000000000 --- a/libchill/format.c +++ /dev/null @@ -1,2194 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include -#include -#include -#include -#include -#include -#if _TEXTIO_DEBUG_ -#include -#endif - -#include "bitstring.h" -#include "auxtypes.h" -#include "iomodes.h" -#include "format.h" -#include "fileio.h" -#include "ioerror.h" - -#define CH_BYTE_MIN 0xffffff80L -#define CH_BYTE_MAX 0x0000007fL -#define CH_UBYTE_MAX 0x000000ffUL -#define CH_INT_MIN 0xffff8000L -#define CH_INT_MAX 0x00007fffL -#define CH_UINT_MAX 0x0000ffffUL -#define CH_LONG_MIN 0x80000000L -#define CH_LONG_MAX 0x7fffffffL -#define CH_ULONG_MAX 0xffffffffUL - -#ifndef M_LN2 -#define M_LN2 0.69314718055994530942 -#endif -#ifndef M_LN10 -#define M_LN10 2.30258509299404568402 -#endif - -#define DMANTDIGS (1 + (int)(DBL_MANT_DIG * M_LN2 / M_LN10)) -#define FMANTDIGS (1 + (int)(FLT_MANT_DIG * M_LN2 / M_LN10)) - -/* float register length */ -#define MAXPREC 40 - -#define LET 0x0001 -#define BIN 0x0002 -#define DEC 0x0004 -#define OCT 0x0008 -#define HEX 0x0010 -#define USC 0x0020 -#define BIL 0x0040 -#define SPC 0x0080 -#define SCS 0x0100 -#define IOC 0x0200 -#define EDC 0x0400 -#define CVC 0x0800 - -#define isDEC(c) ( chartab[(c)] & DEC ) -#define isCVC(c) ( chartab[(c)] & CVC ) -#define isEDC(c) ( chartab[(c)] & EDC ) -#define isIOC(c) ( chartab[(c)] & IOC ) -#define isUSC(c) -#define isXXX(c,XXX) ( chartab[(c)] & XXX ) - -/* - * local definitions - */ - -static -short int chartab[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, SPC, SPC, SPC, SPC, SPC, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - - SPC, IOC, 0, 0, 0, 0, 0, 0, - SCS, SCS, SCS, SCS+IOC, SCS, SCS+IOC, SCS, SCS+IOC, - BIN+OCT+DEC+HEX, BIN+OCT+DEC+HEX, OCT+DEC+HEX, OCT+DEC+HEX, OCT+DEC+HEX, - OCT+DEC+HEX, OCT+DEC+HEX, OCT+DEC+HEX, - DEC+HEX, DEC+HEX, SCS, SCS, SCS+EDC, SCS+IOC, SCS+EDC, IOC, - - 0, LET+HEX+BIL, LET+HEX+BIL+CVC, LET+HEX+BIL+CVC, LET+HEX+BIL, LET+HEX, - LET+HEX+CVC, LET, - LET+BIL+CVC, LET, LET, LET, LET, LET, LET, LET+CVC, - - LET, LET, LET, LET, LET+EDC, LET, LET, LET, - LET+EDC, LET, LET, SCS, 0, SCS, 0, USC, - - 0, LET+HEX, LET+HEX, LET+HEX, LET+HEX, LET+HEX, LET+HEX, LET, - LET, LET, LET, LET, LET, LET, LET, LET, - - LET, LET, LET, LET, LET, LET, LET, LET, - LET, LET, LET, 0, 0, 0, 0, 0 -}; - -typedef enum { - FormatText, FirstPercent, RepFact, ConvClause, EditClause, ClauseEnd, - AfterWidth, FractWidth, FractWidthCont, ExpoWidth, ExpoWidthCont, - ClauseWidth, CatchPadding, LastPercent -} fcsstate_t; - -#define CONVERSIONCODES "CHOBF" -typedef enum { - DefaultConv, HexConv, OctalConv, BinaryConv, ScientConv -} convcode_t; - -static -short int base[4] = { 10, 16, 8, 2 }; - -static -short int dset[4] = { DEC, HEX, OCT, BIN }; - -#define EDITCODES "X<>T" -typedef enum { - SpaceSkip, SkipLeft, SkipRight, Tabulation -} editcode_t; - -#define IOCODES "/+-?!=" -typedef enum { - NextRecord, NextPage, CurrentLine, Prompt, Emit, EndPage -} iocode_t; - -typedef enum { - ConvAct, EditAct, IOAct -} acttype_t; - -typedef enum { - NormalEnd, EndAtParen, TextFailEnd -} formatexit_t; - -static -double ep_1[10] = { - 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9 }; -static -double ep_10[10] = { - 1e0, 1e10, 1e20, 1e30, 1e40, 1e50, 1e60, 1e70, 1e80, 1e90 }; -static -double ep_100 = 1e100; - -/* float register */ -static -unsigned char floatdig[MAXPREC]; - -/* - * global io variables - */ - -static Text_Mode* textptr = NULL; -static VarString* textrecptr; - -static int actual_index; -static int maximum_index; -static int iolist_index; - -static __tmp_IO_list* iolistptr; -static int iolistlen; -static char* iostrptr; -static int iostrlen; - - -static convcode_t convcode; -static editcode_t editcode; -static iocode_t iocode; -static unsigned long repetition; -static Boolean leftadjust; -static Boolean overflowev; -static Boolean dynamicwid; -static Boolean paddingdef; -static char paddingchar; -static Boolean fractiondef; -static unsigned long fractionwidth; -static Boolean exponentdef; -static unsigned long exponentwidth; -static unsigned long clausewidth; -static signed long textindex; - -static -__tmp_IO_enum_table_type bool_tab[] = - { { 0, "FALSE" }, - { 1, "TRUE" }, - { 0 , NULL } }; - -/* - * case insensitive compare: s1 is zero delimited, s2 has n chars - */ -static -int casncmp( const char* s1, const char* s2, int n ) -{ - int res = 0; - while( n-- ) - { - if( (res = toupper(*s1++) - toupper(*s2++)) ) - return res; - } - return *s1; -} - -/* - * skip spaces with blank equal to tab - */ -static -int skip_space( int limit ) -{ - int skipped = 0; - while( actual_index < limit && - (iostrptr[actual_index] == ' ' || iostrptr[actual_index] == '\t' ) ) - { - actual_index++; - skipped++; - } - return skipped; -} - -/* - * skip leading pad characters - */ -static -int skip_pad( int limit ) -{ - int skipped = 0; - while( actual_index < limit && iostrptr[actual_index] == paddingchar ) - { - actual_index++; - skipped++; - } -#if _TEXTIO_DEBUG_ - printf( "skipping '%c' until %d: %d\n", paddingchar, limit, skipped ); -#endif - return skipped; -} - -/* - * backup trailing pad characters - */ -static -int piks_pad( int start, int limit ) -{ - int skipped = 0; - while( start >/***=*/ limit && iostrptr[--start] == paddingchar ) - { - skipped++; - } -#if _TEXTIO_DEBUG_ - printf( "piksing '%c' from %d until %d: %d\n", - paddingchar, start, limit, skipped ); -#endif - return skipped; -} - -/* - * parse an integer - */ -static -int parse_int( int limit, int SET, int base, - unsigned long* valptr, int* signptr ) -{ - int parsed = actual_index; - Boolean digits = False; - unsigned long value = 0; - char curr; - int dig; - - if( actual_index >= limit ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_INT ); - *signptr = +1; - if( iostrptr[actual_index] == '+' ) - actual_index++; - else - if( iostrptr[actual_index] == '-' ) - { *signptr = -1; - actual_index++; - } - - for( ; actual_index < limit; actual_index++ ) - { - curr = iostrptr[actual_index]; - if( curr == '_' ) continue; - if( isXXX(curr,SET) ) - { - digits = True; - dig = curr <= '9' ? curr - '0' : toupper(curr) - 'A' + 10; - if( value > (ULONG_MAX - dig)/base ) - IOEXCEPTION( TEXTFAIL, INT_VAL_OVERFLOW ); - value = value*base + dig; - continue; - } - break; - } - if( !digits ) - IOEXCEPTION( TEXTFAIL, NO_DIGITS_FOR_INT ); - - *valptr = value; -#if _TEXTIO_DEBUG_ - printf( "parsing for int until %d, base %d: %u\n", limit, base, value ); -#endif - return actual_index - parsed; -} - -static -double -make_float( int dexp, int sign ) -{ - double value = atof( floatdig ); -#if _TEXTIO_DEBUG_ - printf( " value = %25.20e, dexp = %d\n", value, dexp ); -#endif - while( dexp >= 100 ) - value *= ep_100, dexp -= 100; - if( dexp >= 10 ) - value *= ep_10[dexp/10], dexp %= 10; - if( dexp > 0 ) - value *= ep_1[dexp]; - - while( dexp <= -100 ) - value /= ep_100, dexp += 100; - if( dexp <= -10 ) - value /= ep_10[-dexp/10], dexp %= 10; - if( dexp < 0 ) - value /= ep_1[-dexp]; - - return sign ? -value : value; -} - -/* %C -> fixed point [+|-]+[.*] */ -static -int parse_fixedpoint( int limit, double* valptr ) -{ - int parsed = actual_index; - Boolean digits = False; - int sdig = 0; - double value; - char curr; - int sign = False; - int expo = 0; - - if( actual_index >= limit ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_FLOAT ); - if( iostrptr[actual_index] == '+' ) - actual_index++; - else - if( iostrptr[actual_index] == '-' ) - { - sign = True; - actual_index++; - } - - floatdig[0] = '.'; - for( ; actual_index < limit; actual_index++ ) - { - curr = iostrptr[actual_index]; - if( ! isDEC(curr) ) - break; - digits = True; - if( sdig < MAXPREC - 1 ) - { - if( sdig || curr != '0' ) - { - floatdig[++sdig] = curr; - expo++; - } - } - else - if( sdig ) - expo++; - } - if( digits && curr == '.' ) - { - actual_index++; - for( ; actual_index < limit; actual_index++ ) - { - curr = iostrptr[actual_index]; - if( !isDEC(curr) ) - break; - if( sdig < MAXPREC - 1 ) - { - if( sdig || curr != '0' ) - floatdig[++sdig] = curr; - else - expo--; - } - } - } - floatdig[++sdig] = '\0'; - - if( !digits ) - IOEXCEPTION( TEXTFAIL, NO_DIGITS_FOR_FLOAT ); - - *valptr = make_float( expo, sign); - return actual_index - parsed; -} - - -typedef enum { - s_sign, s_dig, s_period, s_fraca, s_fracb, s_expo, s_exposign, - s_expoa, s_expob } -scient_t; - -/* %C -> scientific [+|-][.*]E[=|-]+ */ -static -int parse_scientific( int limit, double* valptr, double dmin, double dmax ) -{ - int parsed = actual_index; - int sdig = 0; - char curr; - double value; - int sign = False; - int expo = 0; - int expo_sign = +1; - - scient_t state = s_sign; - - if( actual_index >= limit ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_FLOAT ); - - floatdig[0] = '.'; - for( ; actual_index < limit; actual_index++ ) - { - curr = iostrptr[actual_index]; - switch( state ) - { - case s_sign: - if( iostrptr[actual_index] == '+' ) - { - state = s_dig; - break; - } - if( iostrptr[actual_index] == '-' ) - { - sign = True; - state = s_dig; - break; - } - /* fall through - no break */ - case s_dig: - if( isDEC(curr) && curr > '0' ) - { - floatdig[++sdig] = curr; - state = s_period; - break; - } - IOEXCEPTION( TEXTFAIL, NO_DIGITS_FOR_FLOAT ); - case s_period: - if( curr == '.' ) - { - state = s_fraca; - break; - } - if( curr == 'E' ) - { - state = s_exposign; - break; - } - IOEXCEPTION( TEXTFAIL, NO_EXPONENT ); - case s_fraca: - if( isDEC(curr) ) - { - floatdig[++sdig] = curr; - state = s_fracb; - break; - } - IOEXCEPTION( TEXTFAIL, NO_DIGITS_FOR_FLOAT ); - case s_fracb: - if( isDEC(curr) ) - { - if( sdig < MAXPREC - 1 ) - floatdig[++sdig] = curr; - break; - } - if( curr == 'E' ) - { - state = s_exposign; - break; - } - IOEXCEPTION( TEXTFAIL, NO_EXPONENT ); - case s_exposign: - if( iostrptr[actual_index] == '+' ) - { - state = s_expoa; - break; - } - if( iostrptr[actual_index] == '-' ) - { - expo_sign = -1; - state = s_expoa; - break; - } - case s_expoa: - if( isDEC(curr) ) - { - expo = curr - '0'; - state = s_expob; - break; - } - IOEXCEPTION( TEXTFAIL, NO_EXPONENT ); - case s_expob: - expo = expo*10 + (curr - '0'); - if( expo > 1000 ) - IOEXCEPTION( TEXTFAIL, REAL_OVERFLOW ); - } - } - if( state != s_expob ) - IOEXCEPTION( TEXTFAIL, NO_EXPONENT ); - - expo *= expo_sign; - expo++; - - floatdig[++sdig] = '\0'; - - *valptr = make_float( expo, sign ); - return actual_index - parsed; -} - - -static -int parse_set( int limit, __tmp_IO_enum_table_type* tabptr, - unsigned long* valptr ) -{ - int parsed = actual_index; - char curr; - __tmp_IO_enum_table_type* etptr; - - if( actual_index >= limit ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_SET ); - - curr = iostrptr[actual_index]; - if( isXXX(curr,LET+USC) ) - actual_index++; - else - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_SET ); - - for( ; actual_index < limit; actual_index++ ) - { - if( ! isXXX(iostrptr[actual_index],LET+DEC+USC) ) - break; - } - - if( tabptr ) - while( tabptr->name ) - { - if( !casncmp( tabptr->name, &iostrptr[parsed], actual_index-parsed ) ) - { - *valptr = tabptr->value; -#if _TEXTIO_DEBUG_ - printf( "parsing set value until %d: %u\n", limit, tabptr->value ); -#endif - return actual_index - parsed; - } - tabptr++; - } - IOEXCEPTION( TEXTFAIL, SET_CONVERSION_ERROR ); -} - -static -int parse_bit( int limit, char* bitptr ) -{ - int parsed = actual_index; - int i = 0; - char curr; - - if( actual_index >= limit ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_BOOLS ); - - for( ; actual_index < limit; actual_index++ ) - { - curr = iostrptr[actual_index] - '0'; - if( curr == 0 || curr == 1 ) - /* __setbitinset( i++, bitptr, limit, curr ); */ - __setbitpowerset (bitptr, limit, 0, i++, curr, __FILE__, __LINE__); - else - break; - } - return actual_index - parsed; -} - -static -char* myultoa( unsigned long ul, char* buf, int base ) -{ - char* res = buf; - unsigned long h = ul/base; - unsigned long q = 1; - - while( h >= q ) q *= base; - while( q > 0 ) - { - *buf++ = "0123456789ABCDEF"[ul/q]; - ul %= q; - q /= base; - } - *buf++ = '\0'; - return res; -} - -/* - * convert a bit string from src, bit offset up to len - */ -static -char* bitput( char* dst, char* src, int offset, int len ) -{ - char* res = dst; - int i; - for( i = offset; i < len; i++ ) - { - *dst++ = __inpowerset( i, src, len, 0 ) ? '1' : '0'; - } - return res; -} - -/* - * dround: round decimal register *digptr starting at digit mdigs, - * on carry advance begin of digit sequence and bump exponent - */ -static -char* -dround( char* digptr, int mdigs, int* deptr ) -{ - int carry; -#if _TEXTIO_DEBUG_ - printf( "Rounding from %d\n", mdigs ); -#endif - if( digptr[mdigs] >= 5 ) - { - carry = 1; - while( carry ) - { - digptr[--mdigs]++; - if( digptr[mdigs] >= 10 ) - digptr[mdigs] = 0; - else - carry = 0; - } - } - if( mdigs < 0 ) - { - digptr[--mdigs] = 1; - (*deptr)++; - return digptr - 1; - } - else - return digptr; -} - -/* - * mydtoa: convert val with a precision of mantdigs to a decimal fraction - * first digit is at **fstdiptr, decimal exponent is at *deptr - */ -static -char* -mydtoa( double val, int mantdigs, int* deptr, int* sgnptr ) -{ - double m; - int be; - int de = -1; - int fstdig = 0; - int idig; - char* digptr = floatdig+2; - - floatdig[0] = floatdig[1] = 0; - - if( val < 0 ) - *sgnptr = -1, val = fabs( val ); - else - *sgnptr = +1; - - /* split the value */ - m = frexp( val, &be ) * 10.0; - - /* 5.0 <= m < 10.0 */ - while( be > 0 ) - { - de++; be--; m /= 5.0; - if( m < 1.0 ) - m *= 10.0, de--; - } - while( be < 0 ) - { - de--; be++; m *= 5.0; - if( m >= 10.0 ) - m /= 10.0, de++; - } - - for( idig = 0; idig < mantdigs; idig++ ) - { - digptr[idig] = (int)m; - m = (m - digptr[idig])*10.0; - } - digptr[idig] = (int)m; - - *deptr = de; - return dround( digptr, mantdigs, deptr ); -} - -#define PUT(c) \ - { if( ifst <= ++iprt && iprt <= ilst ) *dst++ = c; } - -static -char* -fixput( char* dst, char* src, - int ifst, int ilst, - int sign, int fst, int lst, - int nid, int nfd ) -{ - char* dstsav = dst; - int idig; - int iprt = 0; - - if( sign < 0 ) - PUT( '-' ); - for( idig = nid; idig >= -nfd; idig-- ) - { - if (idig == -1) - PUT( '.' ); - PUT( idig > fst || lst >= idig ? '0': '0' + *src++ ); - } - return dstsav; -} - -static -char* -sciput( char* dst, char* src, char* expbeg, - int ifst, int ilst, - int sign, int de, int expwid ) -{ - char* dstsav = dst; - int iprt = 0; - int nfd = fractionwidth; - int explen = strlen( expbeg ); - - if( sign < 0 ) - PUT( '-' ); - PUT( '0' + *src++ ); - PUT( '.' ); - - while( nfd-- ) - PUT( '0' + *src++ ); - PUT( 'E' ); - PUT( de >= 0 ? '+' : '-' ); - while( expwid > explen ) - { - PUT( '0' ); - expwid--; - } - while( explen-- ) - PUT( *expbeg++ ); - return dstsav; -} - -/* - * handle dynamic field width - */ -static -get_field_width( void ) -{ - unsigned long width; - unsigned long ulongval; - long longval; - __tmp_IO_list io; - - - if( ++iolist_index > iolistlen ) - IOEXCEPTION( TEXTFAIL, IOLIST_EXHAUSTED ); - - io = *iolistptr++; - - /* must be integer, >= 0 */ - switch( io.__descr ) - { - case __IO_ByteVal: - longval = io.__t.__valbyte; - goto signed_fieldwidth; - case __IO_UByteVal: - width = io.__t.__valubyte; - goto unsigned_fieldwidth; - case __IO_IntVal: - longval = io.__t.__valint; - goto signed_fieldwidth; - case __IO_UIntVal: - width = io.__t.__valuint; - goto unsigned_fieldwidth; - case __IO_LongVal: - longval = io.__t.__vallong; - goto signed_fieldwidth; - case __IO_ULongVal: - width = io.__t.__valulong; - goto unsigned_fieldwidth; - case __IO_ByteLoc: - longval = *(signed char*)io.__t.__locint; - goto signed_fieldwidth; - case __IO_UByteLoc: - width = *(unsigned char*)io.__t.__locint; - goto unsigned_fieldwidth; - case __IO_IntLoc: - longval = *(signed short*)io.__t.__locint; - goto signed_fieldwidth; - case __IO_UIntLoc: - width = *(unsigned short*)io.__t.__locint; - goto unsigned_fieldwidth; - case __IO_LongLoc: - longval = *(signed long*) io.__t.__locint; - goto signed_fieldwidth; - case __IO_ULongLoc: - width = *(unsigned long*)io.__t.__locint; - goto unsigned_fieldwidth; - default: - IOEXCEPTION( TEXTFAIL, NON_INT_FIELD_WIDTH ); - } - -signed_fieldwidth: ; - if( longval < 0 ) - IOEXCEPTION( TEXTFAIL, NEGATIVE_FIELD_WIDTH ); - width = longval; - -unsigned_fieldwidth: ; - return width; -} - - -static -void inpconv( void ) -{ - __tmp_IO_list io; - int width; - int limit; - int skiplim; - int skipped; - int bypass; - int parsed; - Boolean fixedchars; - int fixedlen; - unsigned char curr; - double dval; - float fval; - - __tmp_IO_long lval; - int sign; - unsigned long umin; - unsigned long umax; - signed long smin; - signed long smax; - int ilen; - short unsigned slen; - __tmp_IO_enum_table_type* settabptr; - - while( repetition-- ) - { - if( ++iolist_index > iolistlen ) - IOEXCEPTION( TEXTFAIL, IOLIST_EXHAUSTED ); - - io = *iolistptr++; - - if( dynamicwid ) - width = get_field_width(); - else - width = clausewidth; - - bypass = skipped = 0; - if( width ) - { - if( actual_index + width > iostrlen ) - IOEXCEPTION( TEXTFAIL, NOT_ENOUGH_CHARS ); - - switch(io.__descr) - { - case __IO_CharLoc: - case __IO_CharRangeLoc: - fixedchars = True; - fixedlen = 1; - break; - case __IO_CharStrLoc: - fixedchars = True; - fixedlen = io.__t.__loccharstring.string_length; - break; - default: - fixedchars = False; - break; - } - - if( leftadjust ) - { - skiplim = fixedchars ? actual_index + fixedlen - : actual_index; - bypass = skipped = piks_pad( actual_index + width, skiplim ); - } - else - { - skiplim = fixedchars ? actual_index + width - fixedlen - : actual_index + width; - skipped = skip_pad( skiplim ); - } - width -= skipped; - limit = actual_index + width; - } - else - { /* free format */ - if( paddingdef || !( io.__descr == __IO_CharLoc || - io.__descr == __IO_CharRangeLoc || - io.__descr == __IO_CharStrLoc || - io.__descr == __IO_CharVaryingLoc ) ) - if( paddingchar == ' ' || paddingchar == '\t' ) - skip_space( iostrlen ); - else - skip_pad( iostrlen ); - limit = iostrlen; - } - - switch( io.__descr ) - { - case __IO_ByteLoc: - ilen = 1; - smin = CH_BYTE_MIN; - smax = CH_BYTE_MAX; - goto parse_signed_int; - case __IO_UByteLoc: - ilen = 1; - umin = 0; - umax = CH_UBYTE_MAX; - goto parse_unsigned_int; - case __IO_IntLoc: - ilen = 2; - smin = CH_INT_MIN; - smax = CH_INT_MAX; - goto parse_signed_int; - case __IO_UIntLoc: - ilen = 2; - umin = 0; - umax = CH_UINT_MAX; - goto parse_unsigned_int; - case __IO_LongLoc: - ilen = 4; - smin = CH_LONG_MIN; - smax = CH_LONG_MAX; - goto parse_signed_int; - case __IO_ULongLoc: - ilen = 4; - umin = 0; - umax = CH_ULONG_MAX; - goto parse_unsigned_int; - - case __IO_ByteRangeLoc: - ilen = 1; - smin = io.__t.__locintrange.lower.slong; - smax = io.__t.__locintrange.upper.slong; - goto parse_signed_int; - case __IO_UByteRangeLoc: - ilen = 1; - umin = io.__t.__locintrange.lower.ulong; - umax = io.__t.__locintrange.upper.ulong; - goto parse_unsigned_int; - case __IO_IntRangeLoc: - ilen = 2; - smin = io.__t.__locintrange.lower.slong; - smax = io.__t.__locintrange.upper.slong; - goto parse_signed_int; - case __IO_UIntRangeLoc: - ilen = 2; - umin = io.__t.__locintrange.lower.ulong; - umax = io.__t.__locintrange.upper.ulong; - goto parse_unsigned_int; - case __IO_LongRangeLoc: - ilen = 4; - smin = io.__t.__locintrange.lower.slong; - smax = io.__t.__locintrange.upper.slong; - goto parse_signed_int; - case __IO_ULongRangeLoc: - ilen = 4; - umin = io.__t.__locintrange.lower.ulong; - umax = io.__t.__locintrange.upper.ulong; - goto parse_unsigned_int; - - case __IO_BoolLoc: - ilen = 1; - umin = 0; - umax = 1; - settabptr = bool_tab; - goto parse_set; - case __IO_BoolRangeLoc: - ilen = 1; - umin = io.__t.__locboolrange.lower; - umax = io.__t.__locboolrange.upper; - settabptr = bool_tab; - goto parse_set; - - case __IO_SetLoc: - ilen = io.__t.__locsetrange.length; - settabptr = io.__t.__locsetrange.name_table; - umin = 0; - umax = CH_ULONG_MAX; - goto parse_set; - case __IO_SetRangeLoc: - ilen = io.__t.__locsetrange.length; - settabptr = io.__t.__locsetrange.name_table; - umin = io.__t.__locsetrange.lower; - umax = io.__t.__locsetrange.upper; - goto parse_set; - - case __IO_CharLoc: - umin = 0; - umax = 0xff; - goto parse_char; - case __IO_CharRangeLoc: - umin = io.__t.__loccharrange.lower; - umax = io.__t.__loccharrange.upper; - goto parse_char; - - case __IO_CharVaryingLoc: - if( convcode != DefaultConv ) - IOEXCEPTION( TEXTFAIL, CONVCODE_MODE_MISFIT ); - slen = io.__t.__loccharstring.string_length; - if( (parsed = limit - actual_index) < slen ) - slen = parsed; - else - parsed = slen; - memcpy( io.__t.__loccharstring.string + 2, - &iostrptr[actual_index], parsed ); - MOV2(io.__t.__loccharstring.string,&slen); - actual_index += parsed; - goto check_field_complete; - - - case __IO_CharStrLoc: - if( convcode != DefaultConv ) - IOEXCEPTION( TEXTFAIL, CONVCODE_MODE_MISFIT ); - if( actual_index + io.__t.__loccharstring.string_length > limit ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_CHARS ); - memcpy( io.__t.__loccharstring.string, - &iostrptr[actual_index], - parsed = io.__t.__loccharstring.string_length ); - actual_index += parsed; - goto check_field_complete; - - case __IO_BitStrLoc: - if( convcode != DefaultConv ) - IOEXCEPTION( TEXTFAIL, CONVCODE_MODE_MISFIT ); - parsed = parse_bit( limit, io.__t.__loccharstring.string ); - if( parsed < io.__t.__loccharstring.string_length ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_BOOLS ); - goto check_field_complete; - - case __IO_LongRealLoc: - case __IO_RealLoc: - switch( convcode ) - { - case ScientConv: - parse_scientific( limit, &dval, DBL_MIN, DBL_MAX ); - break; - case DefaultConv: - parse_fixedpoint( limit, &dval ); - break; - default: - IOEXCEPTION( TEXTFAIL, CONVCODE_MODE_MISFIT ); - } - if( io.__descr == __IO_LongRealLoc ) - memcpy( io.__t.__loclongreal, &dval, sizeof(double) ); - else - { - fval = (float)dval; - MOV4(io.__t.__locreal,&fval); - } - goto check_field_complete; - default: - IOEXCEPTION( TEXTFAIL, INVALID_IO_LIST ); - } - - -parse_signed_int: ; - if( convcode == ScientConv ) - IOEXCEPTION( TEXTFAIL, CONVCODE_MODE_MISFIT ); - parsed = parse_int( limit, dset[convcode], base[convcode], - &lval.ulong, &sign ); - if( sign < 0 ) - { - if( lval.ulong > (unsigned long)CH_LONG_MIN ) - IOEXCEPTION( TEXTFAIL, INTEGER_RANGE_ERROR ); - lval.slong = -lval.ulong; - } - else - { - /* not needed: lval.slong = lval.ulong; */ - /* Hack: sign extension for bin/oct/dec if no sign present */ - if( convcode != DefaultConv && lval.ulong & (1 << (ilen*8-1)) ) - { - if( ilen < 4 ) - lval.ulong |= 0xFFFFFFFF << ilen*8; - } - else - if( lval.ulong > (unsigned long)CH_LONG_MAX ) - IOEXCEPTION( TEXTFAIL, INTEGER_RANGE_ERROR ); - } - if( lval.slong < smin || smax < lval.slong ) - IOEXCEPTION( TEXTFAIL, INTEGER_RANGE_ERROR ); - goto store_int; - -parse_unsigned_int: ; - if( convcode == ScientConv ) - IOEXCEPTION( TEXTFAIL, CONVCODE_MODE_MISFIT ); - parsed = parse_int( limit, dset[convcode], base[convcode], - &lval.ulong, &sign ); - if( sign < 0 || lval.ulong < umin || umax < lval.ulong ) - IOEXCEPTION( TEXTFAIL, INTEGER_RANGE_ERROR ); - goto store_int; - -parse_set: ; - if( convcode != DefaultConv ) - IOEXCEPTION( TEXTFAIL, CONVCODE_MODE_MISFIT ); - parsed = parse_set( limit, settabptr, &lval.ulong ); - if( lval.ulong < umin || umax < lval.ulong ) - IOEXCEPTION( TEXTFAIL, SET_RANGE_ERROR ); - goto store_int; - -store_int: ; - switch( ilen ) - { - case 1: - *(unsigned char*)io.__t.__locint = lval.ulong; - break; - case 2: - slen = lval.ulong; - MOV2(io.__t.__locint,&slen); - break; - case 4: - MOV4(io.__t.__locint,&lval.ulong); - break; - default: - IOEXCEPTION( TEXTFAIL, INTERNAL_ERROR ); - } - goto check_field_complete; - -parse_char: ; - if( convcode != DefaultConv ) - IOEXCEPTION( TEXTFAIL, CONVCODE_MODE_MISFIT ); - if( actual_index >= limit ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_CHARS ); - curr = iostrptr[actual_index++]; - parsed = 1; - if( curr < umin || umax < curr ) - IOEXCEPTION( TEXTFAIL, CHAR_RANGE_ERROR ); - *io.__t.__locchar = curr; - goto check_field_complete; - -check_field_complete: ; - actual_index += bypass; - if( width > parsed ) - IOEXCEPTION( TEXTFAIL, INVALID_CHAR ); - } -} - -static -void inpedit( void ) -{ - int nchars; - - if( dynamicwid ) - clausewidth = get_field_width(); - - switch( editcode ) - { - case SpaceSkip: - nchars = repetition*clausewidth; - if( actual_index + nchars > iostrlen ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_EDIT ); - for( ; nchars ; nchars-- ) - if( iostrptr[actual_index++] != ' ' ) - IOEXCEPTION( TEXTFAIL, NO_SPACE_TO_SKIP ); - break; - - case SkipLeft: - nchars = repetition*clausewidth; - if( (actual_index -= nchars) < 0 ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_EDIT ); - break; - - case SkipRight: - nchars = repetition*clausewidth; - if( (actual_index += nchars) > iostrlen ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_EDIT ); - break; - - case Tabulation: - if( (actual_index = clausewidth) > iostrlen ) - IOEXCEPTION( TEXTFAIL, TEXT_LOC_OVERFLOW ); - break; - } -} - -static -void outconv( void ) -{ - unsigned long width; - char itembuf[33]; - unsigned long ulongval; - long longval; - __tmp_IO_list io; - __tmp_IO_enum_table_type* etptr; - char* itembeg; - unsigned long itemlen; - double doubleval; - int de; - int sign; - int mantdigs; - int nid; - int nfd; - char* expbeg; - int explen; - unsigned int expwid; - - while( repetition-- ) - { - if( ++iolist_index > iolistlen ) - IOEXCEPTION( TEXTFAIL, IOLIST_EXHAUSTED ); - - io = *iolistptr++; - width = dynamicwid ? get_field_width() : clausewidth; - - switch( convcode ) - { - case DefaultConv: - switch( io.__descr ) - { - case __IO_ByteVal: - longval = io.__t.__valbyte; - goto signed_conversion; - case __IO_UByteVal: - ulongval = io.__t.__valubyte; - goto unsigned_conversion; - case __IO_IntVal: - longval = io.__t.__valint; - goto signed_conversion; - case __IO_UIntVal: - ulongval = io.__t.__valuint; - goto unsigned_conversion; - case __IO_LongVal: - longval = io.__t.__vallong; - goto signed_conversion; - case __IO_ULongVal: - ulongval = io.__t.__valulong; - goto unsigned_conversion; - - case __IO_BoolVal: - switch( io.__t.__valbool ) - { - case 0: - itembeg = "FALSE"; - itemlen = 5; - goto move_item; - case 1: - itembeg = "TRUE"; - itemlen = 4; - goto move_item; - default: - IOEXCEPTION( TEXTFAIL, BOOL_CONVERSION_ERROR ); - } - - case __IO_CharVal: - itembeg = &io.__t.__valchar; - itemlen = 1; - goto move_item; - - case __IO_SetVal: - /* locate name string using set mode name table */ - itembeg = 0; - - if( (etptr = io.__t.__valset.name_table) ) - while( etptr->name ) - { - if( etptr->value == io.__t.__valset.value ) - { - itembeg = etptr->name; - itemlen = strlen( itembeg ); - goto move_item; - } - etptr++; - } - IOEXCEPTION( TEXTFAIL, SET_CONVERSION_ERROR ); - - case __IO_CharVaryingLoc: - { - unsigned short l; - itembeg = (char*)io.__t.__loccharstring.string; - MOV2(&l,itembeg); - itembeg += 2; - itemlen = l; - goto move_item; - } - - case __IO_CharStrLoc: - itembeg = io.__t.__loccharstring.string; - itemlen = io.__t.__loccharstring.string_length; - goto move_item; - - case __IO_BitStrLoc: - itemlen = io.__t.__loccharstring.string_length; - itembeg = io.__t.__loccharstring.string; - - if( !width ) - width = itemlen; - - /* check remaining space */ - if( actual_index + width > iostrlen ) - IOEXCEPTION( TEXTFAIL, TEXT_LOC_OVERFLOW ); - - if( itemlen == width ) - bitput( iostrptr + actual_index, itembeg, 0, itemlen ); - else - if( itemlen < width ) - if( leftadjust ) - memset( bitput( iostrptr + actual_index, itembeg, 0, itemlen ) - + itemlen, - paddingchar, width - itemlen ); - else - bitput( memset( iostrptr + actual_index, - paddingchar, width - itemlen ) - + width - itemlen, - itembeg, itemlen - width, itemlen ); - else - if( overflowev ) - memset( iostrptr + actual_index, '*', width ); - else - if( leftadjust ) - bitput( iostrptr + actual_index, itembeg, 0, width ); - else - bitput( iostrptr + actual_index, itembeg, - itemlen - width, itemlen ); - goto adjust_index; - - case __IO_RealVal: - doubleval = io.__t.__valreal; - mantdigs = FMANTDIGS; - goto fixed_point_conversion; - case __IO_LongRealVal: - doubleval = io.__t.__vallongreal; - mantdigs = DBL_DIG; - goto fixed_point_conversion; - break; - - default: - IOEXCEPTION( TEXTFAIL, INVALID_IO_LIST ); - } - - case HexConv: - case OctalConv: - case BinaryConv: - switch( io.__descr ) - { - case __IO_ByteVal: - case __IO_UByteVal: - ulongval = io.__t.__valubyte; - break; - case __IO_IntVal: - case __IO_UIntVal: - ulongval = io.__t.__valuint; - break; - case __IO_LongVal: - case __IO_ULongVal: - ulongval = io.__t.__valulong; - break; - default: - IOEXCEPTION( TEXTFAIL, CONVCODE_MODE_MISFIT ); - } - itembeg = myultoa( ulongval, itembuf, base[convcode] ); - itemlen = strlen( itembeg ); - goto move_item; - - case ScientConv: - switch( io.__descr ) - { - case __IO_RealVal: - doubleval = io.__t.__valreal; - mantdigs = FMANTDIGS; - if( !fractiondef ) - fractionwidth = FMANTDIGS - 1; - goto scientific_conversion; - case __IO_LongRealVal: - doubleval = io.__t.__vallongreal; - mantdigs = DBL_DIG; - if( !fractiondef ) - fractionwidth = DBL_DIG - 1; - goto scientific_conversion; - break; - default: - IOEXCEPTION( TEXTFAIL, CONVCODE_MODE_MISFIT ); - } - } - -fixed_point_conversion: ; - itembeg = mydtoa( doubleval, mantdigs, &de, &sign ); - if( fractiondef && de >= -fractionwidth - 1 - && -fractionwidth > de - mantdigs ) - itembeg = dround( itembeg, de + fractionwidth + 1, &de ); - - nid = de >= 0 ? de : 0; - nfd = fractiondef ? fractionwidth - : ( de + 1 - mantdigs > 0 ? 0 : mantdigs - de - 1 ); - itemlen = ( sign < 0 ? 1 : 0 ) + 2 + nid + nfd; -#if _TEXTIO_DEBUG_ -printf( "fixed item length %d\n", itemlen ); -#endif - if( !width ) - width = itemlen; -#if _TEXTIO_DEBUG_ -printf( "fixed item width %d\n", width ); -#endif - /* check remaining space */ - if( actual_index + width > iostrlen ) - IOEXCEPTION( TEXTFAIL, TEXT_LOC_OVERFLOW ); - - if( itemlen == width ) - fixput( iostrptr + actual_index, itembeg, - 1, itemlen, sign, de, de - mantdigs, nid, nfd ); - else - if( itemlen < width ) - if( leftadjust ) - memset( fixput( iostrptr + actual_index, itembeg, - 1, itemlen, sign, de, de - mantdigs, nid, nfd ) - + itemlen, - paddingchar, width - itemlen ); - else - fixput( memset( iostrptr + actual_index, - paddingchar, width - itemlen ) - + width - itemlen, - itembeg, 1, itemlen, sign, de, de - mantdigs, nid, nfd ); - else - if( overflowev ) - memset( iostrptr + actual_index, '*', width ); - else - if( leftadjust ) - fixput( iostrptr + actual_index, itembeg, - 1, width, sign, de, de - mantdigs, nid, nfd ); - else - fixput( iostrptr + actual_index, itembeg, - itemlen - width + 1, itemlen, - sign, de, de - mantdigs, nid, nfd ); - goto adjust_index; - -scientific_conversion: ; - itembeg = mydtoa( doubleval, mantdigs, &de, &sign ); - - if( fractiondef && fractionwidth < mantdigs ) - itembeg = dround( itembeg, fractionwidth + 1, &de ); - - expbeg = myultoa( abs(de), itembuf, 10 ); - explen = strlen( expbeg ); - - expwid = explen > exponentwidth ? explen : exponentwidth; - itemlen = ( sign < 0 ? 1 : 0 ) + 2 + fractionwidth + 2 + expwid; -#if _TEXTIO_DEBUG_ -printf( "floating item length %d, fraction %d, exponent %d\n", - itemlen, fractionwidth, expwid ); -#endif - if( width == 0 ) - width = itemlen; -#if _TEXTIO_DEBUG_ -printf( "floating item width %d\n", width ); -#endif - /* check remaining space */ - if( actual_index + width > iostrlen ) - IOEXCEPTION( TEXTFAIL, TEXT_LOC_OVERFLOW ); - - if( itemlen == width ) - sciput( iostrptr + actual_index, itembeg, expbeg, - 1, itemlen, sign, de, expwid ); - else - if( itemlen < width ) - if( leftadjust ) - memset( sciput( iostrptr + actual_index, itembeg, expbeg, - 1, itemlen, sign, de, expwid ) - + itemlen, - paddingchar, width - itemlen ); - else - sciput( memset( iostrptr + actual_index, - paddingchar, width - itemlen ) - + width - itemlen, - itembeg, expbeg, 1, itemlen, sign, de, expwid ); - else - if( overflowev ) - memset( iostrptr + actual_index, '*', width ); - else - if( leftadjust ) - sciput( iostrptr + actual_index, itembeg, expbeg, - 1, width, sign, de, expwid ); - else - sciput( iostrptr + actual_index, itembeg, expbeg, - itemlen - width + 1, itemlen, - sign, de, expwid ); - goto adjust_index; - -signed_conversion: ; - if( longval >= 0 ) - itembeg = myultoa( longval, itembuf, 10 ); - else - { - itembuf[0] = '-'; - myultoa( -longval, itembuf+1, 10 ); - itembeg = itembuf; - } - itemlen = strlen( itembeg ); - goto move_item; - -unsigned_conversion: ; - itembeg = myultoa( ulongval, itembuf, 10 ); - itemlen = strlen( itembeg ); - goto move_item; - -move_item: ; - if( !width ) - width = itemlen; - - /* check remaining space */ - if( actual_index + width > iostrlen ) - IOEXCEPTION( TEXTFAIL, TEXT_LOC_OVERFLOW ); - - /* move item, filling or truncating or overflow-evidencing */ - if( itemlen == width ) - memcpy( iostrptr + actual_index, itembeg, itemlen ); - else - if( itemlen < width ) - if( leftadjust ) - memset( memcpy( iostrptr + actual_index, itembeg, itemlen ) - + itemlen, - paddingchar, width - itemlen ); - else - memcpy( memset( iostrptr + actual_index, - paddingchar, width - itemlen ) - + width - itemlen, - itembeg, itemlen ); - else - if( overflowev ) - memset( iostrptr + actual_index, '*', width ); - else - if( leftadjust ) - memcpy( iostrptr + actual_index, itembeg, width ); - else - memcpy( iostrptr + actual_index, - itembeg + itemlen - width, width ); - - /* - * adjust. - */ -adjust_index: ; - actual_index += width; - if( actual_index > maximum_index ) - maximum_index = actual_index; - } -} - -static -void outedit( void ) -{ - int nchars; - - if( dynamicwid ) - clausewidth = get_field_width(); - switch( editcode ) - { - case SpaceSkip: - nchars = repetition*clausewidth; - if( actual_index + nchars > iostrlen ) - IOEXCEPTION( TEXTFAIL, TEXT_LOC_OVERFLOW ); - memset( iostrptr + actual_index, ' ', nchars ); - actual_index += nchars; - if( actual_index > maximum_index ) - maximum_index = actual_index; - break; - - case SkipLeft: - nchars = repetition*clausewidth; - if( actual_index - nchars < 0 ) - IOEXCEPTION( TEXTFAIL, TEXT_LOC_OVERFLOW ); - actual_index -= nchars; - break; - - case SkipRight: - nchars = repetition*clausewidth; - if( actual_index + nchars > iostrlen ) - IOEXCEPTION( TEXTFAIL, TEXT_LOC_OVERFLOW ); - actual_index += nchars; - if( actual_index > maximum_index ) - { - memset( iostrptr + maximum_index, ' ', actual_index - maximum_index ); - maximum_index = actual_index; - } - break; - - case Tabulation: - if( clausewidth >= iostrlen ) - IOEXCEPTION( TEXTFAIL, TEXT_LOC_OVERFLOW ); - actual_index = clausewidth; - if( actual_index > maximum_index ) - { - memset( iostrptr + maximum_index, ' ', actual_index - maximum_index ); - maximum_index = actual_index; - } - break; - } -} - - -static -void inpioctrl( void ) -{ - unsigned short hlen; - if( !textptr ) - IOEXCEPTION( TEXTFAIL, IO_CONTROL_NOT_VALID ); - if( iocode != EndPage ) - { - jmp_buf ioerror; - unsigned long info; - - if (textptr->access_sub->association) - { - if( (info = setjmp( ioerror )) ) - IOEXCEPTION( info>>16, info & 0xffff ); - while( repetition-- ) - { - __readrecord( textptr->access_sub, textindex, - (char*)textptr->text_record, - __FILE__, __LINE__ ); - actual_index = 0; - MOV2(&hlen,&textptr->text_record->len); - iostrlen = hlen; - } - } - else - IOEXCEPTION (NOTCONNECTED, IS_NOT_CONNECTED); - } -} - -/* specify pre/post in the order "/+-?!" */ -static -char* pre_char = "\0\f\0\r\0"; /* Z.200: "\n\f\0\n\0" */ -static -char* post_char = "\n\n\r\0\0"; /* Z.200: "\r\r\r\0\0" */ - -static -void outioctrl( void ) -{ - Association_Mode* assoc; - unsigned short hlen; - if( !textptr ) - IOEXCEPTION( TEXTFAIL, IO_CONTROL_NOT_VALID ); - if( (assoc = textptr->access_sub->association) ) - { - jmp_buf ioerror; - unsigned long info; - if( (info = setjmp( ioerror )) ) - IOEXCEPTION( info>>16, info & 0xffff ); - - while( repetition-- ) - { - if( iocode != EndPage ) - { - if( TEST_FLAG( assoc, IO_FIRSTLINE ) ) - { - CLR_FLAG( assoc, IO_FIRSTLINE ); - assoc->ctl_pre = '\0'; - } - else - { - if( TEST_FLAG( assoc, IO_FORCE_PAGE ) ) - { - CLR_FLAG( assoc, IO_FORCE_PAGE ); - assoc->ctl_pre = '\f'; - } - else - assoc->ctl_pre = pre_char[iocode]; - } - assoc->ctl_post = post_char[iocode]; - hlen = actual_index; - MOV2(&textptr->text_record->len,&hlen); - __writerecord( textptr->access_sub, textindex, - (char*)textptr->text_record, - textptr->text_record->len, - __FILE__, __LINE__ ); - hlen = actual_index = 0; - MOV2(&textptr->text_record->len,&hlen); - } - else if( !TEST_FLAG( textptr, IO_FIRSTLINE ) ) - SET_FLAG( textptr, IO_FORCE_PAGE ); - assoc->ctl_pre = assoc->ctl_post = '\0'; - } - } - else - IOEXCEPTION (NOTCONNECTED, IS_NOT_CONNECTED); -} - -static -void (**actionptr)( void ); -static -void (*readactions[])( void ) = { inpconv, inpedit, inpioctrl }; -static -void (*writeactions[])( void ) = { outconv, outedit, outioctrl }; - - -static -void emitstr( char* begtxt, char* endtxt ) -{ - char c; - int nchars = endtxt - begtxt; - if( actual_index + nchars > iostrlen ) - IOEXCEPTION( TEXTFAIL, TEXT_LOC_OVERFLOW ); - memcpy( iostrptr + actual_index, begtxt, nchars ); - actual_index += nchars; - if( actual_index > maximum_index ) - maximum_index = actual_index; -} - -static -void scanstr( char* begtxt, char* endtxt ) -{ - int nchars = endtxt - begtxt; - if( actual_index + nchars > iostrlen ) - IOEXCEPTION( TEXTFAIL, NO_CHARS_FOR_TEXT ); - if( strncmp( iostrptr + actual_index, begtxt, nchars ) ) - IOEXCEPTION( TEXTFAIL, FORMAT_TEXT_MISMATCH ); - actual_index += nchars; -} - -void (*ftextptr) ( char*, char* ); - -static -formatexit_t scanformcont( char* fcs, int len, - char** fcsptr, int* lenptr ) -{ - char curr; - fcsstate_t state = FormatText; - unsigned long buf; - int dig; - acttype_t action; - char* begtxt = fcs; - - while( len-- ) - { - curr = *fcs++; - switch( state ) - { - case FormatText: - if( curr == '%' ) - { - ftextptr( begtxt, fcs-1 ); - state = FirstPercent; - } - break; - -after_first_percent: ; - case FirstPercent: - if( curr == '%' ) - { - state = FormatText; - begtxt = fcs - 1; - break; - } - if( curr == ')' ) - { - *lenptr = len; - *fcsptr = fcs; - return EndAtParen; - } - if( isDEC(curr) ) - { - state = RepFact; - repetition = curr - '0'; - break; - } - - repetition = 1; - -test_for_control_codes: ; - if( isCVC(curr) ) - { - state = ConvClause; - action = ConvAct; - convcode = strchr( CONVERSIONCODES, curr ) - CONVERSIONCODES; - leftadjust = False; - overflowev = False; - dynamicwid = False; - paddingdef = False; - paddingchar = ' '; - fractiondef = False; - /* fractionwidth = 0; default depends on mode ! */ - exponentdef = False; - exponentwidth = 3; - clausewidth = 0; - break; - } - if( isEDC(curr) ) - { - state = EditClause; - action = EditAct; - editcode = strchr( EDITCODES, curr ) - EDITCODES; - dynamicwid = False; - clausewidth = editcode == Tabulation ? 0 : 1; - break; - } - if( isIOC(curr) ) - { - state = ClauseEnd; - action = IOAct; - iocode = strchr( IOCODES, curr ) - IOCODES; - break; - } - if( curr == '(' ) - { - unsigned long times = repetition; - int cntlen; - char* cntfcs; - while( times-- ) - { - if( scanformcont( fcs, len, &cntfcs, &cntlen ) != EndAtParen ) - IOEXCEPTION( TEXTFAIL, UNMATCHED_OPENING_PAREN ); - } - fcs = cntfcs; - len = cntlen; - state = FormatText; - begtxt = fcs; - break; - } - IOEXCEPTION( TEXTFAIL, BAD_FORMAT_SPEC_CHAR ); - - case RepFact: - if( isDEC(curr) ) - { - dig = curr - '0'; - if( repetition > (ULONG_MAX - dig)/10 ) - IOEXCEPTION( TEXTFAIL, REPFAC_OVERFLOW ); - repetition = repetition*10 + dig; - break; - } - goto test_for_control_codes; - - case ConvClause: - if( isDEC(curr) ) - { - state = ClauseWidth; - clausewidth = curr - '0'; - break; - } - if( curr == 'L' ) - { - if( leftadjust ) - IOEXCEPTION( TEXTFAIL, DUPLICATE_QUALIFIER ); - leftadjust = True; - break; - } - if( curr == 'E' ) - { - if( overflowev ) - IOEXCEPTION( TEXTFAIL, DUPLICATE_QUALIFIER ); - overflowev = True; - break; - } - if( curr == 'P' ) - { - if( paddingdef ) - IOEXCEPTION( TEXTFAIL, DUPLICATE_QUALIFIER ); - paddingdef = True; - state = CatchPadding; - break; - } - -test_for_variable_width: ; - if( curr == 'V' ) - { - dynamicwid = True; - state = AfterWidth; - break; - } - goto test_for_fraction_width; - - case ClauseWidth: - if( isDEC(curr) ) - { - dig = curr - '0'; - if( clausewidth > (ULONG_MAX - dig)/10 ) - IOEXCEPTION( TEXTFAIL, CLAUSE_WIDTH_OVERFLOW ); - clausewidth = clausewidth*10 + dig; - break; - } - /* fall through */ - -test_for_fraction_width: ; - case AfterWidth: - if( curr == '.' ) - { - if( convcode != DefaultConv && convcode != ScientConv ) - IOEXCEPTION( TEXTFAIL, NO_FRACTION ); - fractiondef = True; - state = FractWidth; - break; - } - goto test_for_exponent_width; - - case FractWidth: - if( isDEC( curr ) ) - { - state = FractWidthCont; - fractionwidth = curr - '0'; - break; - } - else - IOEXCEPTION( TEXTFAIL, NO_FRACTION_WIDTH ); - - case FractWidthCont: - if( isDEC( curr ) ) - { - dig = curr - '0'; - if( fractionwidth > (ULONG_MAX - dig)/10 ) - IOEXCEPTION( TEXTFAIL, FRACTION_WIDTH_OVERFLOW ); - fractionwidth = fractionwidth*10 + dig; - break; - } - -test_for_exponent_width: ; - if( curr == ':' ) - { - if( convcode != ScientConv ) - IOEXCEPTION( TEXTFAIL, NO_EXPONENT ); - exponentdef = True; - state = ExpoWidth; - break; - } - goto test_for_final_percent; - - case ExpoWidth: - if( isDEC( curr ) ) - { - state = ExpoWidthCont; - exponentwidth = curr - '0'; - break; - } - else - IOEXCEPTION( TEXTFAIL, NO_EXPONENT_WIDTH ); - - case ExpoWidthCont: - if( isDEC( curr ) ) - { - dig = curr - '0'; - if( exponentwidth > (ULONG_MAX - dig)/10 ) - IOEXCEPTION( TEXTFAIL, EXPONENT_WIDTH_OVERFLOW ); - exponentwidth = exponentwidth*10 + dig; - break; - } - /* fall through */ - -test_for_final_percent: ; - case ClauseEnd: - if( curr == '%' ) - { - state = LastPercent; - break; - } - - do_the_action: ; - actionptr[action](); - state = FormatText; - begtxt = fcs - 1; - break; - - case CatchPadding: - paddingchar = curr; - state = ConvClause; - break; - - case EditClause: - if( isDEC(curr) ) - { - state = ClauseWidth; - clausewidth = curr - '0'; - break; - } - goto test_for_variable_width; - - case LastPercent: - actionptr[action](); - if( curr == '.' ) - { - state = FormatText; - begtxt = fcs; - break; - } - goto after_first_percent; - - default: - IOEXCEPTION( TEXTFAIL, INTERNAL_ERROR ); - } - } - switch( state ) - { - case FormatText: - ftextptr( begtxt, fcs ); - break; - case FirstPercent: - case LastPercent: - case RepFact: - case FractWidth: - case ExpoWidth: - IOEXCEPTION( TEXTFAIL, BAD_FORMAT_SPEC_CHAR ); - case CatchPadding: - IOEXCEPTION( TEXTFAIL, NO_PAD_CHAR ); - default: - actionptr[action](); - } - - *lenptr = len; - *fcsptr = fcs; - return NormalEnd; -} - -static -void -__read_format (char* fmtptr, - int fmtlen, - __tmp_IO_list* ioptr, - int iolen, - void* inpptr, - int inplen ) -{ - formatexit_t res; - unsigned short l; - - iostrptr = (char*)inpptr; - iostrlen = inplen; - - /* initialisation */ - iolist_index = 0; - iolistptr = ioptr; - iolistlen = iolen; - - actionptr = readactions; - ftextptr = scanstr; - - if( (res = scanformcont( fmtptr, fmtlen, &fmtptr, &fmtlen )) == EndAtParen ) - IOEXCEPTION( TEXTFAIL, UNMATCHED_CLOSING_PAREN ); - - if( iolist_index != iolen ) - IOEXCEPTION( TEXTFAIL, EXCESS_IOLIST_ELEMENTS ); - - return; -} - -void -__readtext_f( Text_Mode* the_text_loc, - signed long the_index, - char* fmtptr, - int fmtlen, - __tmp_IO_list* ioptr, - int iolen, - char* file, - int line ) -{ - unsigned long info; - - if( (info = setjmp( __io_exception )) ) - CHILLEXCEPTION( file, line, info>>16, info & 0xffff ); - - textptr = the_text_loc; - textrecptr = textptr->text_record; - actual_index = textptr->actual_index; - textindex = the_index; - - __read_format ( fmtptr, fmtlen, ioptr, iolen, - (char*)textrecptr + 2, textptr->text_record->len ); - textptr->actual_index = actual_index; -} - -void -__readtext_s( void* string_ptr, - int string_len, - char* fmtptr, - int fmtlen, - __tmp_IO_list* ioptr, - int iolen, - char* file, - int line ) -{ - int info; - - if( (info = setjmp( __io_exception )) ) - CHILLEXCEPTION( file, line, info>>16, info & 0xffff ); - - textptr = NULL; - actual_index = 0; - - __read_format ( fmtptr, fmtlen, ioptr, iolen, string_ptr, string_len ); -} - -static -void -__write_format (char* fmtptr, - int fmtlen, - __tmp_IO_list* ioptr, - int iolen, - void* outptr, - int outlen ) -{ - formatexit_t res; - unsigned short l; - - /* initialisation */ - maximum_index = actual_index; - iolist_index = 0; - - actionptr = writeactions; - ftextptr = emitstr; - iolistptr = ioptr; - iolistlen = iolen; - iostrptr = (char *)outptr + 2; - iostrlen = outlen; - - if( (res = scanformcont( fmtptr, fmtlen, &fmtptr, &fmtlen )) == EndAtParen ) - IOEXCEPTION( TEXTFAIL, UNMATCHED_CLOSING_PAREN ); - - if( iolist_index != iolen ) - IOEXCEPTION( TEXTFAIL, EXCESS_IOLIST_ELEMENTS ); - - /* set length of output string */ -#if _TEXTIO_DEBUG_ - printf( "maximum index = %d\n", maximum_index ); -#endif - l = maximum_index; - MOV2(outptr,&l); - return; -} - -void -__writetext_f( Text_Mode* the_text_loc, - signed long the_index, - char* fmtptr, - int fmtlen, - __tmp_IO_list* ioptr, - int iolen, - char* file, - int line ) -{ - int info; - - if( (info = setjmp( __io_exception )) ) - CHILLEXCEPTION( file, line, info>>16, info & 0xffff ); - - textptr = the_text_loc; - textrecptr = the_text_loc->text_record; - textindex = the_index; - iolistptr = ioptr; - iolistlen = iolen; - - actual_index = textptr->actual_index; - __write_format ( fmtptr, fmtlen, ioptr, iolen, - textrecptr, textptr->access_sub->reclength - 2 ); - textptr->actual_index = actual_index; -} - -void -__writetext_s( void* string_ptr, - int string_len, - char* fmtptr, - int fmtlen, - __tmp_IO_list* ioptr, - int iolen, - char* file, - int line ) -{ - int info; - - if( (info = setjmp( __io_exception )) ) - CHILLEXCEPTION( file, line, info>>16, info & 0xffff ); - - textptr = NULL; - actual_index = 0; - - __write_format ( fmtptr, fmtlen, ioptr, iolen, string_ptr, string_len ); -} diff --git a/libchill/format.h b/libchill/format.h deleted file mode 100644 index d70cfaa79b7..00000000000 --- a/libchill/format.h +++ /dev/null @@ -1,79 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#ifndef _format_h_ -#define _format_h_ - -#include "iomodes.h" -#include "fileio.h" - -extern Text_Mode __stdin_text; -extern Text_Mode __stdout_text; -extern Text_Mode __stderr_text; - -void -__readtext_f( Text_Mode* TextLoc, - signed long Index, - char* fmtptr, - int fmtlen, - __tmp_IO_list* ioptr, - int iolen, - char* file, - int line ); - -void -__readtext_s( void* string_ptr, - int string_len, - char* fmtptr, - int fmtlen, - __tmp_IO_list* ioptr, - int iolen, - char* file, - int line ); - -void -__writetext_f( Text_Mode* Text_Loc, - signed long Index, - char* fmtptr, - int fmtlen, - __tmp_IO_list* ioptr, - int iolen, - char* file, - int line ); - -void -__writetext_s( void* string_ptr, - int string_len, - char* fmtptr, - int fmtlen, - __tmp_IO_list* ioptr, - int iolen, - char* file, - int line ); - -#endif _format_h_ diff --git a/libchill/getassoc.c b/libchill/getassoc.c deleted file mode 100644 index 47ee5154f5c..00000000000 --- a/libchill/getassoc.c +++ /dev/null @@ -1,45 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Association_Mode* -__getassociation( void* the_transfer, char* file, int line ) -{ - Access_Mode* the_access; - - if( !the_transfer ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ACCESS ); - - if( TEST_FLAG((Text_Mode*)the_transfer, IO_TEXTLOCATION )) - the_access = ((Text_Mode*)the_transfer)->access_sub; - else - the_access = (Access_Mode*)the_transfer; - - return the_access->association; -} diff --git a/libchill/gettextaccess.c b/libchill/gettextaccess.c deleted file mode 100644 index 7094e2bcae4..00000000000 --- a/libchill/gettextaccess.c +++ /dev/null @@ -1,39 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Access_Mode* -__gettextaccess( Text_Mode* the_text, char* file, int line ) -{ - if( !the_text ) - CHILLEXCEPTION( file, line, EMPTY, NULL_TEXT ); - - return the_text->access_sub; -} - diff --git a/libchill/gettextindex.c b/libchill/gettextindex.c deleted file mode 100644 index f6f442b9c36..00000000000 --- a/libchill/gettextindex.c +++ /dev/null @@ -1,38 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -unsigned long -__gettextindex( Text_Mode* the_text, char* file, int line ) -{ - if( !the_text ) - CHILLEXCEPTION( file, line, EMPTY, NULL_TEXT ); - - return the_text->actual_index; -} diff --git a/libchill/gettextrecord.c b/libchill/gettextrecord.c deleted file mode 100644 index 00c9af7e4dc..00000000000 --- a/libchill/gettextrecord.c +++ /dev/null @@ -1,38 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -VarString* -__gettextrecord( Text_Mode* the_text, char* file, int line ) -{ - if( !the_text ) - CHILLEXCEPTION( file, line, EMPTY, NULL_TEXT ); - - return the_text->text_record; -} diff --git a/libchill/getusage.c b/libchill/getusage.c deleted file mode 100644 index f1feb5c8e8d..00000000000 --- a/libchill/getusage.c +++ /dev/null @@ -1,48 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Usage_Mode -__getusage( void* the_transfer, char* file, int line ) -{ - Access_Mode* the_access; - - if( !the_transfer ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ACCESS ); - - if( TEST_FLAG((Text_Mode*)the_transfer, IO_TEXTLOCATION )) - the_access = ((Text_Mode*)the_transfer)->access_sub; - else - the_access = (Access_Mode*)the_transfer; - - if( !the_access->association ) - CHILLEXCEPTION( file, line, NOTCONNECTED, IS_NOT_CONNECTED ); - return the_access->association->usage; -} - diff --git a/libchill/inbitstr.c b/libchill/inbitstr.c deleted file mode 100644 index 2d776ac4f35..00000000000 --- a/libchill/inbitstr.c +++ /dev/null @@ -1,81 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -extern void __cause_ex1 (char *exname, char *file, int lineno); - -/* - * function __inbitstring - * - * parameters: - * bitno bit number within set - * powerset the powerset - * bitlength length of powerset in bits - * minval number of lowest bit stored - * fname filename of caller - * lineno linenumber of caller - * - * returns: - * int 1 .. found - * 0 .. not found - * - * exceptions: - * rangefail - * - * abstract: - * checks if a given value is included in a bitstring - * - */ -int -__inbitstring (bitno, powerset, bitlength, minval, fname, lineno) - unsigned long bitno; - SET_WORD *powerset; - unsigned long bitlength; - long minval; - char *fname; - int lineno; - -{ - if (powerset == NULL - || bitno < minval - || (bitno - minval) >= bitlength) - __cause_ex1 ("rangefail", fname, lineno); - - bitno -= minval; - if (bitlength <= SET_CHAR_SIZE) - return GET_BIT_IN_CHAR (*((SET_CHAR *)powerset), bitno); - else if (bitlength <= SET_SHORT_SIZE) - return GET_BIT_IN_SHORT (*((SET_SHORT *)powerset), bitno); - else - return GET_BIT_IN_WORD (powerset[bitno / SET_WORD_SIZE], - bitno % SET_WORD_SIZE); -} diff --git a/libchill/indexable.c b/libchill/indexable.c deleted file mode 100644 index 20cd7100f82..00000000000 --- a/libchill/indexable.c +++ /dev/null @@ -1,39 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Boolean -__indexable( Association_Mode* the_assoc, char* file, int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - if( !TEST_FLAG(the_assoc, IO_ISASSOCIATED) ) - CHILLEXCEPTION( file, line, NOTASSOCIATED, IS_NOT_ASSOCIATED ); - return TEST_FLAG(the_assoc, IO_INDEXABLE) ? True : False; -} diff --git a/libchill/inps.c b/libchill/inps.c deleted file mode 100644 index d412b23d940..00000000000 --- a/libchill/inps.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __inpowerset - * - * parameters: - * bitno bit number within set - * powerset the powerset - * bitlength length of powerset in bits - * minval number of lowest bit stored - * - * returns: - * int 1 .. found - * 0 .. not found - * - * exceptions: - * rangefail - * - * abstract: - * checks if a given value is included in a powerset - * - */ -int -__inpowerset (bitno, powerset, bitlength, minval) - unsigned long bitno; - SET_WORD *powerset; - unsigned long bitlength; - long minval; -{ - if (bitno < minval || (bitno - minval) >= bitlength) - return 0; - - bitno -= minval; - if (bitlength <= SET_CHAR_SIZE) - return GET_BIT_IN_CHAR (*((SET_CHAR *)powerset), bitno); - else if (bitlength <= SET_SHORT_SIZE) - return GET_BIT_IN_SHORT (*((SET_SHORT *)powerset), bitno); - else - return GET_BIT_IN_WORD (powerset[bitno / SET_WORD_SIZE], - bitno % SET_WORD_SIZE); -} diff --git a/libchill/inttime.c b/libchill/inttime.c deleted file mode 100644 index 7cd10f52d0b..00000000000 --- a/libchill/inttime.c +++ /dev/null @@ -1,93 +0,0 @@ -/* Implement timing-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include - -typedef struct -{ - void *p; - unsigned long len; -} Descr; - -typedef Descr **Toutlist; - -#define ASSIGN_VALUE(OUT,VAL) \ -do \ -{ \ - if (OUT) \ - switch (OUT->len) \ - { \ - case 1: \ - *(char *)((OUT)->p) = VAL; \ - break; \ - case 2: \ - *(short *)((OUT)->p) = VAL; \ - break; \ - case 4: \ - *(int *)((OUT)->p) = VAL; \ - break; \ - } \ -} while (0) - - -/* - * function _inttime - * - * parameters: - * t time_t - * list the pointers to the results - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * perform the INTTIME builtin call - * - */ - -void -_inttime (timer, outlist) - time_t timer; - Toutlist outlist; -{ - struct tm *time_str; - - /* get struct tm from time_t */ - time_str = localtime (&timer); - - /* assign the values */ - ASSIGN_VALUE (outlist[0], time_str->tm_year + 1900); - ASSIGN_VALUE (outlist[1], time_str->tm_mon + 1); - ASSIGN_VALUE (outlist[2], time_str->tm_mday); - ASSIGN_VALUE (outlist[3], time_str->tm_hour); - ASSIGN_VALUE (outlist[4], time_str->tm_min); - ASSIGN_VALUE (outlist[5], time_str->tm_sec); -} diff --git a/libchill/ioerror.c b/libchill/ioerror.c deleted file mode 100644 index 7c9257d16ec..00000000000 --- a/libchill/ioerror.c +++ /dev/null @@ -1,53 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include - -/* define names of IO-exceptions */ - -char * __IO_exception_names[] = -{ - "UNUSED", - "notassociated", - "associatefail", - "createfail", - "deletefail", - "modifyfail", - "connectfail", - "notconnected", - "empty", - "rangefail", - "spacefail", - "readfail", - "writefail", - "textfail", -}; - -jmp_buf __io_exception; - -jmp_buf __rw_exception; diff --git a/libchill/ioerror.h b/libchill/ioerror.h deleted file mode 100644 index 40842173424..00000000000 --- a/libchill/ioerror.h +++ /dev/null @@ -1,169 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#ifndef _ioerror_h_ -#define _ioerror_h_ - -#include - -/* 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 diff --git a/libchill/iomodes.h b/libchill/iomodes.h deleted file mode 100644 index 05927e3c102..00000000000 --- a/libchill/iomodes.h +++ /dev/null @@ -1,259 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#ifndef _iomodes_h_ -#define _iomodes_h_ - -#include "auxtypes.h" - -typedef enum { ReadOnly, WriteOnly, ReadWrite -} Usage_Mode; - -typedef enum { First, Same, Last -} Where_Mode; - -typedef enum { None, Fixed, VaryingChars -} Record_t; - -/* association flags */ -#define IO_ISASSOCIATED 0x00000001 -#define IO_EXISTING 0x00000002 -#define IO_READABLE 0x00000004 -#define IO_WRITEABLE 0x00000008 -#define IO_INDEXABLE 0x00000010 -#define IO_SEQUENCIBLE 0x00000020 -#define IO_VARIABLE 0x00000040 -#define IO_FIRSTLINE 0x00000100 -#define IO_FORCE_PAGE 0x00000200 - -struct Access_Mode; - -#define READBUFLEN 512 -typedef struct -{ - unsigned long len; - unsigned long cur; - char buf[READBUFLEN]; -} readbuf_t; - -typedef struct Association_Mode { - unsigned long flags; /* INIT = 0 */ - char* pathname; - struct Access_Mode* access; - int handle; - readbuf_t* bufptr; - long syserrno; - char usage; - char ctl_pre; - char ctl_post; -} Association_Mode; - -/* - rectype indexed max. reclength act. reclength - --------------------------------------------------- - None T/F 0 - Fixed T/F SIZE(recmode) = SIZE(recmode) - Varying F SIZE(recmode) >= length -*/ - -/* access/text flags */ -#define IO_TEXTLOCATION 0x80000000 -#define IO_INDEXED 0x00000001 -#define IO_TEXTIO 0x00000002 -#define IO_OUTOFFILE 0x00010000 - -typedef struct Access_Mode { - unsigned long flags; /* INIT */ - unsigned long reclength; /* INIT */ - signed long lowindex; /* INIT */ - signed long highindex; /* INIT */ - Association_Mode* association; - unsigned long base; - char* store_loc; - Record_t rectype; /* INIT */ -} Access_Mode; - -typedef struct Text_Mode { - unsigned long flags; /* INIT */ - VarString* text_record; /* INIT */ - Access_Mode* access_sub; /* INIT */ - unsigned long actual_index; -} Text_Mode; - -typedef enum -{ - __IO_UNUSED, - - __IO_ByteVal, - __IO_UByteVal, - __IO_IntVal, - __IO_UIntVal, - __IO_LongVal, - __IO_ULongVal, - - __IO_ByteLoc, - __IO_UByteLoc, - __IO_IntLoc, - __IO_UIntLoc, - __IO_LongLoc, - __IO_ULongLoc, - - __IO_ByteRangeLoc, - __IO_UByteRangeLoc, - __IO_IntRangeLoc, - __IO_UIntRangeLoc, - __IO_LongRangeLoc, - __IO_ULongRangeLoc, - - __IO_BoolVal, - __IO_BoolLoc, - __IO_BoolRangeLoc, - - __IO_SetVal, - __IO_SetLoc, - __IO_SetRangeLoc, - - __IO_CharVal, - __IO_CharLoc, - __IO_CharRangeLoc, - - __IO_CharStrLoc, - - __IO_CharVaryingLoc, - - __IO_BitStrLoc, - - __IO_RealVal, - __IO_RealLoc, - __IO_LongRealVal, - __IO_LongRealLoc -} __tmp_IO_enum; - -typedef struct -{ - long value; - char* name; -} __tmp_IO_enum_table_type; - -typedef struct -{ - long value; - __tmp_IO_enum_table_type* name_table; -} __tmp_WIO_set; - -typedef struct -{ - char* ptr; - long lower; - long upper; -} __tmp_IO_charrange; - -typedef union -{ - signed long slong; - unsigned long ulong; -} __tmp_IO_long; - -typedef struct -{ - void* ptr; - __tmp_IO_long lower; - __tmp_IO_long upper; -} __tmp_IO_intrange; - -typedef struct -{ - void* ptr; - unsigned long lower; - unsigned long upper; -} __tmp_RIO_boolrange; - -typedef struct -{ - void* ptr; - long length; - __tmp_IO_enum_table_type* name_table; -} __tmp_RIO_set; - -typedef struct -{ - void* ptr; - long length; - __tmp_IO_enum_table_type* name_table; - unsigned long lower; - unsigned long upper; -} __tmp_RIO_setrange; - -typedef struct -{ - char* string; - long string_length; -} __tmp_IO_charstring; - -typedef union -{ - char __valbyte; - unsigned char __valubyte; - short __valint; - unsigned short __valuint; - long __vallong; - unsigned long __valulong; - void* __locint; - __tmp_IO_intrange __locintrange; - - unsigned char __valbool; - unsigned char* __locbool; - __tmp_RIO_boolrange __locboolrange; - - __tmp_WIO_set __valset; - __tmp_RIO_set __locset; - __tmp_RIO_setrange __locsetrange; - - unsigned char __valchar; - unsigned char* __locchar; - __tmp_IO_charrange __loccharrange; - - __tmp_IO_charstring __loccharstring; - - float __valreal; - float* __locreal; - double __vallongreal; - double* __loclongreal; -} __tmp_IO_union; - -/* - * CAUTION: The longest variant of __tmp_IO_union is 5 words long. - * Together with __descr this caters for double alignment where required. - */ -typedef struct -{ - __tmp_IO_union __t; - __tmp_IO_enum __descr; -} __tmp_IO_list; - -#endif diff --git a/libchill/isassociated.c b/libchill/isassociated.c deleted file mode 100644 index 0df0fa87c26..00000000000 --- a/libchill/isassociated.c +++ /dev/null @@ -1,37 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Boolean -__isassociated( Association_Mode* the_assoc, char* file, int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - return TEST_FLAG(the_assoc, IO_ISASSOCIATED) ? True : False; -} diff --git a/libchill/leps.c b/libchill/leps.c deleted file mode 100644 index cbe499ab58d..00000000000 --- a/libchill/leps.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __lepowerset - * - * parameters: - * left powerset - * right powerset - * bitlength length of powerset - * - * returns: - * int 1 .. left is included in right - * 0 .. not - * - * abstract: - * check if one powerset is included in another - * - */ -int -__lepowerset (left, right, bitlength) - SET_WORD *left; - SET_WORD *right; - unsigned long bitlength; -{ - if (bitlength <= SET_CHAR_SIZE) - { - if ((*((SET_CHAR *)left) & *((SET_CHAR *)right)) - != *((SET_CHAR *)left)) - return 0; - return 1; - } - else if (bitlength <= SET_SHORT_SIZE) - { - if ((*((SET_SHORT *)left) & *((SET_SHORT *)right)) - != *((SET_SHORT *)left)) - return 0; - return 1; - } - else - { - SET_WORD *endp = left + BITS_TO_WORDS(bitlength); - - while (left < endp) - { - if ((*right & *left) != *left) - return 0; - left++; - right++; - } - return 1; - } -} diff --git a/libchill/ltps.c b/libchill/ltps.c deleted file mode 100644 index c08c884d6c0..00000000000 --- a/libchill/ltps.c +++ /dev/null @@ -1,93 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __ltpowerset - * - * parameters: - * left powerset - * right powerset - * bitlength length of powerset - * - * returns: - * int 1 .. left is proper subset of right - * (excludes case where left == right) - * 0 .. not - * - * abstract: - * check if one powerset is included in another - * - */ -int -__ltpowerset (left, right, bitlength) - SET_WORD *left; - SET_WORD *right; - unsigned long bitlength; -{ - if (bitlength <= SET_CHAR_SIZE) - { - if ((*((SET_CHAR *)left) & *((SET_CHAR *)right)) - != *((SET_CHAR *)left)) - return 0; - if (*((SET_CHAR *)left) != *((SET_CHAR *)right)) - return 1; - return 0; - } - else if (bitlength <= SET_SHORT_SIZE) - { - if ((*((SET_SHORT *)left) & *((SET_SHORT *)right)) - != *((SET_SHORT *)left)) - return 0; - if (*((SET_SHORT *)left) != *((SET_SHORT *)right)) - return 1; - return 0; - } - else - { - SET_WORD *endp = left + BITS_TO_WORDS(bitlength); - int all_equal = 1; /* assume all bits are equal */ - - while (left < endp) - { - if ((*right & *left) != *left) - return 0; - if (*left != *right) - all_equal = 0; - left++; - right++; - } - if (left == endp && all_equal) /* exclude TRUE return for == case */ - return 0; - return 1; - } -} diff --git a/libchill/ltstr.c b/libchill/ltstr.c deleted file mode 100644 index 7ddcfda5c3c..00000000000 --- a/libchill/ltstr.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Implement string-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Bill Cox - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include - -#define MIN(a, b) ((a) < (b) ? (a) : (b)) - -/* - * function __ltstring - * - * parameters: - * S1 - pointer to left string - * LEN1 - length of left string - * S2 - pointer to right string - * LEN2 - length of right string - * - * returns: - * 1 if left string is a proper subset of the right string, 0 otherwise - * - * exceptions: - * none - * - * abstract: - * compares two character strings for subset relationship - * - */ - -int __ltstring (s1, len1, s2, len2) - char *s1; - int len1; - char *s2; - int len2; -{ - int i; - - i = memcmp (s1, s2, MIN (len1, len2)); - if (i) - return (i < 0); - return (len1 < len2); -} diff --git a/libchill/memmove.c b/libchill/memmove.c deleted file mode 100644 index a995481fb01..00000000000 --- a/libchill/memmove.c +++ /dev/null @@ -1,75 +0,0 @@ -/* Implement string-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Bill Cox - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#ifdef __STDC__ -#include -#else -#define size_t unsigned long -#endif - - -/* - * function memmove - * - * parameters: - * S1 - pointer to destination string - * S2 - pointer to source string - * LEN - length of string - * - * returns: - * pointer to destination string - * - * exceptions: - * none - * - * abstract: - * copies a string safely, where the source and dest areas may overlap. - * - */ - -void * -memmove (s1, s2, n) - void *s1; - const void *s2; - size_t n; -{ - char *sc1 = s1; - const char *sc2 = s2; - - if (sc2 < sc1 && (sc1 < sc2 + n)) - for (sc1 += n, sc2 += n; 0 < n; --n) - *--sc1 = *--sc2; - else -#if 0 - for (; 0 < n; --n) - *sc1++ = *sc2++; -#else - memcpy (sc1, sc2, n); -#endif - return s1; -} diff --git a/libchill/neps.c b/libchill/neps.c deleted file mode 100644 index 40147bd97bf..00000000000 --- a/libchill/neps.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __nepowerset - * - * parameters: - * left left powerset - * right right powerset - * bitlength length of powerset in bits - * - * returns: - * 1 if powersets are not equal, bit for bit - * - * exceptions: - * none - * - * abstract: - * compares two powersets for inequality - * - */ -int -__nepowerset (left, right, bitlength) - SET_WORD *left; - SET_WORD *right; - unsigned long bitlength; -{ - return ! __eqpowerset (left, right, bitlength); -} diff --git a/libchill/notps.c b/libchill/notps.c deleted file mode 100644 index 849d32eeba8..00000000000 --- a/libchill/notps.c +++ /dev/null @@ -1,88 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __notpowerset - * - * parameters: - * out output powerset - * left input powerset - * bitlength length of powerset in bits - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * - */ - -void -__notpowerset (out, left, bitlength) - SET_WORD *out; - SET_WORD *left; - unsigned long bitlength; -{ - if (bitlength <= SET_CHAR_SIZE) - { - *((SET_CHAR *)out) = ~ (*((SET_CHAR *)left)); -#if 0 - SET_CHAR tmp; - tmp = *((SET_CHAR *)left); - tmp = ~ tmp; - *((SET_CHAR *)out) = tmp; - - MASK_UNUSED_CHAR_BITS((SET_CHAR *)out, bitlength); - *((SET_CHAR *)out) = ~ *((SET_CHAR *)left); - MASK_UNUSED_CHAR_BITS((SET_CHAR *)out, bitlength); - *((SET_CHAR *)out) = (~(0)) ^ (*((SET_CHAR *)left)); - MASK_UNUSED_CHAR_BITS((SET_CHAR *)out, bitlength); -#endif - } - else if (bitlength <= SET_SHORT_SIZE) - { - *((SET_SHORT *)out) = ~ (*((SET_SHORT *)left)); - MASK_UNUSED_SHORT_BITS((SET_SHORT *)out, bitlength); - } - else - { - unsigned long len = BITS_TO_WORDS(bitlength); - register unsigned long i; - - for (i = 0; i < len; i++) - out[i] = ~ left[i]; - MASK_UNUSED_WORD_BITS((out + len - 1), bitlength % SET_WORD_SIZE); - } -} diff --git a/libchill/orps.c b/libchill/orps.c deleted file mode 100644 index 3731bdfb1c0..00000000000 --- a/libchill/orps.c +++ /dev/null @@ -1,82 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __orpowerset - * - * parameters: - * out return from __orpowerset - * left left powerset - * right right powerset - * bitlength length of powerset in bits - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * or's two powersets. - * - */ - -void -__orpowerset (out, left, right, bitlength) - SET_WORD *out; - SET_WORD *left; - SET_WORD *right; - unsigned long bitlength; -{ - if (bitlength <= SET_CHAR_SIZE) - { - *((SET_CHAR *)out) = *((SET_CHAR *)left) | - *((SET_CHAR *)right); - MASK_UNUSED_CHAR_BITS((SET_CHAR *)out, bitlength); - } - else if (bitlength <= SET_SHORT_SIZE) - { - *((SET_SHORT *)out) = *((SET_SHORT *)left) | - *((SET_SHORT *)right); - MASK_UNUSED_SHORT_BITS((SET_SHORT *)out, bitlength); - } - else - { - register unsigned long i; - unsigned long len = BITS_TO_WORDS(bitlength); - - for (i = 0; i < len; i++) - out[i] = left[i] | right[i]; - MASK_UNUSED_WORD_BITS ((out + len - 1), bitlength % SET_WORD_SIZE); - } -} diff --git a/libchill/outoffile.c b/libchill/outoffile.c deleted file mode 100644 index 6a50a7f67c8..00000000000 --- a/libchill/outoffile.c +++ /dev/null @@ -1,48 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Boolean -__outoffile( void* the_transfer, char* file, int line ) -{ - Access_Mode* the_access; - - if( !the_transfer ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ACCESS ); - - if( TEST_FLAG((Text_Mode*)the_transfer, IO_TEXTLOCATION )) - the_access = ((Text_Mode*)the_transfer)->access_sub; - else - the_access = (Access_Mode*)the_transfer; - - if( !the_access->association ) - CHILLEXCEPTION( file, line, NOTCONNECTED, IS_NOT_CONNECTED ); - - return TEST_FLAG( the_access, IO_OUTOFFILE ) ? True : False; -} diff --git a/libchill/powerset.h b/libchill/powerset.h deleted file mode 100644 index e40303a2eeb..00000000000 --- a/libchill/powerset.h +++ /dev/null @@ -1,106 +0,0 @@ -/* Common macros for POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#ifndef _POWERSET_H -#define _POWERSET_H - -/* Do not set these to anything other than character types without fixing - their uses in andps.c and other files which implement bit sets operations. - - The uses in those files will violate ANSI/ISO C aliasing rules as they - are currently written. */ -#define SET_WORD unsigned char -#define SET_CHAR unsigned char -#define SET_SHORT unsigned char - -#define SET_WORD_SIZE (sizeof (char) * sizeof (SET_WORD)) -#define SET_SHORT_SIZE (sizeof (char) * sizeof (SET_SHORT)) -#define SET_CHAR_SIZE sizeof (char) - -/* Powersets and bit strings are stored as arrays of SET_WORD. - if they are a word or longer. Powersets and bit strings whic - fit in a byte or short are stored that way by the compiler. - - The order of the bits follows native bit order: - If BITS_BIG_ENDIAN, bit 0 is the most significant bit (i.e. 0x80..00); - otherwise, bit 0 is the least significant bit (i.e. 0x1). - - MASK_UNUSED_BITS masks out unused bits in powersets and bitstrings. - GET_BIT_IN_WORD(W,B) yields 1 (or 0) if the B'th bit if W is set (cleared). -*/ - -#if BITS_BIG_ENDIAN -#define GET_BIT_IN_WORD(w,b) (((w) >> (SET_WORD_SIZE - 1 - (b))) & 1) -#define GET_BIT_IN_SHORT(w,b) (((w) >> (SET_SHORT_SIZE - 1 - (b))) & 1) -#define GET_BIT_IN_CHAR(w,b) (((w) >> (SET_CHAR_SIZE - 1 - (b))) & 1) - -#define SET_BIT_IN_WORD(w,b) ((w) |= 1 << ((SET_WORD_SIZE) - 1 - (b))) -#define SET_BIT_IN_SHORT(w,b) ((w) |= 1 << ((SET_SHORT_SIZE) - 1 - (b))) -#define SET_BIT_IN_CHAR(w,b) ((w) |= 1 << ((SET_CHAR_SIZE) - 1 - (b))) - -#define CLEAR_BIT_IN_WORD(w,b) ((w) &= ~(1 << ((SET_WORD_SIZE) - 1 - (b)))) -#define CLEAR_BIT_IN_SHORT(w,b) ((w) &= ~(1 << ((SET_SHORT_SIZE) - 1 - (b)))) -#define CLEAR_BIT_IN_CHAR(w,b) ((w) &= ~(1 << ((SET_CHAR_SIZE) - 1 - (b)))) -#define MASK_UNUSED_WORD_BITS(p,b) \ -{ if (b) *(p) &= (~0) << (SET_WORD_SIZE - (b)); } -#define MASK_UNUSED_SHORT_BITS(p,b) \ -{ if (b) *(p) &= (~0) << (SET_SHORT_SIZE - (b)); } -#define MASK_UNUSED_CHAR_BITS(p,b) \ -{ if (b) *(p) &= (~0) << (SET_CHAR_SIZE - (b)); } - -#else /* !BITS_BIG_ENDIAN */ - -#define GET_BIT_IN_WORD(w,b) (((w) >> (b)) & 1) -#define GET_BIT_IN_SHORT(w,b) GET_BIT_IN_WORD(w,b) -#define GET_BIT_IN_CHAR(w,b) GET_BIT_IN_WORD(w,b) - -#define SET_BIT_IN_WORD(w,b) ((w) |= 1 << (b)) -#define SET_BIT_IN_SHORT(w,b) SET_BIT_IN_WORD(w,b) -#define SET_BIT_IN_CHAR(w,b) SET_BIT_IN_WORD(w,b) - -#define CLEAR_BIT_IN_WORD(w,b) ((w) &= ~(1 << (b))) -#define CLEAR_BIT_IN_SHORT(w,b) CLEAR_BIT_IN_WORD(w,b) -#define CLEAR_BIT_IN_CHAR(w,b) CLEAR_BIT_IN_WORD(w,b) - -#define MASK_UNUSED_WORD_BITS(p,b) \ -{ if (b) *(p) &= ~((~0) << (b)); } -#define MASK_UNUSED_SHORT_BITS(p,b) MASK_UNUSED_WORD_BITS(p,b) -#define MASK_UNUSED_CHAR_BITS(p,b) MASK_UNUSED_WORD_BITS(p,b) - -#endif - - -/* Number of words needed for a bitstring/powerset of size BITLENGTH. - This definition handles the (BITLENGTH==0) by yielding 0. */ - -#define BITS_TO_WORDS(BITLENGTH) \ - (((BITLENGTH) + (SET_WORD_SIZE-1)) / SET_WORD_SIZE) -#define BITS_TO_CHARS(BITLENGTH) \ - (((BITLENGTH) + (SET_CHAR_SIZE-1)) / SET_CHAR_SIZE) - -#endif diff --git a/libchill/printbuffer.c b/libchill/printbuffer.c deleted file mode 100644 index a46cb5d5ef0..00000000000 --- a/libchill/printbuffer.c +++ /dev/null @@ -1,125 +0,0 @@ -/* Implement tasking-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include -#include "rtltypes.h" -#include "rts.h" - -typedef char *(*fetch_names) (int number); -extern fetch_names __RTS_FETCH_NAMES__; - -/* - * function print_instance - * - */ - -static char *print_instance (ins) - INSTANCE ins; -{ - static char buf[256]; - char *f; - - if (!__RTS_FETCH_NAMES__) - f = 0; - else - f = (*__RTS_FETCH_NAMES__) (ins.ptype); - if (!f) - sprintf (buf, "[%u;%u]", ins.ptype, ins.pcopy); - else - sprintf (buf, "[%s;%u]", f, ins.pcopy); - return buf; -} - -/* - * function __print_buffer - * - * parameters: - * buffer buffer location - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * Function is used for debugging purposes only to print a - * buffer queue - */ - -void -__print_buffer (buffer, name) - Buffer_Queue **buffer; - char *name; -{ - Buffer_Queue *bq; - int bsqcnt = 0, bwqcnt = 0; - Buffer_Send_Queue *bsq; - Buffer_Wait_Queue *bwq; - - if (name) - printf ("Buffer %s:\n", name); - else - printf ("Buffer at address H'%X:\n", buffer); - - memcpy (&bq, buffer, sizeof (Buffer_Queue *)); - if (bq == 0) - { - printf ("EMPTY\n"); - return; - } - - bsq = bq->sendqueue; - if (bsq != 0) - printf ("Send Queue:\n"); - while (bsq) - { - printf (" %3d: ", ++bsqcnt); - printf ("Process %s, ", print_instance (bsq->this)); - printf ("Priority %d", bsq->priority); - if (bsq->is_delayed) - printf (", Delayed"); - printf ("\n"); - bsq = bsq->forward; - } - bwq = bq->waitqueue; - if (bwq != 0) - printf ("Wait Queue:\n"); - while (bwq) - { - printf (" %3d: ", ++bwqcnt); - printf ("Process %s, ", print_instance (bwq->this)); - if (bwq->is_sent) - printf (", Send by %s", print_instance (bwq->who_sent)); - printf ("\n"); - bwq = bwq->forward; - } - if (bsqcnt == 0 && bwqcnt == 0) - printf ("EMPTY\n"); -} diff --git a/libchill/printevent.c b/libchill/printevent.c deleted file mode 100644 index 88c4bc0acc7..00000000000 --- a/libchill/printevent.c +++ /dev/null @@ -1,102 +0,0 @@ -/* Implement tasking-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include -#include "rtltypes.h" -#include "rts.h" - -typedef char *(*fetch_names) (int number); -extern fetch_names __RTS_FETCH_NAMES__; - -/* - * function print_instance - * - */ - -static char *print_instance (ins) - INSTANCE ins; -{ - static char buf[256]; - char *f; - - if (!__RTS_FETCH_NAMES__) - f = 0; - else - f = (*__RTS_FETCH_NAMES__) (ins.ptype); - if (!f) - sprintf (buf, "[%u;%u]", ins.ptype, ins.pcopy); - else - sprintf (buf, "[%s;%u]", f, ins.pcopy); - return buf; -} - -/* - * function __print_event - * - * parameters: - * event event location - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * Function is used for debugging purposes only to print an - * event queue - */ - -void -__print_event (evaddr, name) - Event_Queue **evaddr; - char *name; -{ - Event_Queue *ev; - int cnt = 0; - - if (name) - printf ("Event %s:\n", name); - else - printf ("Event at address H'%X:\n", evaddr); - - memcpy (&ev, evaddr, sizeof (Event_Queue *)); - while (ev) - { - printf (" %3d: ", ++cnt); - printf ("Process %s, ", print_instance (ev->this)); - printf ("Priority %d", ev->priority); - if (ev->is_continued) - printf (" ,Continued by %s", print_instance (ev->who_continued)); - printf ("\n"); - ev = ev->forward; - } - if (!cnt) - printf ("EMPTY\n"); -} diff --git a/libchill/queuelength.c b/libchill/queuelength.c deleted file mode 100644 index 777d50389d5..00000000000 --- a/libchill/queuelength.c +++ /dev/null @@ -1,87 +0,0 @@ -/* Implement tasking-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "rtltypes.h" -#include "rts.h" - -/* - * function __queue_length - * - * parameters: - * buf_ev Buffer or event location - * is_event 0 .. buf_ev is a buffer location - * 1 .. buf_ev is an event location - * - * returns: - * int number of delayed processeson an event location - * or number of send delayed processes on a buffer - * - * exceptions: - * none - * - * abstract: - * implements the QUEUE_LENGTH built-in. - * - */ - -int -__queue_length (buf_ev, is_event) - void *buf_ev; - int is_event; -{ - int retval = 0; - - /* if buf_ev == 0 then we don't have anything */ - if (buf_ev == 0) - return 0; - - if (is_event) - { - /* process an event queue */ - Event_Queue *ev = buf_ev; - - while (ev) - { - retval++; - ev = ev->forward; - } - } - else - { - /* process a buffer queue */ - Buffer_Queue *bq = buf_ev; - Buffer_Send_Queue *bsq = bq->sendqueue; - - while (bsq) - { - retval++; - bsq = bsq->forward; - } - } - return retval; -} diff --git a/libchill/readable.c b/libchill/readable.c deleted file mode 100644 index 0b3b3d3858b..00000000000 --- a/libchill/readable.c +++ /dev/null @@ -1,40 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Boolean -__readable( Association_Mode* the_assoc, char* file, int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - if( !TEST_FLAG(the_assoc, IO_ISASSOCIATED) ) - CHILLEXCEPTION( file, line, NOTASSOCIATED, IS_NOT_ASSOCIATED ); - return TEST_FLAG(the_assoc, IO_READABLE) ? True : False; -} - diff --git a/libchill/readrecord.c b/libchill/readrecord.c deleted file mode 100644 index f462883972b..00000000000 --- a/libchill/readrecord.c +++ /dev/null @@ -1,217 +0,0 @@ -/* Implement Input/Output runtime actions for CHILL. - Copyright (C) 1992, 1993, 1998 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include -#include -#include -#include - -#include "fileio.h" - -#ifdef EOF -#undef EOF -#endif -#define EOF -1 - -static -Boolean -doRead( Access_Mode* the_access, void* buf, size_t nbyte ) -{ - size_t nread; - - nread = read( the_access->association->handle, buf, nbyte ); - if( nread == nbyte ) - { - CLR_FLAG( the_access, IO_OUTOFFILE ); - return True; - } - if( nread == 0 ) - { - SET_FLAG( the_access, IO_OUTOFFILE ); - return False; - } - the_access->association->syserrno = errno; - RWEXCEPTION( READFAIL, OS_IO_ERROR ); - /* no return */ -} - -static -int bgetc( int handle, readbuf_t* rbptr ) -{ - if( rbptr->cur >= rbptr->len ) - { - rbptr->len = read( handle, rbptr->buf, READBUFLEN ); - if( rbptr->len == 0 ) - return EOF; - rbptr->cur = 0; - } - return rbptr->buf[rbptr->cur++]; -} - -static -void bungetc( readbuf_t* rbptr, int c ) -{ - rbptr->buf[--rbptr->cur] = c; -} - -void* -__readrecord( Access_Mode* the_access, - signed long the_index, - char* the_buf_addr, - char* file, - int line ) -{ - unsigned long info; - char* actaddr; - unsigned short actlen; - off_t filepos; - unsigned short reclen; - unsigned long readlen; - - if( !the_access ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ACCESS ); - - if( !the_access->association ) - CHILLEXCEPTION( file, line, NOTCONNECTED, IS_NOT_CONNECTED ); - - /* Usage must not be WriteOnly */ - if( the_access->association->usage == WriteOnly ) - CHILLEXCEPTION( file, line, READFAIL, BAD_USAGE ); - - /* OUTOFFILE must not be True when connected for sequential read */ - if( !TEST_FLAG( the_access, IO_INDEXED ) - && TEST_FLAG( the_access, IO_OUTOFFILE ) ) - CHILLEXCEPTION( file, line, READFAIL, OUT_OF_FILE ); - - /* - * Positioning - */ - if( TEST_FLAG( the_access, IO_INDEXED ) ) - { - /* index expression must be within bounds of index mode */ - if( the_index < the_access->lowindex - || the_access->highindex < the_index ) - CHILLEXCEPTION( file, line, RANGEFAIL, BAD_INDEX ); - - filepos = the_access->base + - (the_index - the_access->lowindex) * the_access->reclength; - - if( lseek( the_access->association->handle, filepos, SEEK_SET ) == -1L ) - CHILLEXCEPTION( file, line, READFAIL, LSEEK_FAILS ); - } - - /* establish store loc */ - if( !(actaddr = the_buf_addr )) - { - /* if not yet allocated, do it now */ - if (!the_access->store_loc) - if( !(the_access->store_loc = (char*)malloc( the_access->reclength ) ) ) - CHILLEXCEPTION( file, line, SPACEFAIL, STORE_LOC_ALLOC ); - actaddr = the_access->store_loc; - } - actlen = the_access->reclength; - - if( (info = setjmp( __rw_exception )) ) - CHILLEXCEPTION( file, line, info>>16, info & 0xffff ); - - if( TEST_FLAG( the_access, IO_TEXTIO ) ) - { - readlen = actlen - 2; - if( TEST_FLAG( the_access, IO_INDEXED ) ) - { - if( ! doRead( the_access, &reclen, sizeof(reclen) ) ) - return NULL; - if( reclen > readlen ) - CHILLEXCEPTION( file, line, RANGEFAIL, RECORD_TOO_LONG ); - if( ! doRead( the_access, actaddr + 2, reclen ) ) - CHILLEXCEPTION( file, line, READFAIL, RECORD_TOO_SHORT ); - } - else - { - Association_Mode *assoc = the_access->association; - int handle = assoc->handle; - readbuf_t* rbuf = assoc->bufptr; - char* cptr = actaddr+2; - int curr; - - reclen = 0; - while( readlen-- ) - { - curr = bgetc( handle, rbuf ); - if( curr == '\n' ) - goto end_of_line; - if( curr == EOF ) - { - if( !reclen ) - SET_FLAG( the_access, IO_OUTOFFILE ); - goto end_of_line; - } - *cptr++ = curr; - reclen++; - } - if( (curr = bgetc( handle, rbuf )) != '\n' ) - { - bungetc( rbuf, curr ); - CHILLEXCEPTION( file, line, RANGEFAIL, RECORD_TOO_LONG ); - } -end_of_line: ; - } - MOV2(actaddr,&reclen); - } - else - { - switch( the_access->rectype ) - { - case Fixed: - if( ! doRead( the_access, actaddr, actlen ) ) - return NULL; - break; - case VaryingChars: - if( TEST_FLAG( the_access->association, IO_VARIABLE ) ) - { - if( ! doRead( the_access, &reclen, sizeof(reclen) ) ) - return NULL; - if( reclen > actlen - 2 ) - CHILLEXCEPTION( file, line, RANGEFAIL, RECORD_TOO_LONG ); - readlen = TEST_FLAG( the_access, IO_INDEXED ) ? actlen - 2 : reclen; - if( ! doRead( the_access, actaddr + 2, readlen ) ) - CHILLEXCEPTION( file, line, READFAIL, RECORD_TOO_SHORT ); - } - else - { - if( ! doRead( the_access, actaddr + 2, reclen = actlen - 2 ) ) - CHILLEXCEPTION( file, line, READFAIL, RECORD_TOO_SHORT ); - } - MOV2(actaddr,&reclen); - break; - } - } - - return actaddr; -} diff --git a/libchill/remaintime.c b/libchill/remaintime.c deleted file mode 100644 index 5d87e8c7af3..00000000000 --- a/libchill/remaintime.c +++ /dev/null @@ -1,91 +0,0 @@ -/* Implement timing-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - - 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "rts.h" - -/* - * function __remaintime - * - * parameters: - * since pointer to the initial RtsTime - * dur the duration value - * t pointer to the remaining RtsTime - * - * returns: - * int 0 .. there is a remaining time - * 1 .. there is no remaining time - * - * exceptions: - * none - * - * abstract: - * This function writes to t the remaining duration value in RtsTime format - * from a given start (since) and the current RtsTime. - * - */ - -extern void __convert_duration_rtstime (unsigned long dur, RtsTime *t); - -int - __remaintime (since, dur, t) -RtsTime *since; -unsigned long dur; -RtsTime *t; -{ - RtsTime now, dur_in_rtstime, tmp, diff; - - __rtstime (&now); - __convert_duration_rtstime (dur, &dur_in_rtstime); - - tmp.secs = since->secs; - tmp.nanosecs = since->nanosecs; - - /* calculate the difference of absolute times */ - if (tmp.nanosecs > now.nanosecs) - { - tmp.secs--; - tmp.nanosecs += 1000000000; - } - diff.secs = now.secs - tmp.secs; - diff.nanosecs = now.nanosecs - tmp.nanosecs; - - /* substract diff from duration */ - if (diff.nanosecs > dur_in_rtstime.nanosecs) - { - dur_in_rtstime.secs--; - dur_in_rtstime.nanosecs += 1000000000; - } - - t->secs = dur_in_rtstime.secs - diff.secs; - t->nanosecs = dur_in_rtstime.nanosecs - diff.nanosecs; - - if (t->secs > dur_in_rtstime.secs) - return 1; - else - return 0; -} diff --git a/libchill/retmem.c b/libchill/retmem.c deleted file mode 100644 index 810a71ad8ea..00000000000 --- a/libchill/retmem.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include - -/* - * function _return_memory - * - * parameter: - * ptr pointer to memory to free - * filename source file which issued the call - * linenumber line number of the call within that file - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * free memory previously allocated by _allocate_(global_)memory - * -*/ - -void -_return_memory (ptr, filename, linenumber) - void *ptr; - char *filename; - int linenumber; -{ - free (ptr); -} diff --git a/libchill/rtltypes.h b/libchill/rtltypes.h deleted file mode 100644 index 7175785440c..00000000000 --- a/libchill/rtltypes.h +++ /dev/null @@ -1,89 +0,0 @@ -/* Implement timing-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#ifndef __rtltypes_h__ -#define __rtltypes_h__ - -#include - -/* Add prototype support. */ -#ifndef PROTO -#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__) -#define PROTO(ARGS) ARGS -#else -#define PROTO(ARGS) () -#endif -#endif - -/* argc, argv */ -typedef struct -{ - unsigned short len; - char body[0]; -} TVaryingCharType; - -#ifndef __CHILL_LIB__ -extern TVaryingCharType **chill_argv; -extern int chill_argc; -#endif - -/* definitions for exceptions */ -typedef struct -{ - char *exname; - short exnumber; -} TExceptionDefinition; - -#if 1 -typedef char *__ch_exception; -#define EX_EQ(e1, e2) (strcmp(e1, e2)==0) -#else -typedef void *__ch_exception; -#define EX_EQ(e1, e2) (e1 == e2) -#endif -#define __ch_else_except ((__ch_exception)0) - -struct __ch_handled_excepts -{ - /* List is ended by a code==0, or ex==__ch_else_except (ELSE handler). */ - __ch_exception ex; - int code; /* Positive number indicating ordinal in handler list. */ -}; - -/* definitions for exception handlers */ -typedef struct __ch_handler -{ - struct __ch_handler *prev; - struct __ch_handled_excepts *handlers; - jmp_buf jbuf; -} TExceptionHandlerStack; - -/* exceptions */ -#define EXCEPTION(x) /* nothing */ - -#endif /* __rtltypes_h__ */ diff --git a/libchill/rts.c b/libchill/rts.c deleted file mode 100644 index fd1878c6cfd..00000000000 --- a/libchill/rts.c +++ /dev/null @@ -1,663 +0,0 @@ -/* GNU CHILL compiler regression test file - Copyright (C) 1992, 1993 Free Software Foundation, Inc. - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include -#include -#include -#include - -#include "rts.h" - - -/* some allocation/reallocation functions */ - -static void * -xmalloc (size) - int size; -{ - void *tmp = malloc (size); - - if (!tmp) - { - fprintf (stderr, "Out of heap space.\n"); - exit (1); - } - return (tmp); -} - -static void * -xrealloc (ptr, size) - void *ptr; - int size; -{ - void *tmp = realloc (ptr, size); - - if (!tmp) - { - fprintf (stderr, "Out of heap space.\n"); - exit (1); - } - return (tmp); -} - -/* the necessary data */ -#define MAX_NUMBER 100 -typedef char UsedValues[MAX_NUMBER]; - -#define MAX_COPIES 100 - -#define MAX_PER_ITEM 20 -typedef struct TASKINGSTRUCTLIST -{ - struct TASKINGSTRUCTLIST *forward; - int num; - TaskingStruct *data[MAX_PER_ITEM]; - char copies[MAX_COPIES]; - jmp_buf where; -} TaskingStructList; - -static TaskingStructList *task_array[LAST_AND_UNUSED]; -static UsedValues used_values[LAST_AND_UNUSED]; - -static short -get_next_free_number (vals) - UsedValues vals; -{ - short i; - for (i = 1; i < MAX_NUMBER; i++) - { - if (!vals[i]) - { - vals[i] = 1; - return (i); - } - } - fprintf (stderr, "There are no more free numbers.\n"); - exit (1); -} - -/* function search for the next available copy number */ -static short -get_next_copy_number (p) - TaskingStructList *p; -{ - short i; - - for (i = 0; i < MAX_COPIES; i++) - { - if (!p->copies[i]) - { - p->copies[i] = 1; - return (i); - } - } - fprintf (stderr, "No more copies available for \"%s\".\n", - p->data[0]->name); - exit (1); -} - -/* function registers a tasking entry from a module and assign - a value to the type */ - -void -__register_tasking (t) - TaskingStruct *t; -{ - TaskingStructList *p; - - /* check first if a value was provided and if it is in range */ - if (t->value_defined && *t->value >= MAX_NUMBER) - { - fprintf (stderr, "Value %d out of range.\n", *t->value); - exit (1); - } - - /* look for item defined */ - p = task_array[t->type]; - while (p) - { - if (!strcmp (p->data[0]->name, t->name)) - /* have found it */ - break; - p = p->forward; - } - - if (!p) - { - TaskingStructList *wrk = (TaskingStructList *)&task_array[t->type]; - - /* this is a new one -- allocate space */ - p = xmalloc (sizeof (TaskingStructList)); - memset (p->copies, 0, sizeof (p->copies)); - p->forward = 0; - p->num = 1; - p->data[0] = t; - - /* queue it in */ - while (wrk->forward) - wrk = wrk->forward; - wrk->forward = p; - } - else - { - if (p->num >= MAX_PER_ITEM) - { - fprintf (stderr, "Too many registrations of \"%s\".\n", t->name); - exit (1); - } - p->data[p->num++] = t; - } -} - -/* define all the entries for the runtime system. They will be - needed by chillrt0.o */ - -typedef char *(*fetch_names) (); -typedef int (*fetch_numbers) (); - -static char tmp_for_fetch_name[100]; - -char * -__fetch_name (number) - int number; -{ - TaskingStructList *p = task_array[Process]; - - while (p) - { - if (*(p->data[0]->value) == number) - return (p->data[0]->name); - p = p->forward; - } - sprintf (tmp_for_fetch_name, "%d", number); - return (tmp_for_fetch_name); -} -fetch_names __RTS_FETCH_NAMES__ = __fetch_name; - -static int -__fetch_number (name) - char *name; -{ - TaskingStructList *p = task_array[Process]; - - while (p) - { - if (!strcmp (p->data[0]->name, name)) - return (*(p->data[0]->value)); - p = p->forward; - } - return (-1); -} -fetch_numbers __RTS_FETCH_NUMBERS__ = __fetch_number; - - -/* here we go to check all registered items */ -static void - __rts_init () -{ - int i; - TaskingStructList *p; - - for (i = Process; i <= Event; i++) - { - p = task_array[i]; - while (p) - { - TaskingStruct *t = 0; - int j; - short val; - - for (j = 0; j < p->num; j++) - { - if (p->data[j]->value_defined) - { - if (t) - { - if (*(t->value) != *(p->data[j]->value)) - { - fprintf (stderr, "Different values (%d & %d) for \"%s\".", - *(t->value), *(p->data[j]->value), t->name); - exit (1); - } - } - else - t = p->data[j]; - } - } - - if (t) - { - - val = *(t->value); - - if (used_values[t->type][val]) - { - fprintf (stderr, "Value %d for \"%s\" is already used.\n", - val, t->name); - exit (1); - } - used_values[t->type][val] = 1; - } - else - { - /* we have to create a new value */ - val = get_next_free_number (used_values[p->data[0]->type]); - } - - for (j = 0; j < p->num; j++) - { - p->data[j]->value_defined = 1; - *(p->data[j]->value) = val; - } - - p = p->forward; - } - } -} -EntryPoint __RTS_INIT__ = __rts_init; - -/* define the start process queue */ -typedef struct STARTENTRY -{ - struct STARTENTRY *forward; - INSTANCE whoami; - EntryPoint entry; - void *data; - int datalen; -} StartEntry; - -static StartEntry *start_queue = 0; -static StartEntry *current_process = 0; - -/* the jump buffer for the main loop */ -static jmp_buf jump_buffer; -static int jump_buffer_initialized = 0; - -/* look for entries in start_queue and start the process */ -static void -__rts_main_loop () -{ - StartEntry *s; - - while (1) - { - if (setjmp (jump_buffer) == 0) - { - jump_buffer_initialized = 1; - s = start_queue; - while (s) - { - current_process = s; - start_queue = s->forward; - - /* call the process */ - (*s->entry) (s->data); - s = start_queue; - } - /* when queue empty we have finished */ - return; - } - else - { - /* stop executed */ - if (current_process->data) - free (current_process->data); - free (current_process); - current_process = 0; - } - } -} -EntryPoint __RTS_MAIN_LOOP__ = __rts_main_loop; - - -void -__start_process (ptype, pcopy, arg_size, args, ins) - short ptype; - short pcopy; - int arg_size; - void *args; - INSTANCE *ins; -{ - TaskingStructList *p = task_array[Process]; - EntryPoint pc = 0; - int i; - short this_copy = pcopy; - StartEntry *s, *wrk; - - /* search for the process */ - while (p) - { - if (*(p->data[0]->value) == ptype) - break; - p = p->forward; - } - if (!p) - { - fprintf (stderr, "Cannot find a process with type %d.\n", ptype); - exit (1); - } - - /* search for the entry point */ - for (i = 0; i < p->num; i++) - { - if (p->data[i]->entry) - { - pc = p->data[i]->entry; - break; - } - } - if (!pc) - { - fprintf (stderr, "Process \"%s\" doesn't have an entry point.\n", - p->data[0]->name); - exit (1); - } - - /* check the copy */ - if (pcopy >= MAX_COPIES) - { - fprintf (stderr, "Copy number (%d) out of range.\n", pcopy); - exit (1); - } - if (pcopy == -1) - { - /* search for a copy number */ - this_copy = get_next_copy_number (p); - } - else - { - if (p->copies[pcopy]) - { - /* FIXME: should be exception 'startfail' */ - fprintf (stderr, "Copy number %d already in use for \"%s\".\n", - pcopy, p->data[0]->name); - exit (1); - } - p->copies[this_copy = pcopy] = 1; - } - - /* ready to build start_queue entry */ - s = xmalloc (sizeof (StartEntry)); - s->forward = 0; - s->whoami.pcopy = this_copy; - s->whoami.ptype = ptype; - s->entry = pc; - s->datalen = arg_size; - if (args) - { - s->data = xmalloc (arg_size); - memcpy (s->data, args, arg_size); - } - else - s->data = 0; - - /* queue that stuff in */ - wrk = (StartEntry *)&start_queue; - while (wrk->forward) - wrk = wrk->forward; - wrk->forward = s; - - /* if we have a pointer to ins -- set it */ - if (ins) - { - ins->ptype = ptype; - ins->pcopy = this_copy; - } -} - -void -__stop_process () -{ - if (!jump_buffer_initialized) - { - fprintf (stderr, "STOP called before START.\n"); - exit (1); - } - longjmp (jump_buffer, 1); -} - - -/* function returns INSTANCE of current process */ -INSTANCE -__whoami () -{ - INSTANCE whoami; - if (current_process) - whoami = current_process->whoami; - else - { - whoami.ptype = 0; - whoami.pcopy = 0; - } - return (whoami); -} - -typedef struct -{ - short *sc; - int data_len; - void *data; -} SignalDescr; - -typedef struct SIGNALQUEUE -{ - struct SIGNALQUEUE *forward; - short sc; - int data_len; - void *data; - INSTANCE to; - INSTANCE from; -} SignalQueue; - -/* define the signal queue */ -static SignalQueue *msg_queue = 0; - -/* send a signal */ -void -__send_signal (s, to, prio, with_len, with) - SignalDescr *s; - INSTANCE to; - int prio; - int with_len; - void *with; -{ - SignalQueue *wrk = (SignalQueue *)&msg_queue; - SignalQueue *p; - TaskingStructList *t = task_array[Process]; - - /* search for process is defined and running */ - while (t) - { - if (*(t->data[0]->value) == to.ptype) - break; - t = t->forward; - } - if (!t || !t->copies[to.pcopy]) - { - fprintf (stderr, "Can't find instance [%d,%d].\n", - to.ptype, to.pcopy); - exit (1); - } - - /* go to the end of the msg_queue */ - while (wrk->forward) - wrk = wrk->forward; - - p = xmalloc (sizeof (SignalQueue)); - p->sc = *(s->sc); - if (p->data_len = s->data_len) - { - p->data = xmalloc (s->data_len); - memcpy (p->data, s->data, s->data_len); - } - else - p->data = 0; - p->to = to; - p->from = __whoami (); - p->forward = 0; - wrk->forward = p; -} - -void -start_signal_timeout (i, s, j) - int i; - SignalDescr *s; - int j; -{ - __send_signal (s, __whoami (), 0, 0, 0); -} - - -/* receive a signal */ -int -__wait_signal_timed (sig_got, nsigs, sigptr, datap, - datalen, ins, else_branche, - to, filename, lineno) - short *sig_got; - int nsigs; - short *sigptr[]; - void *datap; - int datalen; - INSTANCE *ins; - int else_branche; - void *to; - char *filename; - int lineno; -{ - INSTANCE me = __whoami (); - SignalQueue *wrk, *p = msg_queue; - int i; - short sc; - - /* search for a signal to `me' */ - wrk = (SignalQueue *)&msg_queue; - - while (p) - { - if (p->to.ptype == me.ptype - && p->to.pcopy == me.pcopy) - break; - wrk = p; - p = p->forward; - } - - if (!p) - { - fprintf (stderr, "No signal for [%d,%d].\n", - me.ptype, me.pcopy); - exit (1); - } - - /* queue the message out */ - wrk->forward = p->forward; - - /* now look for signal in list */ - for (i = 0; i < nsigs; i++) - if (*(sigptr[i]) == p->sc) - break; - - if (i >= nsigs && ! else_branche) - /* signal not in list and no ELSE in code */ - __cause_exception ("signalfail", __FILE__, __LINE__); - - if (i >= nsigs) - { - /* signal not in list */ - sc = p->sc; - if (ins) - *ins = p->from; - if (p->data) - free (p->data); - free (p); - *sig_got = sc; - return (0); - } - - /* we have found a signal in the list */ - if (p->data_len) - { - if (datalen >= p->data_len - && datap) - memcpy (datap, p->data, p->data_len); - else - __cause_exception ("spacefail", __FILE__, __LINE__); - } - - sc = p->sc; - if (ins) - *ins = p->from; - if (p->data) - free (p->data); - free (p); - *sig_got = sc; - return (0); -} - -/* wait a certain amount of seconds */ -int -__sleep_till (abstime, reltime, fname, lineno) - time_t abstime; - int reltime; - char *fname; - int lineno; -{ - sleep (reltime); - return 0; -} - -/* set up an alarm */ -static int timeout_flag = 0; - -static void alarm_handler () -{ - timeout_flag = 1; -} - -int * -__define_timeout (howlong, filename, lineno) - unsigned long howlong; /* comes in millisecs */ - char *filename; - int lineno; -{ - unsigned int prev_alarm_value; - - signal (SIGALRM, alarm_handler); - prev_alarm_value = alarm ((unsigned int)(howlong / 1000)); - return &timeout_flag; -} - -/* wait till timeout expires */ -void -__wait_timeout (toid, filename, lineno) - volatile int *toid; - char *filename; - int lineno; -{ - while (! *toid) ; - *toid = 0; -} diff --git a/libchill/rts.h b/libchill/rts.h deleted file mode 100644 index 3a9a26cb2ac..00000000000 --- a/libchill/rts.h +++ /dev/null @@ -1,159 +0,0 @@ -/* GNU CHILL compiler regression test file - Copyright (C) 1992, 1993 Free Software Foundation, Inc. - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#ifndef __rts_h_ -#define __rts_h_ - -typedef enum -{ - UNUSED, - Process, - Signal, - Buffer, - Event, - Synonym, - Exception, - LAST_AND_UNUSED, -} TaskingEnum; - -typedef void (*EntryPoint) (); - -typedef struct -{ - char *name; - short *value; - int value_defined; - EntryPoint entry; - unsigned char /*TaskingEnum*/ type; -} TaskingStruct; - -/* how an INSTANCE is implemented */ -typedef struct -{ - short ptype; - short pcopy; -} INSTANCE; - -/* interface to underlaying os */ -typedef enum -{ - wait_wait, - wait_buffer_send, - wait_buffer_receive, - wait_buffer_free, - wait_event_delay, - wait_event_free, -} Delay_Reason; - -extern INSTANCE __whoami (); -extern void *__xmalloc_ (); - -#define THIS __whoami() -/* for easier changing to something different, - i.e. allocate_memory */ -#define MALLOC(ADDR,SIZE) ADDR = __xmalloc_(SIZE) -#define FREE(ADDR) free (ADDR) - -/* definitions for EVENTS */ -typedef struct EVENTQUEUE -{ - struct EVENTQUEUE *forward; /* next in the list */ - struct EVENTQUEUE **listhead; /* pointer to EVENT location */ - int priority; /* prio for DELAY or DELAY CASE */ - INSTANCE this; /* specify the instance is delayed */ - struct EVENTQUEUE *startlist; /* start of the list */ - struct EVENTQUEUE *chain; /* list of all events in an DELAY CASE */ - int is_continued; /* indicates a continue action on that event */ - INSTANCE who_continued; /* indicates who continued */ -} Event_Queue; - -typedef struct -{ - Event_Queue **ev; - unsigned long maxqueuelength; -} Event_Descr; - -/* definitions for BUFFERS */ -struct BUFFERQUEUE; - -typedef struct BUFFER_WAIT_QUEUE -{ - struct BUFFER_WAIT_QUEUE *forward; - struct BUFFERQUEUE **bufferaddr; - INSTANCE this; - struct BUFFER_WAIT_QUEUE *startlist; - struct BUFFER_WAIT_QUEUE *chain; - int is_sent; - INSTANCE who_sent; /* instance which have - send a buffer */ - unsigned long datalen; - void *dataptr; -} Buffer_Wait_Queue; - -typedef struct BUFFER_SEND_QUEUE -{ - struct BUFFER_SEND_QUEUE *forward; - int priority; - INSTANCE this; - int is_delayed; - unsigned long datalen; - void *dataptr; -} Buffer_Send_Queue; - -typedef struct BUFFERQUEUE -{ - Buffer_Wait_Queue *waitqueue; - unsigned long waitqueuelength; - Buffer_Send_Queue *sendqueue; - unsigned long sendqueuelength; -} Buffer_Queue; - -typedef struct -{ - Buffer_Queue **buf; - unsigned long maxqueuelength; -} Buffer_Descr; - -/* descriptor for data */ -typedef struct -{ - void *ptr; - int length; -} Data_Descr; - -/* time format runtime delivers */ -typedef struct -{ - unsigned long secs; - unsigned long nanosecs; -} RtsTime; - -extern void __rtstime (RtsTime *t); -extern int __delay_this (Delay_Reason reason, RtsTime *t, char *file, int lineno); -extern void __continue_that (INSTANCE ins, int prio, char *file, int lineno); - -#endif /* __rts_h_ */ diff --git a/libchill/rtsdummy.c b/libchill/rtsdummy.c deleted file mode 100644 index c49de589844..00000000000 --- a/libchill/rtsdummy.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include -#include -/*#include "gvarargs.h" Gcc source and runtime libs use gvarargs.h */ - -#include "rtltypes.h" - -typedef void (*init_ptr) (); -typedef int * tasking_ptr; - -/* Dummy functions for rts access. When we come here we have an error. */ - -typedef char *(*fetch_names) (int number); -typedef int (*fetch_numbers) (char *name); - -static void __rts_main_loop () -{ - /* do nothing in case of no run time system */ -} -init_ptr __RTS_MAIN_LOOP__ = __rts_main_loop; - -static void __rts_init () -{ - /* do nothing in case of no run time system */ -} -init_ptr __RTS_INIT__ = __rts_init; - -static char *__fetch_name (int number) -{ - fprintf (stderr, "ChillLib: fetch_name: no runtime system library linked.\n"); - fflush (stderr); - abort (); -} -fetch_names __RTS_FETCH_NAMES__ = __fetch_name; - -static int __fetch_number (char *name) -{ - fprintf (stderr, "ChillLib: fetch_number: no runtime system library linked.\n"); - fflush (stderr); - abort (); -} -fetch_numbers __RTS_FETCH_NUMBERS__ = __fetch_number; diff --git a/libchill/sendbuffer.c b/libchill/sendbuffer.c deleted file mode 100644 index 7ca229c81be..00000000000 --- a/libchill/sendbuffer.c +++ /dev/null @@ -1,184 +0,0 @@ -/* Implement tasking-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include "rtltypes.h" -#include "rts.h" - -EXCEPTION (sendfail); - -extern void __cause_ex1 (char *ex, char *file, int lineno); - -#define CAUSE_SENDFAIL __cause_ex1 ("sendfail", filename, lineno) - -/* - * function __send_buffer - * - * parameters: - * buffer pointer to buffer descriptor - * data pointer to data descriptor - * prio priority for send action - * timeout pointer to timeout value - * filename source file name where function gets called - * lineno linenumber in source file - * - * returns: - * int 0 .. success - * 1 .. timeout - * - * exceptions: - * sendfail - * - * abstract: - * implement the CHILL SEND buffer action. - */ - -int -__send_buffer (buffer, data, prio, timeout, filename, lineno) - Buffer_Descr *buffer; - Data_Descr *data; - int prio; - void *timeout; - char *filename; - int lineno; -{ - Buffer_Queue *bq; - Buffer_Send_Queue *bsq, *bsq_entry, *prev_bsq_entry; - int cnt = 0; - int retval = 0; - - /* if we don't have anything queued on that buffer, - set up the structure */ - memcpy (&bq, buffer->buf, sizeof (Buffer_Queue *)); - if (bq == 0) - { - MALLOC (bq, sizeof (Buffer_Queue)); - memset (bq, 0, sizeof (Buffer_Queue)); - memcpy (buffer->buf, &bq, sizeof (Buffer_Queue *)); - } - - /* look if there is a process delayed on that buffer */ - if (bq->waitqueue != 0) - { - Buffer_Wait_Queue *listentry; - - /* there is already a processes waiting for that buffer, - check datalength and copy the data in */ - if (bq->waitqueue->datalen < data->length) - CAUSE_SENDFAIL; - memcpy (bq->waitqueue->dataptr, data->ptr, data->length); - - /* set up the entry */ - bq->waitqueue->is_sent = 1; - bq->waitqueue->who_sent = THIS; - - /* continue waiting process */ - __continue_that (bq->waitqueue->this, prio, filename, lineno); - - /* now dequeue all entries of this list */ - listentry = bq->waitqueue->startlist; - while (listentry != 0) - { - Buffer_Wait_Queue *tmp, *prev_entry, *bwq; - Buffer_Queue *bq; - - tmp = listentry->chain; - memcpy (&bq, listentry->bufferaddr, sizeof (Buffer_Queue *)); - prev_entry = (Buffer_Wait_Queue *)&bq->waitqueue; - bwq = bq->waitqueue; - - while (bwq != listentry) - { - prev_entry = bwq; - bwq = bwq->forward; - } - /* dequeue it */ - prev_entry->forward = bwq->forward; - bq->waitqueuelength--; - listentry = tmp; - } - - /* all done */ - return 0; - } - - /* nothing in waitqueue, set up an entry for sendqueue. - Note: we allocate here space for the data too, to reduce - calls to malloc and let the dataptr point just behind - the Buffer_Send_Queue structure. */ - MALLOC (bsq_entry, sizeof (Buffer_Send_Queue) + data->length); - memset (bsq_entry, 0, sizeof (Buffer_Send_Queue)); - - bsq_entry->priority = prio; - bsq_entry->this = THIS; - bsq_entry->datalen = data->length; - bsq_entry->dataptr = bsq_entry + 1; - memcpy (bsq_entry->dataptr, data->ptr, data->length); - - /* add entry to sendqueue */ - prev_bsq_entry = (Buffer_Send_Queue *)&bq->sendqueue; - bsq = bq->sendqueue; - - while (bsq != 0 && bsq->priority >= prio) - { - prev_bsq_entry = bsq; - bsq = bsq->forward; - } - if (bsq == 0) - { - /* beginning or end of the list */ - prev_bsq_entry->forward = bsq_entry; - } - else - { - /* somewhere in the middle */ - bsq_entry->forward = prev_bsq_entry->forward; - prev_bsq_entry->forward = bsq_entry; - } - - if (buffer->maxqueuelength != (unsigned long)-1L && - bq->sendqueuelength >= buffer->maxqueuelength) - { - /* we have to delay this process */ - bsq_entry->is_delayed = 1; - retval = __delay_this (wait_buffer_send, timeout, filename, lineno); - if (retval) - { - prev_bsq_entry->forward = bsq_entry->forward; - FREE (bsq_entry); - } - } - else - /* just say that there is one more entry in the queue */ - bq->sendqueuelength++; - return retval; -} - -/* force function __print_buffer to be linked */ -extern void __print_buffer (); -static EntryPoint pev = __print_buffer; diff --git a/libchill/sequencible.c b/libchill/sequencible.c deleted file mode 100644 index c8bdb573834..00000000000 --- a/libchill/sequencible.c +++ /dev/null @@ -1,40 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Boolean -__sequencible( Association_Mode* the_assoc, char* file, int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - if( !TEST_FLAG(the_assoc, IO_ISASSOCIATED) ) - CHILLEXCEPTION( file, line, NOTASSOCIATED, IS_NOT_ASSOCIATED ); - return TEST_FLAG(the_assoc, IO_SEQUENCIBLE) ? True : False; -} - diff --git a/libchill/setbitps.c b/libchill/setbitps.c deleted file mode 100644 index 859c9a2714c..00000000000 --- a/libchill/setbitps.c +++ /dev/null @@ -1,96 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -extern void __cause_ex1 (char *exname, char *file, int lineno); - -/* - * function __setbitpowerset - * - * parameters: - * set destination set - * bitlength length of powerset in bits - * minval lowest valid set value - * bitno bit number within set - * new_value zero or one - (new bit value) - * - * returns: - * int 1 .. found - * 0 .. not found - * - * exceptions: - * rangefail - * - * abstract: - * checks if a given value is included in a powerset - * - */ -void -__setbitpowerset (powerset, bitlength, minval, bitno, new_value, filename, lineno) - SET_WORD *powerset; - unsigned long bitlength; - long minval; - long bitno; - char new_value; /* booleans are represented as 8 bit value */ - char * filename; - int lineno; -{ - if (powerset == NULL - || bitno < minval - || (bitno - minval) >= bitlength) - __cause_ex1 ("rangefail", filename, lineno); - - bitno -= minval; - if (bitlength <= SET_CHAR_SIZE) - { - if (new_value & 1) - SET_BIT_IN_CHAR (*((SET_CHAR *)powerset), bitno); - else - CLEAR_BIT_IN_CHAR (*((SET_CHAR *)powerset), bitno); - } - else if (bitlength <= SET_SHORT_SIZE) - { - if (new_value & 1) - SET_BIT_IN_SHORT (*((SET_SHORT *)powerset), bitno); - else - CLEAR_BIT_IN_SHORT (*((SET_SHORT *)powerset), bitno); - } - else - { - powerset += (bitno/SET_WORD_SIZE); - bitno %= SET_WORD_SIZE; - if (new_value & 1) - SET_BIT_IN_WORD (*powerset, bitno); - else - CLEAR_BIT_IN_WORD (*powerset, bitno); - } -} diff --git a/libchill/setbits.c b/libchill/setbits.c deleted file mode 100644 index ffade265579..00000000000 --- a/libchill/setbits.c +++ /dev/null @@ -1,92 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -extern void __cause_ex1 (char *exname, char *file, int lineno); - -/* - * function __setbits - * - * parameters: - * out result - * bitlength length of bitstring in bits - * startbit starting bitnumber - * endbit ending bitnumber - * - * returns: - * void - * - * exceptions: - * rangefail - * - * abstract: - * set all bits from starting bitnumber to ending bitnumber - * in a powerset - * - */ -void -__setbits (out, bitlength, startbit, endbit) - SET_WORD *out; - unsigned long bitlength; - long startbit; - long endbit; -{ - unsigned long i; - - if (out == NULL - || startbit < 0 - || startbit >= bitlength - || endbit < 0 - || endbit >= bitlength - || endbit < startbit) - __cause_ex1 ("rangefail", "__setbits", __LINE__); - - if (bitlength <= SET_CHAR_SIZE) - for (i = startbit; i <= endbit; i++) - SET_BIT_IN_CHAR (*((SET_CHAR *)out), i); - else if (bitlength <= SET_SHORT_SIZE) - for (i = startbit; i <= endbit; i++) - SET_BIT_IN_SHORT (*((SET_SHORT *)out), i); - else - { - SET_WORD *p; - unsigned long bitnr; - - /* FIXME - this is inefficient! */ - for (i = startbit; i <= endbit; i++) - { - p = out + (i / SET_WORD_SIZE); - bitnr = i % SET_WORD_SIZE; - SET_BIT_IN_WORD (*p, bitnr); - } - } -} diff --git a/libchill/settextaccess.c b/libchill/settextaccess.c deleted file mode 100644 index 99c6b57553e..00000000000 --- a/libchill/settextaccess.c +++ /dev/null @@ -1,47 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -void -__settextaccess( Text_Mode* the_text, - Access_Mode* the_access, - char* file, - int line ) -{ - if( !the_text ) - CHILLEXCEPTION( file, line, EMPTY, NULL_TEXT ); - - if( !the_access ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ACCESS ); - - CLR_FLAG( the_text->access_sub, IO_TEXTIO ); - - the_text->access_sub = the_access; - SET_FLAG( the_access, IO_TEXTIO ); -} diff --git a/libchill/settextindex.c b/libchill/settextindex.c deleted file mode 100644 index bf0388ad201..00000000000 --- a/libchill/settextindex.c +++ /dev/null @@ -1,46 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -void -__settextindex( Text_Mode* the_text, - signed long the_text_index, - char* file, - int line ) -{ - if( !the_text ) - CHILLEXCEPTION( file, line, EMPTY, NULL_TEXT ); - - if( the_text_index < 0 - || the_text->access_sub->reclength - 2 < the_text_index ) - CHILLEXCEPTION( file, line, TEXTFAIL, BAD_TEXTINDEX ); - - the_text->actual_index = the_text_index; -} - diff --git a/libchill/settextrecord.c b/libchill/settextrecord.c deleted file mode 100644 index bd03af3f16f..00000000000 --- a/libchill/settextrecord.c +++ /dev/null @@ -1,45 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -void -__settextrecord( Text_Mode* the_text, - VarString* the_text_rec, - char* file, - int line ) -{ - if( !the_text ) - CHILLEXCEPTION( file, line, EMPTY, NULL_TEXT ); - - if( !the_text_rec ) - CHILLEXCEPTION( file, line, EMPTY, NULL_TEXTREC ); - - the_text->text_record = the_text_rec; -} - diff --git a/libchill/sliceps.c b/libchill/sliceps.c deleted file mode 100644 index 39b54c046fe..00000000000 --- a/libchill/sliceps.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __powerset_slice - * - * parameters: - * dps dest powerset - * dbl destination bit length - * sps sourcepowerset - * sbl source powerset length in bits - * start starting bit number - * end ending bit number - * - * exceptions: - * none - * - * abstract: - * Extract into a powerset a slice of another powerset. - * - */ -extern void -__pscpy (SET_WORD *dps, - unsigned long dbl, - unsigned long doffset, - SET_WORD *sps, - unsigned long sbl, - unsigned long start, - unsigned long length); - -void -__psslice (dps, dbl, sps, sbl, start, length) - SET_WORD *dps; - unsigned long dbl; - SET_WORD *sps; - unsigned long sbl; - unsigned long start; - unsigned long length; -{ - /* simply supply a zero destination offset and copy the slice */ - __pscpy (dps, dbl, (unsigned long)0, sps, sbl, start, length); -} diff --git a/libchill/terminate.c b/libchill/terminate.c deleted file mode 100644 index c2da4038802..00000000000 --- a/libchill/terminate.c +++ /dev/null @@ -1,67 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "rtltypes.h" - -extern void __cause_ex1 (char *exname, char *file, int lineno); - -/* define needed exceptions */ -EXCEPTION (empty) - -/* - * function __terminate - * - * parameter: - * ptr pointer to memory to free - * filename source file which issued the call - * linenumber line number of the call within that file - * - * returns: - * void - * - * exceptions: - * empty - * - * abstract: - * free memory previously allocated by __allocate. - * -*/ - -void -__terminate (ptr, filename, linenumber) - void *ptr; - char *filename; - int linenumber; -{ - if (! ptr) - __cause_ex1 ("empty", filename, linenumber); - free (ptr); -} diff --git a/libchill/unhex.c b/libchill/unhex.c deleted file mode 100644 index 1a7a34408c1..00000000000 --- a/libchill/unhex.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include -#include - -/* - * function unhandled_exception - * - * parameter: - * exname name of exception - * file filename - * lineno line number - * user_arg user specified argument - * - * returns: - * never - * - * abstract: - * print an error message about unhandled exception and call abort - * - */ - -void -unhandled_exception (exname, file, lineno, user_arg) - char *exname; - char *file; - int lineno; - int user_arg; -{ - sleep (1); /* give previous output a chance to finish */ - fprintf (stderr, "ChillLib: unhandled exception `%s' in file %s at line %d\n", - exname, file, lineno); - fflush (stderr); - abort (); -} /* unhandled_exception */ diff --git a/libchill/unhex1.c b/libchill/unhex1.c deleted file mode 100644 index cae20c5e258..00000000000 --- a/libchill/unhex1.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Implement runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include -#include - -extern void cause_exception (char *ex, char *file, int lineno, int arg); -extern void unhandled_exception (char *ex, char *file, int lineno, int arg); - -/* - * function __unhandled_ex - * - * parameter: - * exname name of exception - * file filename - * lineno line number - * - * returns: - * never - * - * abstract: - * This function gets called by compiler generated code when an unhandled - * exception occures. - * First cause_exception gets called (which may be user defined) and - * then the standard unhandled exception routine gets called. - * - */ - -void -__unhandled_ex (exname, file, lineno) - char *exname; - char *file; - int lineno; -{ - cause_exception (exname, file, lineno, 0); - unhandled_exception (exname, file, lineno, 0); -} /* unhandled_exception */ diff --git a/libchill/variable.c b/libchill/variable.c deleted file mode 100644 index 996118e8653..00000000000 --- a/libchill/variable.c +++ /dev/null @@ -1,39 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Boolean -__variable( Association_Mode* the_assoc, char* file, int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - if( !TEST_FLAG(the_assoc, IO_ISASSOCIATED) ) - CHILLEXCEPTION( file, line, NOTASSOCIATED, IS_NOT_ASSOCIATED ); - return TEST_FLAG( the_assoc, IO_VARIABLE ) ? True : False; -} diff --git a/libchill/waitbuffer.c b/libchill/waitbuffer.c deleted file mode 100644 index 2d967d93e48..00000000000 --- a/libchill/waitbuffer.c +++ /dev/null @@ -1,306 +0,0 @@ -/* Implement tasking-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include "rtltypes.h" -#include "rts.h" - -extern void __cause_ex1 (char *ex, char *file, int lineno); - -EXCEPTION (bufferinconsistency) -#define CAUSE_BUFFINCONS __cause_ex1 ("bufferinconsistency", filename, lineno) -EXCEPTION (spacefail); -#define CAUSE_SPACEFAIL __cause_ex1 ("spacefail", filename, lineno) - -/* - * function __wait_buffer - * - * parameters: - * buf_got pointer to location for writing the received buffer address - * nbuf number of buffers in RECEIVE CASE - * bufptr array of pointers to buffer descriptor - * datap pointer where to store data - * datalen length of data - * ins pointer to instance location or 0 - * else_clause else specified or not - * to_loc pointer to timesupervision value - * filename source file name where function gets called - * lineno linenumber in source file - * - * returns: - * int 0 .. success - * 1 .. timed out - * - * exceptions: - * bufferinconsistency if something's wrong in the buffer queue's - * spacefail out of heap space of datalength of receiver - * less than data avilable. - * - * abstract: - * implement the CHILL RECEIVE buffer CASE action. - */ - -int -__wait_buffer (buf_got, nbuf, bufptr, datap, datalen, ins, - else_clause, to, filename, lineno) - void **buf_got; - int nbuf; - Buffer_Descr *bufptr[]; - void *datap; - int datalen; - INSTANCE *ins; - int else_clause; - void *to; - char *filename; - int lineno; -{ - int i; - Buffer_Wait_Queue *start_list; - Buffer_Queue **retval; - Buffer_Queue **highprio; - int timed_out; - - /* look if there is a buffer already sent */ - highprio = 0; - for (i = 0; i < nbuf; i++) - { - Buffer_Queue *bq; - - memcpy (&bq, bufptr[i]->buf, sizeof (Buffer_Queue *)); - if (bq != 0 && bq->sendqueue != 0) - { - if (highprio != 0) - { - Buffer_Queue *bsq = *highprio; - - if (bq->sendqueue->priority > bsq->sendqueue->priority) - highprio = bufptr[i]->buf; - } - else - highprio = bufptr[i]->buf; - } - } - - if (highprio != 0) - { - Buffer_Queue *bq; - - memcpy (&bq, highprio, sizeof (Buffer_Queue *)); - if (bq != 0 && bq->sendqueue != 0) - { - Buffer_Send_Queue *bsq = bq->sendqueue; - Buffer_Send_Queue *tmp; - - /* check data length */ - if (datalen < bsq->datalen) - /* something's totaly wrong. Raise exception */ - CAUSE_SPACEFAIL; - - /* copy data out */ - memcpy (datap, bsq->dataptr, bsq->datalen); - - /* update instance, if present */ - if (ins != 0) - memcpy (ins, &bsq->this, sizeof (INSTANCE)); - - /* dequeue entry */ - tmp = bsq; - bq->sendqueue = tmp->forward; - - if (tmp->is_delayed) - { - /* there is an instance delayed on a send, - continue it. */ - __continue_that (tmp->this, tmp->priority, filename, lineno); - FREE (tmp); - - /* return the buffer we have received from */ - *buf_got = (void *)highprio; - return 0; - } - - /* just decrease sendqueue length */ - bq->sendqueuelength--; - - FREE (tmp); - - /* as we got an entry free, we should continue - an INSTANCE which is delayed on a send at this - buffer */ - bsq = bq->sendqueue; - while (bsq != 0) - { - if (bsq->is_delayed) - { - bq->sendqueuelength++; - bsq->is_delayed = 0; - __continue_that (bsq->this, bsq->priority, filename, lineno); - break; - } - bsq = bsq->forward; - } - /* return the buffer we have received from */ - *buf_got = (void *)highprio; - return 0; - } - } - - /* if we come here, there is no buffer already sent */ - if (else_clause != 0) - { - /* in that case we return immediately */ - *buf_got = 0; - return 0; - } - - /* now we have to queue ourself to the wait queue(s) */ - start_list = 0; - for (i = 0; i < nbuf; i++) - { - Buffer_Queue *bq; - Buffer_Wait_Queue *wrk; - Buffer_Wait_Queue *bwq; - Buffer_Wait_Queue *prev_queue_entry = 0; - Buffer_Wait_Queue *prev_list_entry; - int j, have_done = 0; - - for (j = 0; j < i; j++) - { - if (bufptr[i]->buf == bufptr[j]->buf) - { - have_done = 1; - break; - } - } - if (have_done) - continue; - - memcpy (&bq, bufptr[i]->buf, sizeof (Buffer_Queue *)); - if (bq == 0) - { - MALLOC (bq, sizeof (Buffer_Queue)); - memset (bq, 0, sizeof (Buffer_Queue)); - /* *(bufptr[i]->buf) = bq; may be unaligned */ - memcpy (bufptr[i]->buf, &bq, sizeof (Buffer_Queue *)); - } - MALLOC (wrk, sizeof (Buffer_Wait_Queue)); - memset (wrk, 0, sizeof (Buffer_Wait_Queue)); - bwq = (Buffer_Wait_Queue *)&bq->waitqueue; - - wrk->this = THIS; - wrk->datalen = datalen; - wrk->dataptr = datap; - wrk->bufferaddr = bufptr[i]->buf; - - /* queue it at the end of buffer wait queue */ - while (bwq->forward != 0) - bwq = bwq->forward; - wrk->forward = bwq->forward; - bwq->forward = wrk; - - /* queue it into list */ - wrk->startlist = start_list; - if (! start_list) - { - start_list = wrk; - prev_list_entry = wrk; - wrk->startlist = start_list; - } - else - { - prev_list_entry->chain = wrk; - prev_list_entry = wrk; - } - - /* increment wait queue count */ - bq->waitqueuelength++; - } - - /* tell runtime system to delay this process */ - timed_out = __delay_this (wait_buffer_receive, to, filename, lineno); - if (timed_out) - { - /* remove all entries from buffer queues */ - Buffer_Wait_Queue *listentry = start_list; - - while (listentry != 0) - { - Buffer_Queue *bq = *(listentry->bufferaddr); - Buffer_Wait_Queue *prev_entry = (Buffer_Wait_Queue *)&bq->waitqueue; - Buffer_Wait_Queue *bwq = bq->waitqueue; - - while (bwq != listentry) - { - prev_entry = bwq; - bwq = bwq->forward; - } - /* dequeue it */ - prev_entry->forward = bwq->forward; - bq->waitqueuelength--; - listentry = listentry->chain; - } - } - - /* someone has continued us, find which buffer got ready */ - retval = 0; - - while (start_list != 0) - { - Buffer_Wait_Queue *tmp = start_list->chain; - - if (start_list->is_sent) - { - /* this one has been sent */ - /* save return value */ - if (retval == 0) - retval = start_list->bufferaddr; - else - /* more than one has been sent, that's wrong */ - CAUSE_BUFFINCONS; - - /* update instance, if present */ - if (ins != 0) - memcpy (ins, &start_list->who_sent, sizeof (INSTANCE)); - } - FREE (start_list); - start_list = tmp; - } - - /* now check if there was really a buffer got */ - if (retval == 0 && !timed_out) - /* something's totally wrong, raise an exception */ - CAUSE_BUFFINCONS; - - if (!timed_out) - *buf_got = (void *)retval; - return timed_out; -} - -/* force function __print_buffer to be linked */ -extern void __print_buffer (); -static EntryPoint pev = __print_buffer; diff --git a/libchill/waituntil.c b/libchill/waituntil.c deleted file mode 100644 index 2245a81809a..00000000000 --- a/libchill/waituntil.c +++ /dev/null @@ -1,82 +0,0 @@ -/* Implement timing-related runtime actions for CHILL. - Copyright (C) 1992,1993 Free Software Foundation, Inc. - Author: Wilfried Moser - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "rtltypes.h" -#include "rts.h" - -EXCEPTION (timerfail); - -/* - * function __wait_until - * - * parameters: - * abstime absolute time value - * filename - * linenumber - * - * returns: - * int 0 on success, 1 on failure - * - * exceptions: - * timerfail - * - * abstract: - * check for given argument is valid, calculate how long to wait in - * seconds and call os to do it. - * - */ - -int -__wait_until (abstime, filename, linenumber) - unsigned long abstime; - char *filename; - int linenumber; -{ - RtsTime now, delta, abs_rtstime; - - /* get current time */ - __rtstime (&now); - - abs_rtstime.secs = abstime; - abs_rtstime.nanosecs = 0; - - if (abs_rtstime.nanosecs < now.nanosecs) - { - abs_rtstime.secs--; - abs_rtstime.nanosecs += 1000000000; - } - - delta.secs = abs_rtstime.secs - now.secs; - delta.nanosecs = abs_rtstime.nanosecs - now.nanosecs; - - if (delta.secs > abs_rtstime.secs) - /* cannot wait into past */ - return 1; - - return __delay_this (wait_wait, &delta, filename, linenumber) == 1 ? 0 : 1; -} diff --git a/libchill/writeable.c b/libchill/writeable.c deleted file mode 100644 index 9278ed1ec1a..00000000000 --- a/libchill/writeable.c +++ /dev/null @@ -1,39 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include "fileio.h" - -Boolean -__writeable( Association_Mode* the_assoc, char* file, int line ) -{ - if( !the_assoc ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ASSOCIATION ); - if( !TEST_FLAG(the_assoc, IO_ISASSOCIATED) ) - CHILLEXCEPTION( file, line, NOTASSOCIATED, IS_NOT_ASSOCIATED ); - return TEST_FLAG(the_assoc, IO_WRITEABLE) ? True : False; -} diff --git a/libchill/writerecord.c b/libchill/writerecord.c deleted file mode 100644 index 887bb3d4989..00000000000 --- a/libchill/writerecord.c +++ /dev/null @@ -1,141 +0,0 @@ -/* 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#include -#include -#include -#include -#include - -#include "fileio.h" - -static -void -doWrite( Access_Mode* the_access, void* buf, size_t nbyte ) -{ - size_t nwrit; - - nwrit = write( the_access->association->handle, buf, nbyte ); - - if( nwrit < nbyte ) - { - the_access->association->syserrno = errno; - RWEXCEPTION( WRITEFAIL, OS_IO_ERROR ); - } -} - - -void -__writerecord( Access_Mode* the_access, - signed long the_index, - char* the_val_addr, - unsigned long the_val_len, - char* file, - int line ) - -{ - Association_Mode* the_assoc; - unsigned long info; - char* actaddr; - unsigned short actlen; - off_t filepos; - - if( !the_access ) - CHILLEXCEPTION( file, line, EMPTY, NULL_ACCESS ); - - if( !(the_assoc = the_access->association) ) - CHILLEXCEPTION( file, line, NOTCONNECTED, IS_NOT_CONNECTED ); - - /* Usage must no be ReadOnly */ - if( the_assoc->usage == ReadOnly ) - CHILLEXCEPTION( file, line, WRITEFAIL, BAD_USAGE ); - - /* - * Positioning - */ - if( TEST_FLAG( the_access, IO_INDEXED ) ) - { - /* index expression must be within bounds of index mode */ - if( the_index < the_access->lowindex - || the_access->highindex < the_index ) - CHILLEXCEPTION( file, line, RANGEFAIL, BAD_INDEX ); - filepos = the_access->base + - (the_index - the_access->lowindex) * the_access->reclength; - - if( lseek( the_assoc->handle, filepos, SEEK_SET ) == -1L ) - CHILLEXCEPTION( file, line, WRITEFAIL, LSEEK_FAILS ); - } - - if( (info = setjmp( __rw_exception )) ) - CHILLEXCEPTION( file, line, info>>16, info & 0xffff ); - - if( TEST_FLAG( the_access, IO_TEXTIO ) ) - { - if( TEST_FLAG( the_access, IO_INDEXED ) ) - { - int nspace = the_access->reclength - the_val_len; - memset( the_val_addr + 2 + the_val_len, ' ', nspace ); - actlen = the_access->reclength - 2; - MOV2(the_val_addr,&actlen); - doWrite( the_access, the_val_addr, the_access->reclength ); - } - else - { - if( the_assoc->ctl_pre ) - write( the_assoc->handle, &the_assoc->ctl_pre, 1 ); - MOV2(&actlen,the_val_addr); - write( the_assoc->handle, the_val_addr + 2, actlen ); - if( the_assoc->ctl_post ) - write( the_assoc->handle, &the_assoc->ctl_post, 1 ); - the_assoc->ctl_pre = '\0'; - the_assoc->ctl_post = '\n'; - } - } - else - { - switch( the_access->rectype ) - { - case Fixed: - if( TEST_FLAG( the_assoc, IO_VARIABLE ) ) - { - actlen = the_access->reclength; - doWrite( the_access, &actlen, sizeof(actlen) ); - } - doWrite( the_access, the_val_addr, the_val_len ); - break; - case VaryingChars: - MOV2(&actlen,the_val_addr); - if( actlen > the_access->reclength - 2 ) - CHILLEXCEPTION( file, line, RANGEFAIL, RECORD_TOO_LONG ); - actlen = TEST_FLAG( the_access, IO_INDEXED ) - ? the_access->reclength : actlen + 2; - doWrite( the_access, the_val_addr, actlen ); - break; - } - } -} diff --git a/libchill/xorps.c b/libchill/xorps.c deleted file mode 100644 index 83f972071f1..00000000000 --- a/libchill/xorps.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Implement POWERSET 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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ - -#define __CHILL_LIB__ - -#include -#include "powerset.h" - -/* - * function __xorpowerset - * - * parameters: - * out return from __xorpowerset - * left left powerset - * right right powerset - * bitlength length of powerset in bits - * - * returns: - * void - * - * exceptions: - * none - * - * abstract: - * xor's 2 powersets - * - */ - -void -__xorpowerset (out, left, right, bitlength) - SET_WORD *out; - SET_WORD *left; - SET_WORD *right; - unsigned long bitlength; -{ - if (bitlength <= SET_CHAR_SIZE) - { - *((SET_CHAR *)out) = *((SET_CHAR *)left) ^ - *((SET_CHAR *)right); - MASK_UNUSED_CHAR_BITS((SET_CHAR *)out, bitlength); - } - else if (bitlength <= SET_SHORT_SIZE) - { - *((SET_SHORT *)out) = *((SET_SHORT *)left) ^ - *((SET_SHORT *)right); - MASK_UNUSED_SHORT_BITS((SET_SHORT *)out, bitlength); - } - else - { - unsigned long len = BITS_TO_WORDS(bitlength); - register unsigned long i; - - for (i = 0; i < len; i++) - out[i] = left[i] ^ right[i]; - MASK_UNUSED_WORD_BITS ((out + len - 1), - bitlength % SET_WORD_SIZE); - } -} -- 2.11.0