1
0
mirror of https://github.com/adtools/clib2.git synced 2025-12-08 14:59:05 +00:00

52 Commits

Author SHA1 Message Date
Olaf Barthel
48f67425c0 This commit was manufactured by cvs2svn to create tag 'V1_178'.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/tags/V1_178@14751 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-10-07 14:58:04 +00:00
Olaf Barthel
aa3ccda8de c.lib 1.178 (7.10.2004)
- The OS4 version had floating point math support code enabled in all
  libraries and not just "libm.a". Fixed.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14750 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-10-07 14:58:03 +00:00
Thomas Frieden
8062f49f1c Fixes for compiler errors with soft-float
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14749 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-10-07 11:03:46 +00:00
Olaf Barthel
1310865c33 - Floating point support code generation was enabled for the entire PowerPC
library, and not just for "libm.a". Fixed.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14748 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-10-07 09:20:44 +00:00
Olaf Barthel
2ed76311fd - Updated the release notes file.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14747 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-10-02 15:59:40 +00:00
Olaf Barthel
3f19d52557 - Fixed the stack swapping function which, for reasons unknown, ceased to work.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14746 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-10-02 15:56:13 +00:00
Olaf Barthel
7038751f6b - Updated the .cvsignore file to ignore the _rev.i and _rev.s files.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14745 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-10-01 15:56:54 +00:00
Olaf Barthel
5d9e4c07a6 - The start time used by clock() is now initialized by a constructor
function.

- NOTE THAT ALL THE CHANGES WITH REGARD TO USE OF DESTRUCTOR AND
  CONSTRUCTOR FUNCTIONS REQUIRE A COMPLETE REBUILD OF THE LIBRARY! IF
  YOU DO NOT DO THIS, THE CONSTRUCTOR/DESTRUCTOR FUNCTIONS MAY NOT
  GET CALLED.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14744 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-29 19:57:58 +00:00
Olaf Barthel
f49a45f6a8 - The socket exit code now calls the common stdio function which
flushes and shuts down all buffered and unbuffered files.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14743 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-29 17:03:57 +00:00
Olaf Barthel
fef99a0181 - Reversed the 'unsigned long' -> 'ULONG' change in the constructor
handling code. It is not necessary.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14742 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-29 16:54:54 +00:00
Olaf Barthel
17a0e794c5 - Added an OS4 specific build makefile.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14741 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-29 14:37:10 +00:00
Olaf Barthel
64f39b51ae - Modified the socket functions which now take parameters to constant
pointers.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14740 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-29 14:31:57 +00:00
Olaf Barthel
a7e0bc8e16 - Fixed fabs() for PowerPC soft-float support; previously, the function
definitions would clash.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14739 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-29 14:30:03 +00:00
Olaf Barthel
14595cc0a8 - unistd_timer.c was missing...
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14738 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-29 14:21:34 +00:00
Olaf Barthel
8555296691 c.lib 1.177 (29.9.2004)
- Moved the locale initialization/cleanup code into constructors
  and destructors.

- The socket cleanup function is now a destructor.

- The math cleanup function is now a destructor.

- The wildcard cleanup function is now a destructor.

- The stdio cleanup function is now a destructor.

- The stack extension cleanup function is now a destructor.

- The code that cleans up after the program's current directory
  was changed is now a destructor function.

- Moved the initialization/cleanup code for unlink() into constructors
  and destructors.

- Moved the initialization/cleanup code for usergroup.library into
  constructors and destructors.

- Added usleep(), and created wrapper code that both sleep() and
  usleep() can use.

- Added strtoll() and strtoull(), with further changes to <limits.h>
  and <stdlib.h>.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14737 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-29 14:17:46 +00:00
Olaf Barthel
53bb602493 - Added usleep(), and created wrapper code that both sleep() and
usleep() can use.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14736 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-29 12:10:35 +00:00
Olaf Barthel
a048eadf09 - The timeval definition should work with OS 3.1 compatible header files again.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14735 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-29 10:15:57 +00:00
Thomas Frieden
51e20cee1d Bumped revision
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14733 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-27 15:11:20 +00:00
Thomas Frieden
618af18519 Compiling with soft-float now ommits storing the FPU registers
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14732 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-27 15:07:20 +00:00
Thomas Frieden
0cbc101798 Some adjustments so that the function is available even in non-FPU code
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14731 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-27 15:06:19 +00:00
Thomas Frieden
5d508c6e6d Added soft-float and small data targets
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14730 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-27 15:04:51 +00:00
Olaf Barthel
a4b138e406 - Added strtoll() and strtoull(), with further changes to <limits.h>
and <stdlib.h>.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14729 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-20 17:16:07 +00:00
Olaf Barthel
7d21a272cc - Changed the stack layout used for the StackSwap() call.
- Cleaned up the commented-out sections that deal with the SAS/C
  profiling code.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14728 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-18 09:03:30 +00:00
Olaf Barthel
7ae8399e43 - Fixed the broken umask() function definition for GCC 68k and SAS/C: it
does have a return value...


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14727 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-16 08:45:03 +00:00
Jens Maus
0d101fd928 - added .cvsignore file to make sure autogenerated files/dirs are not
added to the repository


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14726 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-10 09:06:37 +00:00
Olaf Barthel
6a2db55fc2 - Added the test program for the sprintf() buffer flush bug, courtesy of
Jens Langner.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14725 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-10 07:41:13 +00:00
Olaf Barthel
6214bc2067 c.lib 1.175 (10.9.2004)
- <stdarg.h> now tries to use the compiler supplied, machine specific
  <stdarg.h> file and also includes the OS4-specifc <sys/amigaos-va.h>
  file, if necessary.

- Added another test to <sys/time.h> to check if the "timeval" definition is
  already in place. If it is, <exec/types.h> will not be included.

- <sys/time.h> can be made to define the timeval data structure locally if
  the __USE_CLIB2_TIMEVAL preprocessor symbol is defined. In this case no
  <exec/types.h> or <devices/timer.h> file will be read.

- The sprintf() family did not properly handle empty strings as format
  specifications. This would result in a necessary buffer flush action
  getting skipped, which consequently did not put the string termination
  character into the output buffer.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14723 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-10 07:39:20 +00:00
Olaf Barthel
4a4c8b2ef9 - Moved the POSIX<->Amiga timeval member variable definitions again.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14722 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-09 10:56:24 +00:00
Olaf Barthel
f3c4ee68cd - Broke down the tests for the __TIMEVAL_ALREADY_DEFINED and DEVICES_TIMER_H
symbols into two lines.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14721 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-09 08:30:31 +00:00
Olaf Barthel
0848048029 - <stdarg.h> now tries to use the compiler supplied, machine specific
<stdarg.h> file and also includes the OS4-specifc <sys/amigaos-va.h>
  file, if necessary.

- Added another test to <sys/time.h> to check if the "timeval" definition is
  already in place. If it is, <exec/types.h> will not be included.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14720 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-09-09 08:25:31 +00:00
Olaf Barthel
dfd3dc3170 - Replaced the rint() and rintf() functions with the fdlibm code.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14719 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-27 13:49:17 +00:00
Olaf Barthel
5d705f3c30 c.lib 1.174 (27.8.2004)
- The parameters of atan2() were swapped. Fixed.

- Merged fdlibm 5.3 changes with __kernel_tan(), __exp() and __pow()
  functions.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14718 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-27 11:40:49 +00:00
Olaf Barthel
51f1dacdfa c.lib 1.173 (25.8.2004)
- The <assert.h> header file was missing the C++ 'extern "C" { .. }'
  declarations.

- Added a new function __get_default_file() which allows direct access
  to the low level file handle/socket descriptor associated with a
  file descriptor.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14716 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-25 15:27:28 +00:00
Olaf Barthel
56e788a268 - Removed the USE_64_BIT_INTS definition from the GCC-68k makefile.
Apparently, the 64 bit integer math still doesn't work right in the
  plain 68k libgcc.a.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14715 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-23 13:47:32 +00:00
Olaf Barthel
916dfa3c6a c.lib 1.172 (21.8.2004)
- acos() now returns 0 for a domain error.

- asin() now returns 0 for a domain error.

- atan2() now returns 0 for a domain error.

- fmod() now returns x if y == 0 and sets a
  domain error.

- sqrt() now returns 0 for a domain error.

- Added NaN and +Inf constants to the math library
  initialization code which could come in handy later.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14713 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-21 18:57:41 +00:00
Olaf Barthel
de24377581 c.lib 1.171 (16.8.2004)
- Added "math_hypot.c"

- The 68k build makefile now builds the vfprintf/vfscanf functions
  with %lld/%llu support.

- Split the release notes file into changes and actual release notes,
  which may overlap but differ in technical content.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14711 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-16 09:33:13 +00:00
Olaf Barthel
51c2ad8cfd - Added a build makefile for GCC/68k.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14710 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-14 15:01:22 +00:00
Olaf Barthel
a9b217d3f8 - Moved the address alignment test macros for memchr(), memcmp(), memcpy(),
memmove() and memset() into "string_headers.h".


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14709 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-14 11:11:01 +00:00
Olaf Barthel
a0c638e3d6 - memcmp(), memcpy() and memset() now build with the GCC 2.x compatibility
header files in place.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14708 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-14 10:00:33 +00:00
Olaf Barthel
16407d5389 c.lib 1.170 (14.8.2004)
- Added "math_logb.c", and it appears to work, too.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14706 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-14 08:54:25 +00:00
Olaf Barthel
c18e21ee36 - Added "math_logb.c"; I still have to verify that it works as expected.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14705 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-12 12:31:29 +00:00
Olaf Barthel
3f284b7fb8 c.lib 1.169 (8.8.2004)
- Since the 'long double' data type is not really supported by the GCC
  versions we use (and not supported by SAS/C either) building the
  library with support code for it is now a configurable option. Unless
  enabled, 'long double' is now treated like 'double'.

- Reworked the HUGE_VAL definition which previously would default to
  Infinity. The new code properly defines this to the largest
  representable floating point number. The 'great' thing about the
  HUGE_VAL definition in this library is that it's a reference to
  a binary constant initialized by the library startup code. So any
  application checking for HUGE_VAL merely needs to be relinked
  rather than recompiled.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14703 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-08 10:55:57 +00:00
Olaf Barthel
0a3962a105 - Moved the isascii() definition behind the "The following is not part of the
ISO 'C' (1994) standard." warning.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14702 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-07 10:42:04 +00:00
Olaf Barthel
1ebd864f60 c.lib 1.168 (7.8.2004)
- Ditched __is_infinity() and __is_not_a_number(), brought them back
  as isinf() and isnan().

- Updated code and header files to state exactly which ISO 'C' version
  is meant by the "The following is not part of the ISO 'C' standard."
  warning.

- Integrated rint() and rintf().


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14700 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-07 10:24:04 +00:00
Olaf Barthel
115497faec - Ditched __is_infinity() and __is_not_a_number(), brought them back
as isinf() and isnan().

- Updated code and header files to state exactly which ISO 'C' version
  is meant by the "The following is not part of the ISO 'C' standard."
  warning.

- Integrated rint() and rintf().


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14699 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-07 09:15:33 +00:00
Thomas Frieden
f6c5e12f63 Implements the functions rint and rintf (float version).
The rint function rounds the argument to the integral value. Used for
example in the Ogg Vorbis libraries.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14698 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-06 12:56:43 +00:00
Olaf Barthel
04d2b93463 - Fixed the smakefile so that the library builds properly.
- Moved the test program smakefile portions into a separate file.

- Added comments explaining how to set up the header files.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14697 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-06 11:53:49 +00:00
Olaf Barthel
bdaf52ea0e - Added notes on building the library
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14696 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-06 11:52:21 +00:00
Olaf Barthel
f3435ba057 - Added a build smakefile, which is based upon the original smakefile used for building
the library and the test code.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14695 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-08-06 11:51:50 +00:00
Olaf Barthel
5d1a8ec197 - Modified <string.h> so that it no longer causes warnings with GCC 2.95.x
if -fno-builtin is not used.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14694 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-07-30 09:25:16 +00:00
Olaf Barthel
1b4d0215d7 c.lib 1.167 (29.7.2004)
- Modified __is_infinity() and __is_not_a_number() to use more portable
  methods for accessing the low level representation of the IEEE 754
  numbers they work on.

- Fixed a compiler warning in h_strerror()


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14693 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-07-29 08:35:15 +00:00
Olaf Barthel
93619a81a3 - Modified __is_infinity() and __is_not_a_number() to use more portable
methods for accessing the low level representation of the IEEE 754
  numbers they work on.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14692 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-07-29 08:14:49 +00:00
190 changed files with 5751 additions and 4139 deletions

View File

@@ -1,5 +1,5 @@
# #
# $Id: GNUmakefile.68k,v 1.2 2004-07-28 15:50:44 obarthel Exp $ # $Id: GNUmakefile.68k,v 1.11 2004-10-07 09:20:44 obarthel Exp $
# #
# :ts=8 # :ts=8
# #
@@ -40,7 +40,7 @@ endif
.c.o: .c.o:
@echo "Compiling $<" @echo "Compiling $<"
@$(CC) -c $(CFLAGS) -DIEEE_FLOATING_POINT_SUPPORT $< @$(CC) -c $(CFLAGS) $<
$(LIBC_OBJS)/%.o : %.c $(LIBC_OBJS)/%.o : %.c
@echo "Compiling $< [$(TYPE):c]" @echo "Compiling $< [$(TYPE):c]"
@@ -144,9 +144,9 @@ C_LIB = \
fcntl_open.o \ fcntl_open.o \
fcntl_read.o \ fcntl_read.o \
fcntl_write.o \ fcntl_write.o \
fcntl_get_default_file.o \
libgen_basename.o \ libgen_basename.o \
libgen_dirname.o \ libgen_dirname.o \
locale_data.o \
locale_init_exit.o \ locale_init_exit.o \
locale_localeconv.o \ locale_localeconv.o \
locale_setlocale.o \ locale_setlocale.o \
@@ -306,6 +306,8 @@ C_LIB = \
stdlib_startup.o \ stdlib_startup.o \
stdlib_strtol.o \ stdlib_strtol.o \
stdlib_strtoul.o \ stdlib_strtoul.o \
stdlib_strtoll.o \
stdlib_strtoull.o \
stdlib_swapstack.o \ stdlib_swapstack.o \
stdlib_sysbase.o \ stdlib_sysbase.o \
stdlib_system.o \ stdlib_system.o \
@@ -315,7 +317,6 @@ C_LIB = \
stdlib_udivsi4.o \ stdlib_udivsi4.o \
stdlib_umodsi3.o \ stdlib_umodsi3.o \
stdlib_unsetenv.o \ stdlib_unsetenv.o \
stdlib_usergroup.o \
stdlib_wildcard_expand.o \ stdlib_wildcard_expand.o \
strings_strcasecmp.o \ strings_strcasecmp.o \
strings_strncasecmp.o \ strings_strncasecmp.o \
@@ -361,9 +362,9 @@ C_LIB = \
time_time.o \ time_time.o \
unistd_access.o \ unistd_access.o \
unistd_chdir.o \ unistd_chdir.o \
unistd_chdir_exit.o \
unistd_chown.o \ unistd_chown.o \
unistd_currentpathname.o \ unistd_currentpathname.o \
unistd_data.o \
unistd_dup.o \ unistd_dup.o \
unistd_dup2.o \ unistd_dup2.o \
unistd_fchown.o \ unistd_fchown.o \
@@ -381,8 +382,11 @@ C_LIB = \
unistd_realpath.o \ unistd_realpath.o \
unistd_sleep.o \ unistd_sleep.o \
unistd_symlink.o \ unistd_symlink.o \
unistd_timer.o \
unistd_time_delay.o \
unistd_truncate.o \ unistd_truncate.o \
unistd_unlink.o \ unistd_unlink.o \
unistd_usleep.o \
utime_utime.o utime_utime.o
UNIX_LIB = \ UNIX_LIB = \
@@ -395,6 +399,7 @@ UNIX_LIB = \
fcntl_creat.o \ fcntl_creat.o \
fcntl_fcntl.o \ fcntl_fcntl.o \
fcntl_open.o \ fcntl_open.o \
fcntl_get_default_file.o \
mount_convertinfo.o \ mount_convertinfo.o \
mount_statfs.o \ mount_statfs.o \
stat_chmod.o \ stat_chmod.o \
@@ -420,6 +425,7 @@ UNIX_LIB = \
stdlib_system.o \ stdlib_system.o \
unistd_access.o \ unistd_access.o \
unistd_chdir.o \ unistd_chdir.o \
unistd_chdir_exit.o \
unistd_chown.o \ unistd_chown.o \
unistd_getcwd.o \ unistd_getcwd.o \
unistd_lchown.o \ unistd_lchown.o \
@@ -452,12 +458,18 @@ MATH_LIB = \
math_floor.o \ math_floor.o \
math_fmod.o \ math_fmod.o \
math_frexp.o \ math_frexp.o \
math_hypot.o \
math_init_exit.o \ math_init_exit.o \
math_isinf.o \
math_isnan.o \
math_ldexp.o \ math_ldexp.o \
math_log.o \ math_log.o \
math_log10.o \ math_log10.o \
math_logb.o \
math_modf.o \ math_modf.o \
math_pow.o \ math_pow.o \
math_rint.o \
math_rintf.o \
math_sin.o \ math_sin.o \
math_sinh.o \ math_sinh.o \
math_sqrt.o \ math_sqrt.o \
@@ -467,8 +479,6 @@ MATH_LIB = \
stdio_flush.o \ stdio_flush.o \
stdio_fprintf.o \ stdio_fprintf.o \
stdio_fscanf.o \ stdio_fscanf.o \
stdio_isinfinity.o \
stdio_isnotanumber.o \
stdio_printf.o \ stdio_printf.o \
stdio_scanf.o \ stdio_scanf.o \
stdio_snprintf.o \ stdio_snprintf.o \
@@ -696,11 +706,6 @@ STARTUPS := nrcrt0.o nbcrt0.o nr32crt0.o nb32crt0.o ncrt0.o mainnb.o mainb.o mai
############################################################################## ##############################################################################
all: \ all: \
lib/libm020/libm.a \
lib/libm.a \
lib/libb/libm020/libm.a \
lib/libb/libm.a \
lib/libb32/libm020/libm.a \
lib/nrcrt0.o \ lib/nrcrt0.o \
lib/nbcrt0.o \ lib/nbcrt0.o \
lib/ncrt0.o \ lib/ncrt0.o \
@@ -708,7 +713,12 @@ all: \
lib/n32rcrt0.o \ lib/n32rcrt0.o \
lib/mainnb.o \ lib/mainnb.o \
lib/mainb.o \ lib/mainb.o \
lib/mainb32.o lib/mainb32.o \
lib/libm.a \
lib/libm020/libm.a \
lib/libb/libm.a \
lib/libb/libm020/libm.a \
lib/libb32/libm020/libm.a
############################################################################## ##############################################################################

View File

@@ -1,5 +1,5 @@
# #
# $Id: GNUmakefile.os4,v 1.2 2004-07-28 15:50:44 obarthel Exp $ # $Id: GNUmakefile.os4,v 1.12 2004-10-07 11:03:46 tfrieden Exp $
# #
# :ts=8 # :ts=8
# #
@@ -53,7 +53,7 @@ endif
%.o : %.c %.o : %.c
@echo "Compiling $<" @echo "Compiling $<"
@$(CC) -c $(CFLAGS) -DPPC_FLOATING_POINT_SUPPORT $< @$(CC) -c $(CFLAGS) $<
$(LIBC_OBJS)/%.o : %.c $(LIBC_OBJS)/%.o : %.c
@echo "Compiling $< [$(TYPE):c]" @echo "Compiling $< [$(TYPE):c]"
@@ -65,7 +65,7 @@ $(LIBUNIX_OBJS)/%.o : %.c
$(LIBM_OBJS)/%.o : %.c $(LIBM_OBJS)/%.o : %.c
@echo "Compiling $< [$(TYPE):m]" @echo "Compiling $< [$(TYPE):m]"
@$(CC) -o $(LIBM_OBJS)/$*.o -c $(CFLAGS) -DPPC_FLOATING_POINT_SUPPORT $< @$(CC) -o $(LIBM_OBJS)/$*.o -c $(CFLAGS) $(FLOAT_TYPE) $<
$(LIBSTACK_OBJS)/%.o : %.c $(LIBSTACK_OBJS)/%.o : %.c
@echo "Compiling $< [$(TYPE):stack]" @echo "Compiling $< [$(TYPE):stack]"
@@ -87,10 +87,17 @@ $(LIBAMIGA_OBJS)/%.o : %.c
ifeq (small_data,$(TYPE)) ifeq (small_data,$(TYPE))
CODE_TYPE := -msdata=sysv -DSMALL_DATA CODE_TYPE := -msdata=sysv -DSMALL_DATA
FLOAT_TYPE := -DPPC_FLOATING_POINT_SUPPORT
endif endif
ifeq (large_data,$(TYPE)) ifeq (large_data,$(TYPE))
CODE_TYPE := -msdata=data CODE_TYPE := -msdata=data
FLOAT_TYPE := -DPPC_FLOATING_POINT_SUPPORT
endif
ifeq (large_data_softfloat, $(TYPE))
CODE_TYPE := -msdata=data -msoft-float
FLOAT_TYPE :=
endif endif
############################################################################## ##############################################################################
@@ -101,7 +108,7 @@ WARNINGS = \
INCLUDES = -Iinclude -I. -I$(SDK_INCLUDE) INCLUDES = -Iinclude -I. -I$(SDK_INCLUDE)
OPTIONS = -DNDEBUG -DUSE_64_BIT_INTS -fno-builtin -D__USE_INLINE__ -Wa,-mregnames OPTIONS = -DNDEBUG -DUSE_64_BIT_INTS -fno-builtin -D__USE_INLINE__ -Wa,-mregnames
OPTIMIZE = -O3 -fomit-frame-pointer -funroll-loops OPTIMIZE = -O -fomit-frame-pointer -funroll-loops
#DEBUG = -g #DEBUG = -g
CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_TYPE) $(INCLUDES) CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_TYPE) $(INCLUDES)
@@ -138,9 +145,9 @@ C_LIB = \
fcntl_open.o \ fcntl_open.o \
fcntl_read.o \ fcntl_read.o \
fcntl_write.o \ fcntl_write.o \
fcntl_get_default_file.o \
libgen_basename.o \ libgen_basename.o \
libgen_dirname.o \ libgen_dirname.o \
locale_data.o \
locale_init_exit.o \ locale_init_exit.o \
locale_localeconv.o \ locale_localeconv.o \
locale_setlocale.o \ locale_setlocale.o \
@@ -301,12 +308,13 @@ C_LIB = \
stdlib_startup.o \ stdlib_startup.o \
stdlib_strtol.o \ stdlib_strtol.o \
stdlib_strtoul.o \ stdlib_strtoul.o \
stdlib_strtoll.o \
stdlib_strtoull.o \
stdlib_swapstack.o \ stdlib_swapstack.o \
stdlib_system.o \ stdlib_system.o \
stdlib_termination_message.o \ stdlib_termination_message.o \
stdlib_threshold.o \ stdlib_threshold.o \
stdlib_unsetenv.o \ stdlib_unsetenv.o \
stdlib_usergroup.o \
stdlib_wildcard_expand.o \ stdlib_wildcard_expand.o \
strings_strcasecmp.o \ strings_strcasecmp.o \
strings_strncasecmp.o \ strings_strncasecmp.o \
@@ -352,9 +360,9 @@ C_LIB = \
time_time.o \ time_time.o \
unistd_access.o \ unistd_access.o \
unistd_chdir.o \ unistd_chdir.o \
unistd_chdir_exit.o \
unistd_chown.o \ unistd_chown.o \
unistd_currentpathname.o \ unistd_currentpathname.o \
unistd_data.o \
unistd_dup.o \ unistd_dup.o \
unistd_dup2.o \ unistd_dup2.o \
unistd_fchown.o \ unistd_fchown.o \
@@ -372,8 +380,11 @@ C_LIB = \
unistd_realpath.o \ unistd_realpath.o \
unistd_sleep.o \ unistd_sleep.o \
unistd_symlink.o \ unistd_symlink.o \
unistd_time_delay.o \
unistd_timer.o \
unistd_truncate.o \ unistd_truncate.o \
unistd_unlink.o \ unistd_unlink.o \
unistd_usleep.o \
utime_utime.o utime_utime.o
@@ -387,6 +398,7 @@ UNIX_LIB = \
fcntl_creat.o \ fcntl_creat.o \
fcntl_fcntl.o \ fcntl_fcntl.o \
fcntl_open.o \ fcntl_open.o \
fcntl_get_default_file.o \
mount_convertinfo.o \ mount_convertinfo.o \
mount_statfs.o \ mount_statfs.o \
stat_chmod.o \ stat_chmod.o \
@@ -412,6 +424,7 @@ UNIX_LIB = \
stdlib_system.o \ stdlib_system.o \
unistd_access.o \ unistd_access.o \
unistd_chdir.o \ unistd_chdir.o \
unistd_chdir_exit.o \
unistd_chown.o \ unistd_chown.o \
unistd_getcwd.o \ unistd_getcwd.o \
unistd_lchown.o \ unistd_lchown.o \
@@ -444,12 +457,18 @@ MATH_LIB = \
math_floor.o \ math_floor.o \
math_fmod.o \ math_fmod.o \
math_frexp.o \ math_frexp.o \
math_hypot.o \
math_init_exit.o \ math_init_exit.o \
math_isnan.o \
math_isinf.o \
math_ldexp.o \ math_ldexp.o \
math_log.o \ math_log.o \
math_log10.o \ math_log10.o \
math_logb.o \
math_modf.o \ math_modf.o \
math_pow.o \ math_pow.o \
math_rint.o \
math_rintf.o \
math_sin.o \ math_sin.o \
math_sinh.o \ math_sinh.o \
math_sqrt.o \ math_sqrt.o \
@@ -465,8 +484,6 @@ MATH_LIB = \
stdio_flush.o \ stdio_flush.o \
stdio_fprintf.o \ stdio_fprintf.o \
stdio_fscanf.o \ stdio_fscanf.o \
stdio_isinfinity.o \
stdio_isnotanumber.o \
stdio_printf.o \ stdio_printf.o \
stdio_scanf.o \ stdio_scanf.o \
stdio_snprintf.o \ stdio_snprintf.o \
@@ -676,7 +693,12 @@ all: \
lib/crtbegin.o \ lib/crtbegin.o \
lib/crtend.o \ lib/crtend.o \
lib/mainnb.o \ lib/mainnb.o \
lib/libm.a lib/libm.a \
lib/small-data/libm.a \
lib/bcrt0.o \
lib/bcrtbegin.o \
lib/bcrtend.o \
lib/soft-float/libc.a
copy: copy:
$(COPY) $(foreach file,$(LIBS),large_data/$(file)) lib $(COPY) $(foreach file,$(LIBS),large_data/$(file)) lib
@@ -689,7 +711,7 @@ clean:
realclean: realclean:
$(MAKE) clean $(MAKE) clean
-$(DELETE) lib small_data large_data -$(DELETE) lib small_data large_data large_data_softfloat
############################################################################## ##############################################################################
@@ -731,6 +753,12 @@ endif
lib: lib:
-$(MAKEDIR) $@ -$(MAKEDIR) $@
lib/small-data:
-$(MAKEDIR) $@
lib/soft-float:
-$(MAKEDIR) $@
lib/libm.a: lib lib/libm.a: lib
$(MAKE) TYPE=large_data kitchen_sink $(MAKE) TYPE=large_data kitchen_sink
$(COPY) $(foreach file,$(LIBS),large_data/$(file)) lib $(COPY) $(foreach file,$(LIBS),large_data/$(file)) lib
@@ -739,6 +767,10 @@ lib/small-data/libm.a: lib lib/small-data
$(MAKE) TYPE=small_data kitchen_sink $(MAKE) TYPE=small_data kitchen_sink
$(COPY) $(foreach file,$(LIBS),small_data/$(file)) lib/small-data $(COPY) $(foreach file,$(LIBS),small_data/$(file)) lib/small-data
lib/soft-float/libc.a: lib lib/soft-float
$(MAKE) TYPE=large_data_softfloat kitchen_sink
$(COPY) $(foreach file,$(LIBS),large_data_softfloat/$(file)) lib/soft-float
lib/crt0.o : lib crt0.o lib/crt0.o : lib crt0.o
$(COPY) crt0.o lib $(COPY) crt0.o lib
@@ -754,6 +786,15 @@ lib/mainnb.o : lib mainnb.o
lib/mainb.o : lib mainb.o lib/mainb.o : lib mainb.o
$(COPY) mainb.o lib $(COPY) mainb.o lib
lib/bcrt0.o : lib bcrt0.o
$(COPY) bcrt0.o lib
lib/bcrtbegin.o : lib bcrtbegin.o
$(COPY) bcrtbegin.o lib
lib/bcrtend.o : lib bcrtend.o
$(COPY) bcrtend.o lib
############################################################################## ##############################################################################
$(LIBAMIGA_OBJS)/amiga_hookentry.o : amiga_hookentry.c $(LIBAMIGA_OBJS)/amiga_hookentry.o : amiga_hookentry.c
@@ -874,6 +915,13 @@ mainb.o : stdlib_main.c
@echo "Compiling $<" @echo "Compiling $<"
@$(CC) -o mainb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -msdata=sysv -DSMALL_DATA stdlib_main.c @$(CC) -o mainb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -msdata=sysv -DSMALL_DATA stdlib_main.c
bcrtbegin.o : crtbegin.c
$(CC) -o bcrtbegin.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -msdata=sysv -DSMALL_DATA crtbegin.c
bcrtend.o : crtend.c
$(CC) -o bcrtend.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -msdata=sysv -DSMALL_DATA crtend.c
############################################################################## ##############################################################################
mkid: mkid:

View File

@@ -1,6 +1,6 @@
#define VERSION 1 #define VERSION 1
#define REVISION 166 #define REVISION 178
#define DATE "28.7.2004" #define DATE "7.10.2004"
#define VERS "amiga.lib 1.166" #define VERS "amiga.lib 1.178"
#define VSTRING "amiga.lib 1.166 (28.7.2004)\r\n" #define VSTRING "amiga.lib 1.178 (7.10.2004)\r\n"
#define VERSTAG "\0$VER: amiga.lib 1.166 (28.7.2004)" #define VERSTAG "\0$VER: amiga.lib 1.178 (7.10.2004)"

View File

@@ -1 +1 @@
166 178

View File

@@ -1,6 +1,6 @@
#define VERSION 1 #define VERSION 1
#define REVISION 166 #define REVISION 178
#define DATE "28.7.2004" #define DATE "7.10.2004"
#define VERS "c.lib 1.166" #define VERS "c.lib 1.178"
#define VSTRING "c.lib 1.166 (28.7.2004)\r\n" #define VSTRING "c.lib 1.178 (7.10.2004)\r\n"
#define VERSTAG "\0$VER: c.lib 1.166 (28.7.2004)" #define VERSTAG "\0$VER: c.lib 1.178 (7.10.2004)"

View File

@@ -1 +1 @@
166 178

3207
library/changes Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: crtbegin.c,v 1.1.1.1 2004-07-26 16:30:22 obarthel Exp $ * $Id: crtbegin.c,v 1.3 2004-09-29 16:54:54 obarthel Exp $
* *
* :ts=4 * :ts=4
* *

View File

@@ -1,6 +1,6 @@
#define VERSION 1 #define VERSION 1
#define REVISION 166 #define REVISION 178
#define DATE "28.7.2004" #define DATE "7.10.2004"
#define VERS "debug.lib 1.166" #define VERS "debug.lib 1.178"
#define VSTRING "debug.lib 1.166 (28.7.2004)\r\n" #define VSTRING "debug.lib 1.178 (7.10.2004)\r\n"
#define VERSTAG "\0$VER: debug.lib 1.166 (28.7.2004)" #define VERSTAG "\0$VER: debug.lib 1.178 (7.10.2004)"

View File

@@ -1 +1 @@
166 178

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dirent_closedir.c,v 1.1.1.1 2004-07-26 16:30:30 obarthel Exp $ * $Id: dirent_closedir.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -43,7 +43,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dirent_data.c,v 1.1.1.1 2004-07-26 16:30:30 obarthel Exp $ * $Id: dirent_data.c,v 1.3 2004-08-07 10:24:04 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,10 +37,6 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */
/****************************************************************************/
/* Directories being scanned whose locks need to be freed when shutting down. */ /* Directories being scanned whose locks need to be freed when shutting down. */
struct MinList __directory_list; struct MinList __directory_list;

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dirent_opendir.c,v 1.1.1.1 2004-07-26 16:30:31 obarthel Exp $ * $Id: dirent_opendir.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -49,7 +49,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dirent_readdir.c,v 1.1.1.1 2004-07-26 16:30:31 obarthel Exp $ * $Id: dirent_readdir.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,7 +37,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dirent_rewinddir.c,v 1.1.1.1 2004-07-26 16:30:31 obarthel Exp $ * $Id: dirent_rewinddir.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,7 +37,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_close.c,v 1.1.1.1 2004-07-26 16:30:32 obarthel Exp $ * $Id: fcntl_close.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,7 +37,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_creat.c,v 1.1.1.1 2004-07-26 16:30:32 obarthel Exp $ * $Id: fcntl_creat.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -43,7 +43,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_fcntl.c,v 1.1.1.1 2004-07-26 16:30:33 obarthel Exp $ * $Id: fcntl_fcntl.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,7 +37,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: locale_data.c,v 1.1.1.1 2004-07-26 16:30:35 obarthel Exp $ * $Id: fcntl_get_default_file.c,v 1.1 2004-08-25 15:27:27 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -31,15 +31,39 @@
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef _LOCALE_HEADERS_H #ifndef _FCNTL_HEADERS_H
#include "locale_headers.h" #include "fcntl_headers.h"
#endif /* _LOCALE_HEADERS_H */ #endif /* _FCNTL_HEADERS_H */
/****************************************************************************/ /****************************************************************************/
struct Locale * __default_locale; /* The following is not part of the ISO 'C' (1994) standard. */
struct Locale * __locale_table[NUM_LOCALES];
/****************************************************************************/ /****************************************************************************/
char __locale_name_table[NUM_LOCALES][MAX_LOCALE_NAME_LEN]; int
__get_default_file(int file_descriptor,long * file_ptr)
{
struct fd * fd;
int result = -1;
assert( file_descriptor >= 0 && file_descriptor < __num_fd );
assert( __fd[file_descriptor] != NULL );
assert( FLAG_IS_SET(__fd[file_descriptor]->fd_Flags,FDF_IN_USE) );
assert( file_ptr != NULL );
fd = __get_file_descriptor(file_descriptor);
if(fd == NULL)
{
errno = EBADF;
goto out;
}
(*file_ptr) = (long)fd->fd_DefaultFile;
result = 0;
out:
return(result);
}

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_lseek.c,v 1.1.1.1 2004-07-26 16:30:33 obarthel Exp $ * $Id: fcntl_lseek.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,7 +37,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_open.c,v 1.1.1.1 2004-07-26 16:30:34 obarthel Exp $ * $Id: fcntl_open.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -49,7 +49,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_read.c,v 1.1.1.1 2004-07-26 16:30:34 obarthel Exp $ * $Id: fcntl_read.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -43,7 +43,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_write.c,v 1.1.1.1 2004-07-26 16:30:34 obarthel Exp $ * $Id: fcntl_write.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -43,7 +43,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: assert.h,v 1.1.1.1 2004-07-26 16:32:49 obarthel Exp $ * $Id: assert.h,v 1.2 2004-08-25 15:27:28 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,6 +36,12 @@
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#ifndef assert #ifndef assert
/****************************************************************************/ /****************************************************************************/
@@ -67,4 +73,10 @@ extern void __assertion_failure(const char *file_name,int line_number,const char
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _ASSERT_H */ #endif /* _ASSERT_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype.h,v 1.1.1.1 2004-07-26 16:32:50 obarthel Exp $ * $Id: ctype.h,v 1.3 2004-08-07 10:42:04 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -63,12 +63,6 @@ extern int toupper(int c);
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */
#define isascii(c) ((unsigned)(c) <= 127)
/****************************************************************************/
/* /*
* If requested, reimplement the character classification functions as macros; * If requested, reimplement the character classification functions as macros;
* note that the macro variants ignore the current locale and default to the * note that the macro variants ignore the current locale and default to the
@@ -113,6 +107,12 @@ extern const unsigned char * const __ctype_table;
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
#define isascii(c) ((unsigned)(c) <= 127)
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dirent.h,v 1.1.1.1 2004-07-26 16:32:50 obarthel Exp $ * $Id: dirent.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dos.h,v 1.1.1.1 2004-07-26 16:32:50 obarthel Exp $ * $Id: dos.h,v 1.3 2004-08-25 15:27:28 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/
@@ -112,6 +112,18 @@ extern void __set_a4(unsigned long value);
/****************************************************************************/ /****************************************************************************/
/*
* Obtain the low level 'file' handle or socket ID bound to a file
* descriptor. This function returns 0 for success and non-zero
* otherwise (if, for example, the file descriptor value you
* provided is not valid; errno will be set to the appropriate
* error code, too). Put a pointer to the file handle variable you
* want to be filled in into the second parameter to this function.
*/
extern int __get_default_file(int file_descriptor,long * file_ptr);
/****************************************************************************/
/* /*
* This will be set to TRUE if the current program was launched from * This will be set to TRUE if the current program was launched from
* the internet superserver ('inetd') or an equivalent facility. * the internet superserver ('inetd') or an equivalent facility.

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl.h,v 1.1.1.1 2004-07-26 16:32:51 obarthel Exp $ * $Id: fcntl.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: grp.h,v 1.1.1.1 2004-07-26 16:32:52 obarthel Exp $ * $Id: grp.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: libgen.h,v 1.1.1.1 2004-07-26 16:32:52 obarthel Exp $ * $Id: libgen.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: limits.h,v 1.1.1.1 2004-07-26 16:32:52 obarthel Exp $ * $Id: limits.h,v 1.3 2004-09-20 17:16:07 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -54,7 +54,13 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
#define LLONG_MIN (-0x7fffffffffffffffLL-1)
#define LLONG_MAX 0x7fffffffffffffffLL
#define ULLONG_MAX 0xffffffffffffffffULL
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math.h,v 1.1.1.1 2004-07-26 16:32:53 obarthel Exp $ * $Id: math.h,v 1.4 2004-08-16 09:33:13 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -81,6 +81,19 @@ extern double tanh(double x);
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
extern double rint(double x);
extern float rintf(float x);
extern int isinf(double x);
extern int isnan(double x);
extern double logb(double x);
extern double hypot(double x,double y);
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: pwd.h,v 1.1.1.1 2004-07-26 16:32:53 obarthel Exp $ * $Id: pwd.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: signal.h,v 1.2 2004-07-28 14:14:38 obarthel Exp $ * $Id: signal.h,v 1.3 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -62,7 +62,7 @@ extern int raise(int sig);
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stdarg.h,v 1.1.1.1 2004-07-26 16:32:53 obarthel Exp $ * $Id: stdarg.h,v 1.2 2004-09-09 08:25:30 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -57,12 +57,25 @@ typedef char * va_list;
/****************************************************************************/ /****************************************************************************/
#else #else
#if defined(__GNUC__)
#undef _STDARG_H /****************************************************************************/
#include_next "stdarg.h"
#else #if defined(__GNUC__)
#error "Unknown compiler"
#endif /* __GNUC__ */ /* Use the compiler supplied, machine specific <stdarg.h> file. */
#undef _STDARG_H
#include_next "stdarg.h"
#include <sys/amigaos-va.h>
#else
#error "Unknown compiler"
#endif /* __GNUC__ */
/****************************************************************************/
#endif /* __amigaos4__ */ #endif /* __amigaos4__ */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stdio.h,v 1.1.1.1 2004-07-26 16:32:54 obarthel Exp $ * $Id: stdio.h,v 1.3 2004-08-25 15:27:28 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -62,7 +62,7 @@ extern "C" {
* correspond to a real limitation for this 'C' runtime library and is * correspond to a real limitation for this 'C' runtime library and is
* included solely for ISO 'C' (1994) compliance. * included solely for ISO 'C' (1994) compliance.
*/ */
#define FOPEN_MAX 8 #define FOPEN_MAX 64
/****************************************************************************/ /****************************************************************************/
@@ -308,7 +308,7 @@ extern int __flush(FILE *stream);
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stdlib.h,v 1.1.1.1 2004-07-26 16:32:55 obarthel Exp $ * $Id: stdlib.h,v 1.3 2004-09-20 17:16:07 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -147,7 +147,12 @@ extern long atol(const char *str);
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
extern long long strtoll(const char *str, char **ptr, int base);
extern unsigned long long strtoull(const char *str, char **ptr, int base);
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: string.h,v 1.1.1.1 2004-07-26 16:32:55 obarthel Exp $ * $Id: string.h,v 1.3 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -71,15 +71,25 @@ extern size_t strxfrm(char *dest, const char *src, size_t len);
/****************************************************************************/ /****************************************************************************/
extern void *memmove(void *dest, const void * src, size_t len);
extern void *memchr(const void * ptr, int val, size_t len); extern void *memchr(const void * ptr, int val, size_t len);
/* This is ugly: GCC 2.95.x assumes that 'unsigned long' is used in the built-in
memcmp/memcpy/memset functions instead of 'size_t'. This can produce warnings
where none are necessary. */
#if defined(__GNUC__) && (__GNUC__ < 3)
extern int memcmp(const void *ptr1, const void *ptr2, unsigned long len);
extern void *memcpy(void *dest, const void *src, unsigned long len);
extern void *memset(void *ptr, int val, unsigned long len);
#else
extern int memcmp(const void *ptr1, const void *ptr2, size_t len); extern int memcmp(const void *ptr1, const void *ptr2, size_t len);
extern void *memcpy(void *dest, const void *src, size_t len); extern void *memcpy(void *dest, const void *src, size_t len);
extern void *memmove(void *dest, const void * src, size_t len);
extern void *memset(void *ptr, int val, size_t len); extern void *memset(void *ptr, int val, size_t len);
#endif /* __GNUC__ && __GNUC__ < 3 */
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: strings.h,v 1.1.1.1 2004-07-26 16:32:55 obarthel Exp $ * $Id: strings.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: amigaos-va.h,v 1.1.1.1 2004-07-26 16:32:57 obarthel Exp $ * $Id: amigaos-va.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: mount.h,v 1.1.1.1 2004-07-26 16:32:58 obarthel Exp $ * $Id: mount.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stat.h,v 1.1.1.1 2004-07-26 16:32:58 obarthel Exp $ * $Id: stat.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: time.h,v 1.1.1.1 2004-07-26 16:32:58 obarthel Exp $ * $Id: time.h,v 1.7 2004-09-29 10:15:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/
@@ -52,7 +52,7 @@ extern "C" {
structure and try to get by with this definition. Sometimes it works, structure and try to get by with this definition. Sometimes it works,
sometimes it doesn't. Not sure if there really is a good solution for sometimes it doesn't. Not sure if there really is a good solution for
this problem... */ this problem... */
#ifndef DEVICES_TIMER_H #if !defined(__TIMEVAL_ALREADY_DEFINED) && !defined(__USE_CLIB2_TIMEVAL)
/****************************************************************************/ /****************************************************************************/
@@ -73,11 +73,26 @@ extern "C" {
/****************************************************************************/ /****************************************************************************/
/* This will define the 'struct timeval' */ /* This will define the 'struct timeval' */
#ifndef DEVICES_TIMER_H
#include <devices/timer.h> #include <devices/timer.h>
#endif /* DEVICES_TIMER_H */
/* Assume that the 'struct timeval' definition is now in place. */
#define __TIMEVAL_ALREADY_DEFINED
/****************************************************************************/ /****************************************************************************/
#else #endif /* INCLUDE_VERSION */
/****************************************************************************/
#endif /* !__TIMEVAL_ALREADY_DEFINED && !__USE_CLIB2_TIMEVAL */
/****************************************************************************/
/* If the timeval is still undefined or should be defined locally,
define our own now... */
#if !defined(__TIMEVAL_ALREADY_DEFINED)
/****************************************************************************/ /****************************************************************************/
@@ -94,11 +109,7 @@ struct timeval
/****************************************************************************/ /****************************************************************************/
#endif /* INCLUDE_VERSION */ #endif /* !__TIMEVAL_ALREADY_DEFINED */
/****************************************************************************/
#endif /* DEVICES_TIMER_H */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: types.h,v 1.1.1.1 2004-07-26 16:32:59 obarthel Exp $ * $Id: types.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: unistd.h,v 1.3 2004-07-28 15:50:45 obarthel Exp $ * $Id: unistd.h,v 1.6 2004-09-29 14:17:46 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/
@@ -52,6 +52,13 @@ extern "C" {
/****************************************************************************/ /****************************************************************************/
/* Endianness: we assume a big endian memory layout (for 68k and PowerPC). */
#define LITTLE_ENDIAN 1234
#define BIG_ENDIAN 4321
#define BYTE_ORDER BIG_ENDIAN
/****************************************************************************/
#define STDIN_FILENO 0 #define STDIN_FILENO 0
#define STDOUT_FILENO 1 #define STDOUT_FILENO 1
#define STDERR_FILENO 2 #define STDERR_FILENO 2
@@ -87,6 +94,7 @@ extern int symlink(const char * actual_path, const char * symbolic_path);
extern int readlink(const char * path_name, char * buffer, int buffer_size); extern int readlink(const char * path_name, char * buffer, int buffer_size);
extern int chdir(const char * path_name); extern int chdir(const char * path_name);
extern unsigned int sleep(unsigned int seconds); extern unsigned int sleep(unsigned int seconds);
extern void usleep(unsigned long microseconds);
extern int getopt(int argc, char * argv[], char *opts); extern int getopt(int argc, char * argv[], char *opts);
extern pid_t getpid(void); extern pid_t getpid(void);
extern char *realpath(const char *file_name, char *resolved_name); extern char *realpath(const char *file_name, char *resolved_name);
@@ -200,28 +208,32 @@ extern int h_errno;
/****************************************************************************/ /****************************************************************************/
extern int accept(int sockfd,struct sockaddr *cliaddr,int *addrlen); typedef int socklen_t;
/****************************************************************************/
extern int accept(int sockfd,struct sockaddr *cliaddr,socklen_t *addrlen);
extern int bind(int sockfd,struct sockaddr *name,int namelen); extern int bind(int sockfd,struct sockaddr *name,int namelen);
extern int connect(int sockfd,struct sockaddr *name,int namelen); extern int connect(int sockfd,struct sockaddr *name,socklen_t namelen);
extern struct hostent * gethostbyaddr(const char *addr, int len, int type); extern struct hostent * gethostbyaddr(const char *addr, socklen_t len, int type);
extern struct hostent * gethostbyname(const char *name); extern struct hostent * gethostbyname(const char *name);
extern int gethostname(const char *name, int namelen); extern int gethostname(const char *name, int namelen);
extern struct netent * getnetbyname(const char *name); extern struct netent * getnetbyname(const char *name);
extern int getpeername(int sockfd,struct sockaddr *name,int *namelen); extern int getpeername(int sockfd,struct sockaddr *name,socklen_t *namelen);
extern int getsockname(int sockfd,struct sockaddr *name,int *namelen); extern int getsockname(int sockfd,struct sockaddr *name,socklen_t *namelen);
extern int getsockopt(int sockfd,int level,int optname,void *optval,int *optlen); extern int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optlen);
extern unsigned long inet_addr(const char *addr); extern unsigned long inet_addr(const char *addr);
extern char * inet_ntoa(struct in_addr in); extern char * inet_ntoa(struct in_addr in);
extern int ioctl(int fd,unsigned long request, ... /* char *arg */); extern int ioctl(int fd,unsigned long request, ... /* char *arg */);
extern int listen(int sockfd,int backlog); extern int listen(int sockfd,int backlog);
extern int recv(int fd,void *buff,size_t nbytes,int flags); extern int recv(int fd,void *buff,size_t nbytes,int flags);
extern int recvfrom(int sockfd,void *buff,int len,int flags,struct sockaddr *from,int *fromlen); extern int recvfrom(int sockfd,void *buff,int len,int flags,struct sockaddr *from,socklen_t *fromlen);
extern int recvmsg(int socket,struct msghdr *msg,int flags); extern int recvmsg(int socket,struct msghdr *msg,int flags);
extern int select(int num_fds,fd_set *read_fds,fd_set *write_fds,fd_set *except_fds,struct timeval *timeout); extern int select(int num_fds,fd_set *read_fds,fd_set *write_fds,fd_set *except_fds,struct timeval *timeout);
extern int send(int fd,void *buff,size_t nbytes,int flags); extern int send(int fd,const void *buff,size_t nbytes,int flags);
extern int sendmsg(int socket,struct msghdr *msg,int flags); extern int sendmsg(int socket,struct msghdr *msg,int flags);
extern int sendto(int sockfd,void *buff,int len,int flags,struct sockaddr *to,int tolen); extern int sendto(int sockfd,const void *buff,int len,int flags,struct sockaddr *to,socklen_t tolen);
extern int setsockopt(int sockfd,int level,int optname,void *optval,int optlen); extern int setsockopt(int sockfd,int level,int optname,const void *optval,socklen_t optlen);
extern int shutdown(int socket, int how); extern int shutdown(int socket, int how);
extern int socket(int domain,int type,int protocol); extern int socket(int domain,int type,int protocol);
extern long gethostid(void); extern long gethostid(void);

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: utime.h,v 1.1.1.1 2004-07-26 16:32:56 obarthel Exp $ * $Id: utime.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: libgen_basename.c,v 1.1.1.1 2004-07-26 16:30:34 obarthel Exp $ * $Id: libgen_basename.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,7 +36,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: libgen_dirname.c,v 1.1.1.1 2004-07-26 16:30:34 obarthel Exp $ * $Id: libgen_dirname.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -40,7 +40,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: locale_headers.h,v 1.1.1.1 2004-07-26 16:30:35 obarthel Exp $ * $Id: locale_headers.h,v 1.2 2004-09-29 19:57:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -69,12 +69,12 @@
/****************************************************************************/ /****************************************************************************/
extern struct Locale * __default_locale; extern struct Locale * NOCOMMON __default_locale;
extern struct Locale * __locale_table[NUM_LOCALES]; extern struct Locale * NOCOMMON __locale_table[NUM_LOCALES];
/****************************************************************************/ /****************************************************************************/
extern char __locale_name_table[NUM_LOCALES][MAX_LOCALE_NAME_LEN]; extern char NOCOMMON __locale_name_table[NUM_LOCALES][MAX_LOCALE_NAME_LEN];
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: locale_init_exit.c,v 1.1.1.1 2004-07-26 16:30:35 obarthel Exp $ * $Id: locale_init_exit.c,v 1.3 2004-09-29 19:57:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -41,6 +41,25 @@
/****************************************************************************/ /****************************************************************************/
struct Library * NOCOMMON __LocaleBase;
/****************************************************************************/
#if defined(__amigaos4__)
struct LocaleIFace * NOCOMMON __ILocale;
#endif /* __amigaos4__ */
/****************************************************************************/
struct Locale * NOCOMMON __default_locale;
struct Locale * NOCOMMON __locale_table[NUM_LOCALES];
/****************************************************************************/
char NOCOMMON __locale_name_table[NUM_LOCALES][MAX_LOCALE_NAME_LEN];
/****************************************************************************/
void void
__close_all_locales(void) __close_all_locales(void)
{ {
@@ -71,8 +90,7 @@ __close_all_locales(void)
/****************************************************************************/ /****************************************************************************/
void CLIB_DESTRUCTOR(__locale_exit)
__locale_exit(void)
{ {
ENTER(); ENTER();
@@ -107,8 +125,7 @@ __locale_exit(void)
/****************************************************************************/ /****************************************************************************/
int CLIB_CONSTRUCTOR(__locale_init)
__locale_init(void)
{ {
int i; int i;
@@ -145,5 +162,6 @@ __locale_init(void)
PROFILE_ON(); PROFILE_ON();
RETURN(OK); RETURN(OK);
return(OK);
CONSTRUCTOR_SUCCEED();
} }

View File

@@ -1,6 +1,6 @@
#define VERSION 1 #define VERSION 1
#define REVISION 166 #define REVISION 178
#define DATE "28.7.2004" #define DATE "7.10.2004"
#define VERS "m.lib 1.166" #define VERS "m.lib 1.178"
#define VSTRING "m.lib 1.166 (28.7.2004)\r\n" #define VSTRING "m.lib 1.178 (7.10.2004)\r\n"
#define VERSTAG "\0$VER: m.lib 1.166 (28.7.2004)" #define VERSTAG "\0$VER: m.lib 1.178 (7.10.2004)"

View File

@@ -1 +1 @@
166 178

View File

@@ -1,6 +1,6 @@
#define VERSION 1 #define VERSION 1
#define REVISION 166 #define REVISION 178
#define DATE "28.7.2004" #define DATE "7.10.2004"
#define VERS "m881.lib 1.166" #define VERS "m881.lib 1.178"
#define VSTRING "m881.lib 1.166 (28.7.2004)\r\n" #define VSTRING "m881.lib 1.178 (7.10.2004)\r\n"
#define VERSTAG "\0$VER: m881.lib 1.166 (28.7.2004)" #define VERSTAG "\0$VER: m881.lib 1.178 (7.10.2004)"

View File

@@ -1 +1 @@
166 178

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: macros.h,v 1.1.1.1 2004-07-26 16:30:36 obarthel Exp $ * $Id: macros.h,v 1.2 2004-09-29 19:57:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -148,8 +148,10 @@
#ifndef UNUSED #ifndef UNUSED
#ifdef __GNUC__ #ifdef __GNUC__
#define UNUSED __attribute__((unused)) #define UNUSED __attribute__((unused))
#define NOCOMMON __attribute__((nocommon))
#else #else
#define UNUSED /* UNUSED */ #define UNUSED /* UNUSED */
#define NOCOMMON /* NOCOMMON */
#endif #endif
#endif /* UNUSED */ #endif /* UNUSED */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_acos.c,v 1.1.1.1 2004-07-26 16:30:37 obarthel Exp $ * $Id: math_acos.c,v 1.2 2004-08-21 18:57:40 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -226,7 +226,7 @@ acos(double x)
} }
else else
{ {
result = HUGE_VAL; result = 0;
errno = EDOM; errno = EDOM;
} }

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_asin.c,v 1.1.1.1 2004-07-26 16:30:38 obarthel Exp $ * $Id: math_asin.c,v 1.2 2004-08-21 18:57:40 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -237,7 +237,7 @@ asin(double x)
} }
else else
{ {
result = HUGE_VAL; result = 0;
errno = EDOM; errno = EDOM;
} }

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_atan2.c,v 1.1.1.1 2004-07-26 16:30:39 obarthel Exp $ * $Id: math_atan2.c,v 1.3 2004-08-27 11:40:49 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -63,7 +63,7 @@ extern double __atan(double x);
/****************************************************************************/ /****************************************************************************/
INLINE static const double INLINE static const double
__atan2(double x,double y) __atan2(double y,double x)
{ {
const double pi = 3.14159265358979323846; const double pi = 3.14159265358979323846;
const double pi_over_2 = pi / 2.0; const double pi_over_2 = pi / 2.0;
@@ -107,7 +107,7 @@ __atan2(double x,double y)
} }
else else
{ {
result = HUGE_VAL; result = 0;
errno = EDOM; errno = EDOM;
} }
} }
@@ -135,7 +135,7 @@ __atan(double x)
} }
INLINE static const double INLINE static const double
__atan2(double x,double y) __atan2(double y,double x)
{ {
double pi,pi_over_2; double pi,pi_over_2;
double result; double result;
@@ -186,7 +186,7 @@ __atan2(double x,double y)
} }
else else
{ {
result = HUGE_VAL; result = 0;
errno = EDOM; errno = EDOM;
} }
} }
@@ -201,9 +201,6 @@ __atan2(double x,double y)
#if defined(PPC_FLOATING_POINT_SUPPORT) #if defined(PPC_FLOATING_POINT_SUPPORT)
static const double static const double
tiny = 1.0e-300, tiny = 1.0e-300,
zero = 0.0, zero = 0.0,
@@ -213,7 +210,7 @@ pi = 3.1415926535897931160E+00, /* 0x400921FB, 0x54442D18 */
pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
INLINE static const double INLINE static const double
__atan2(double x,double y) __atan2(double y,double x)
{ {
double z; double z;
int k,m,hx,hy,ix,iy; int k,m,hx,hy,ix,iy;
@@ -322,19 +319,11 @@ __atan2(double x,double y)
/****************************************************************************/ /****************************************************************************/
double double
atan2(double x,double y) atan2(double y,double x)
{ {
double result; double result;
if(x != 0.0 && y != 0.0) result = __atan2(y,x);
{
result = __atan2(x,y);
}
else
{
result = HUGE_VAL;
errno = EDOM;
}
return(result); return(result);
} }

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_data.c,v 1.1.1.1 2004-07-26 16:30:40 obarthel Exp $ * $Id: math_data.c,v 1.2 2004-08-21 18:57:40 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -48,3 +48,5 @@ struct Library * MathIeeeDoubTransBase;
/****************************************************************************/ /****************************************************************************/
double __huge_val; double __huge_val;
double __not_a_number;
double __infinity;

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_exp.c,v 1.1.1.1 2004-07-26 16:30:41 obarthel Exp $ * $Id: math_exp.c,v 1.2 2004-08-27 11:40:49 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -194,7 +194,7 @@ __exp(double x)
} }
else else
{ {
k = invln2*x+halF[xsb]; k = (int)(invln2*x+halF[xsb]);
t = k; t = k;
hi = x - t*ln2HI[0]; /* t*ln2HI is exact here */ hi = x - t*ln2HI[0]; /* t*ln2HI is exact here */
lo = t*ln2LO[0]; lo = t*ln2LO[0];

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_fabs.c,v 1.1.1.1 2004-07-26 16:30:42 obarthel Exp $ * $Id: math_fabs.c,v 1.4 2004-09-29 14:30:03 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -126,8 +126,14 @@ __fabs(double x)
/****************************************************************************/ /****************************************************************************/
#if defined(__PPC__)
/****************************************************************************/
#if defined(PPC_FLOATING_POINT_SUPPORT) #if defined(PPC_FLOATING_POINT_SUPPORT)
/****************************************************************************/
INLINE static const double INLINE static const double
__fabs(double x) __fabs(double x)
{ {
@@ -141,10 +147,35 @@ __fabs(double x)
} }
/****************************************************************************/
#else
/****************************************************************************/
INLINE static const double
__fabs(double x)
{
double res;
if(x < 0)
res = (-x);
else
res = x;
return res;
}
/****************************************************************************/
#endif /* PPC_FLOATING_POINT_SUPPORT */ #endif /* PPC_FLOATING_POINT_SUPPORT */
/****************************************************************************/ /****************************************************************************/
#endif /* __PPC__ */
/****************************************************************************/
double double
fabs(double x) fabs(double x)
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_fmod.c,v 1.1.1.1 2004-07-26 16:30:44 obarthel Exp $ * $Id: math_fmod.c,v 1.2 2004-08-21 18:57:40 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -284,7 +284,7 @@ fmod(double x,double y)
} }
else else
{ {
result = HUGE_VAL; result = x;
errno = EDOM; errno = EDOM;
} }

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_fp_support.h,v 1.1.1.1 2004-07-26 16:30:44 obarthel Exp $ * $Id: math_fp_support.h,v 1.2 2004-08-08 10:55:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,9 +36,47 @@
/****************************************************************************/ /****************************************************************************/
/* If any of the three supported floating point support flavours is
enabled, make sure that the generic 'FLOATING_POINT_SUPPORT' symbol
is defined, too.*/
#if (defined(IEEE_FLOATING_POINT_SUPPORT) || defined(M68881_FLOATING_POINT_SUPPORT) || defined(PPC_FLOATING_POINT_SUPPORT)) #if (defined(IEEE_FLOATING_POINT_SUPPORT) || defined(M68881_FLOATING_POINT_SUPPORT) || defined(PPC_FLOATING_POINT_SUPPORT))
#define FLOATING_POINT_SUPPORT #define FLOATING_POINT_SUPPORT
#endif #endif /* IEEE_FLOATING_POINT_SUPPORT || M68881_FLOATING_POINT_SUPPORT || PPC_FLOATING_POINT_SUPPORT */
/****************************************************************************/
/* This selects whether or not the 'long double' type should be used. So far,
only 'double' can be supported, and 'long double' defaults to 'double'. */
/*#define USE_LONG_DOUBLE*/
/****************************************************************************/
#if defined(USE_LONG_DOUBLE)
typedef long double __long_double_t;
#else
typedef double __long_double_t;
#endif /* USE_LONG_DOUBLE */
/****************************************************************************/
/* 'Portable' raw representations of three IEEE floating point formats. */
union ieee_long_double
{
long double value;
unsigned long raw[3];
};
union ieee_double
{
double value;
unsigned long raw[2];
};
union ieee_single
{
float value;
unsigned long raw[1];
};
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_headers.h,v 1.1.1.1 2004-07-26 16:30:45 obarthel Exp $ * $Id: math_headers.h,v 1.4 2004-08-27 13:49:17 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -38,6 +38,7 @@
#include <limits.h> #include <limits.h>
#include <errno.h> #include <errno.h>
#include <float.h>
#include <math.h> #include <math.h>
/****************************************************************************/ /****************************************************************************/
@@ -147,6 +148,33 @@ do { \
(d) = sl_u.value; \ (d) = sl_u.value; \
} while (0) } while (0)
/* A union which permits us to convert between a float and a 32 bit
int. */
typedef union
{
float value;
unsigned int word;
} ieee_float_shape_type;
/* Get a 32 bit int from a float. */
#define GET_FLOAT_WORD(i,d) \
do { \
ieee_float_shape_type gf_u; \
gf_u.value = (d); \
(i) = gf_u.word; \
} while (0)
/* Set a float from a 32 bit int. */
#define SET_FLOAT_WORD(d,i) \
do { \
ieee_float_shape_type sf_u; \
sf_u.word = (i); \
(d) = sf_u.value; \
} while (0)
extern double __kernel_cos(double x, double y); extern double __kernel_cos(double x, double y);
extern double __kernel_sin(double x, double y, int iy); extern double __kernel_sin(double x, double y, int iy);
extern int __rem_pio2(double x, double *y); extern int __rem_pio2(double x, double *y);
@@ -164,4 +192,9 @@ extern double __scalbn(double x, int n);
/****************************************************************************/ /****************************************************************************/
extern double __not_a_number;
extern double __infinity;
/****************************************************************************/
#endif /* _MATH_HEADERS_H */ #endif /* _MATH_HEADERS_H */

171
library/math_hypot.c Normal file
View File

@@ -0,0 +1,171 @@
/*
* $Id: math_hypot.c,v 1.1 2004-08-16 09:33:11 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Neither the name of Olaf Barthel nor the names of contributors
* may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*
* PowerPC math library based in part on work by Sun Microsystems
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
* software is freely granted, provided that this notice
* is preserved.
*/
#ifndef _MATH_HEADERS_H
#include "math_headers.h"
#endif /* _MATH_HEADERS_H */
/****************************************************************************/
#if defined(FLOATING_POINT_SUPPORT)
/****************************************************************************/
#if defined(IEEE_FLOATING_POINT_SUPPORT) || defined(M68881_FLOATING_POINT_SUPPORT)
INLINE static const double
__hypot(double x,double y)
{
double yx;
x = fabs(x);
y = fabs(y);
if ( x < y )
{
double temp = x;
x = y;
y = temp;
}
if (x == 0.)
{
return 0.;
}
else
{
yx = y/x;
return x*sqrt(1. + yx*yx);
}
}
#endif /* IEEE_FLOATING_POINT_SUPPORT || M68881_FLOATING_POINT_SUPPORT */
/****************************************************************************/
#if defined(PPC_FLOATING_POINT_SUPPORT)
static const double one = 1.0;
INLINE static const double
__hypot(double x,double y)
{
int n0;
double a=x,b=y,t1,t2,y1,y2,w;
int j,k,ha,hb;
n0 = ((*(int*)&one)>>29)^1; /* high word index */
ha = *(n0+(int*)&x)&0x7fffffff; /* high word of x */
hb = *(n0+(int*)&y)&0x7fffffff; /* high word of y */
if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;}
*(n0+(int*)&a) = ha; /* a <- |a| */
*(n0+(int*)&b) = hb; /* b <- |b| */
if((ha-hb)>0x3c00000) {return a+b;} /* x/y > 2**60 */
k=0;
if(ha > 0x5f300000) { /* a>2**500 */
if(ha >= 0x7ff00000) { /* Inf or NaN */
w = a+b; /* for sNaN */
if(((ha&0xfffff)|*(1-n0+(int*)&a))==0) w = a;
if(((hb^0x7ff00000)|*(1-n0+(int*)&b))==0) w = b;
return w;
}
/* scale a and b by 2**-600 */
ha -= 0x25800000; hb -= 0x25800000; k += 600;
*(n0+(int*)&a) = ha;
*(n0+(int*)&b) = hb;
}
if(hb < 0x20b00000) { /* b < 2**-500 */
if(hb <= 0x000fffff) { /* subnormal b or 0 */
if((hb|(*(1-n0+(int*)&b)))==0) return a;
t1=0;
*(n0+(int*)&t1) = 0x7fd00000; /* t1=2^1022 */
b *= t1;
a *= t1;
k -= 1022;
} else { /* scale a and b by 2^600 */
ha += 0x25800000; /* a *= 2^600 */
hb += 0x25800000; /* b *= 2^600 */
k -= 600;
*(n0+(int*)&a) = ha;
*(n0+(int*)&b) = hb;
}
}
/* medium size a and b */
w = a-b;
if (w>b) {
t1 = 0;
*(n0+(int*)&t1) = ha;
t2 = a-t1;
w = sqrt(t1*t1-(b*(-b)-t2*(a+t1)));
} else {
a = a+a;
y1 = 0;
*(n0+(int*)&y1) = hb;
y2 = b - y1;
t1 = 0;
*(n0+(int*)&t1) = ha+0x00100000;
t2 = a - t1;
w = sqrt(t1*y1-(w*(-w)-(t1*y2+t2*b)));
}
if(k!=0) {
t1 = 1.0;
*(n0+(int*)&t1) += (k<<20);
return t1*w;
} else return w;
}
#endif /* PPC_FLOATING_POINT_SUPPORT */
/****************************************************************************/
double
hypot(double x,double y)
{
double result;
result = __hypot(x,y);
return(result);
}
/****************************************************************************/
#endif /* FLOATING_POINT_SUPPORT */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_init_exit.c,v 1.1.1.1 2004-07-26 16:30:46 obarthel Exp $ * $Id: math_init_exit.c,v 1.5 2004-09-29 19:57:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -53,9 +53,10 @@
/****************************************************************************/ /****************************************************************************/
void CLIB_DESTRUCTOR(__math_exit)
__math_exit(void)
{ {
ENTER();
#if defined(IEEE_FLOATING_POINT_SUPPORT) #if defined(IEEE_FLOATING_POINT_SUPPORT)
{ {
if(MathIeeeSingBasBase != NULL) if(MathIeeeSingBasBase != NULL)
@@ -77,6 +78,8 @@ __math_exit(void)
} }
} }
#endif /* IEEE_FLOATING_POINT_SUPPORT */ #endif /* IEEE_FLOATING_POINT_SUPPORT */
LEAVE();
} }
/****************************************************************************/ /****************************************************************************/
@@ -121,41 +124,87 @@ __math_init(void)
#endif /* IEEE_FLOATING_POINT_SUPPORT */ #endif /* IEEE_FLOATING_POINT_SUPPORT */
/* Now fill in the HUGE_VAL constant, which is set to /* Now fill in the HUGE_VAL constant, which is set to
* +Infinity. the largest representable floating point value. */
*/
if(sizeof(__huge_val) == 4) /* single precision */ if(sizeof(__huge_val) == 4) /* single precision */
{ {
static const unsigned long infinity[] = static const unsigned long largest_fp_value[1] =
{ {
0x7F800000 /* Exponent = +126, Mantissa = 8,388,607 */
0x7f7fffff
}; };
assert( sizeof(infinity) == sizeof(__huge_val) ); static const unsigned long not_a_number[1] =
{
/* Exponent = 255 and fraction != 0.0 */
0x7fffffff
};
memmove((void *)&__huge_val,infinity,sizeof(infinity)); static const unsigned long infinity[1] =
{
/* Exponent = 255 and fraction = 0.0 */
0x7f800000
};
assert( sizeof(largest_fp_value) == sizeof(__huge_val) );
memmove((void *)&__huge_val,largest_fp_value,sizeof(largest_fp_value));
memmove((void *)&__not_a_number,not_a_number,sizeof(not_a_number));
memmove((void *)&__infinity,infinity,sizeof(infinity));
} }
else if (sizeof(__huge_val) == 8) /* double precision */ else if (sizeof(__huge_val) == 8) /* double precision */
{ {
static const unsigned long infinity[] = static const unsigned long largest_fp_value[2] =
{ {
0x7FF00000,0x00000000 /* Exponent = +1022, Mantissa = 4,503,599,627,370,495 */
0x7fefffff,0xffffffff
}; };
assert( sizeof(infinity) == sizeof(__huge_val) ); static const unsigned long not_a_number[2] =
{
/* Exponent = 2047 and fraction != 0.0 */
0x7fffffff,0xffffffff
};
memmove((void *)&__huge_val,infinity,sizeof(infinity)); static const unsigned long infinity[2] =
{
/* Exponent = 2047 and fraction = 0.0 */
0x7ff00000,0x00000000
};
assert( sizeof(largest_fp_value) == sizeof(__huge_val) );
memmove((void *)&__huge_val,largest_fp_value,sizeof(largest_fp_value));
memmove((void *)&__not_a_number,not_a_number,sizeof(not_a_number));
memmove((void *)&__infinity,infinity,sizeof(infinity));
} }
#if defined(USE_LONG_DOUBLE)
else if (sizeof(__huge_val) == 12) /* extended precision */ else if (sizeof(__huge_val) == 12) /* extended precision */
{ {
static const unsigned long infinity[] = static const unsigned long largest_fp_value[3] =
{ {
0x7FFF0000,0x00000000,0x00000000 /* Exponent = +32766, Mantissa = 18,446,744,073,709,551,615 */
0x7ffe0000,0xffffffff,0xffffffff
}; };
assert( sizeof(infinity) == sizeof(__huge_val) ); static const unsigned long not_a_number[3] =
{
/* Exponent = 32767 and fraction != 0.0 */
0x7fff0000,0xffffffff,0xffffffff
};
memmove((void *)&__huge_val,infinity,sizeof(infinity)); static const unsigned long infinity[3] =
{
/* Exponent = 32767 and fraction = 0.0 */
0x7fff0000,0x00000000,0x00000000
};
assert( sizeof(largest_fp_value) == sizeof(__huge_val) );
memmove((void *)&__huge_val,largest_fp_value,sizeof(largest_fp_value));
memmove((void *)&__not_a_number,not_a_number,sizeof(not_a_number));
memmove((void *)&__infinity,infinity,sizeof(infinity));
} }
#endif /* USE_LONG_DOUBLE */
result = OK; result = OK;

64
library/stdio_isinfinity.c → library/math_isinf.c Normal file → Executable file
View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stdio_isinfinity.c,v 1.1.1.1 2004-07-26 16:31:37 obarthel Exp $ * $Id: math_isinf.c,v 1.2 2004-08-08 10:55:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -39,43 +39,73 @@
#if defined (FLOATING_POINT_SUPPORT) #if defined (FLOATING_POINT_SUPPORT)
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
int int
__is_infinity(long double number) isinf(double number)
{ {
const unsigned long * const raw = (const unsigned long * const)&number; int is_infinity;
int result = 0; int result;
ENTER(); ENTER();
/* This assumes that a) 'number' is stored in big endian format /* This assumes that a) 'number' is stored in big endian format
* and b) it is stored in IEEE 754 format. and b) it is stored in IEEE 754 format. */
*/ if (sizeof(number) == 4) /* single precision */
if(sizeof(number) == 4) /* single precision */
{ {
union ieee_single x;
x.value = number;
/* Exponent = 255 and fraction = 0.0 */ /* Exponent = 255 and fraction = 0.0 */
if((raw[0] & 0x7FFFFFFF) == 0x7F800000) is_infinity = ((x.raw[0] & 0x7FFFFFFF) == 0x7F800000);
result = 1;
} }
else if (sizeof(number) == 8) /* double precision */ else if (sizeof(number) == 8) /* double precision */
{ {
union ieee_double x;
x.value = number;
/* Exponent = 2047 and fraction = 0.0 */ /* Exponent = 2047 and fraction = 0.0 */
if(((raw[0] & 0x7FFFFFFF) == 0x7FF00000) && (raw[1] == 0)) is_infinity = (((x.raw[0] & 0x7FFFFFFF) == 0x7FF00000) && (x.raw[1] == 0));
{
result = 1;
}
} }
#if defined(USE_LONG_DOUBLE)
else if (sizeof(number) == 12) /* extended precision */ else if (sizeof(number) == 12) /* extended precision */
{ {
union ieee_long_double x;
x.value = number;
/* Exponent = 32767 and fraction = 0.0 */ /* Exponent = 32767 and fraction = 0.0 */
if(((raw[0] & 0x7FFF0000) == 0x7FFF0000) && is_infinity = (((x.raw[0] & 0x7FFF0000) == 0x7FFF0000) && (x.raw[1] & 0x7FFFFFFF) == 0 && (x.raw[2] == 0));
(raw[1] & 0x7FFFFFFF) == 0 && (raw[2] == 0)) }
{ #endif /* USE_LONG_DOUBLE */
else
{
/* Can't happen */
is_infinity = 0;
}
if(is_infinity)
{
if(number < 0)
result = -1;
else
result = 1; result = 1;
} }
else
{
result = 0;
} }
RETURN(result); RETURN(result);
return(result); return(result);
} }
/****************************************************************************/
#endif /* FLOATING_POINT_SUPPORT */ #endif /* FLOATING_POINT_SUPPORT */

59
library/stdio_isnotanumber.c → library/math_isnan.c Normal file → Executable file
View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stdio_isnotanumber.c,v 1.1.1.1 2004-07-26 16:31:37 obarthel Exp $ * $Id: math_isnan.c,v 1.2 2004-08-08 10:55:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -39,47 +39,60 @@
#if defined (FLOATING_POINT_SUPPORT) #if defined (FLOATING_POINT_SUPPORT)
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
int int
__is_not_a_number(long double number) isnan(double number)
{ {
const unsigned long * const raw = (const unsigned long * const)&number; int result;
int result = 0;
ENTER(); ENTER();
/* This assumes that a) 'number' is stored in big endian format /* This assumes that a) 'number' is stored in big endian format
* and b) it is stored in IEEE 754 format. and b) it is stored in IEEE 754 format. */
*/ if (sizeof(number) == 4) /* single precision */
if(sizeof(number) == 4) /* single precision */
{ {
union ieee_single x;
x.value = number;
/* Exponent = 255 and fraction != 0.0 */ /* Exponent = 255 and fraction != 0.0 */
if((raw[0] & 0x7F800000) == 0x7F800000 && result = ((x.raw[0] & 0x7F800000) == 0x7F800000 && (x.raw[0] & 0x007FFFFF) != 0);
(raw[0] & 0x007FFFFF) != 0)
{
result = 1;
}
} }
else if (sizeof(number) == 8) /* double precision */ else if (sizeof(number) == 8) /* double precision */
{ {
union ieee_double x;
x.value = number;
/* Exponent = 2047 and fraction != 0.0 */ /* Exponent = 2047 and fraction != 0.0 */
if(((raw[0] & 0x7FF00000) == 0x7FF00000) && result = (((x.raw[0] & 0x7FF00000) == 0x7FF00000) && ((x.raw[0] & 0x000FFFFF) != 0 || (x.raw[1] != 0)));
((raw[0] & 0x000FFFFF) != 0 || (raw[1] != 0)))
{
result = 1;
}
} }
#if defined(USE_LONG_DOUBLE)
else if (sizeof(number) == 12) /* extended precision */ else if (sizeof(number) == 12) /* extended precision */
{ {
/* Exponent = 32767 and fraction != 0.0 */ union ieee_long_double x;
if(((raw[0] & 0x7FFF0000) == 0x7FFF0000) &&
((raw[1] & 0x7FFFFFFF) != 0 || raw[2] != 0)) x.value = number;
{
result = 1; /* Exponent = 32766 and fraction != 0.0 */
} result = (((x.raw[0] & 0x7FFF0000) == 0x7FFF0000) && ((x.raw[1] & 0x7FFFFFFF) != 0 || x.raw[2] != 0));
}
#endif /* USE_LONG_DOUBLE */
else
{
/* Can't happen */
result = 0;
} }
RETURN(result); RETURN(result);
return(result); return(result);
} }
/****************************************************************************/
#endif /* FLOATING_POINT_SUPPORT */ #endif /* FLOATING_POINT_SUPPORT */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_kernel_tan.c,v 1.1.1.1 2004-07-26 16:30:48 obarthel Exp $ * $Id: math_kernel_tan.c,v 1.2 2004-08-27 11:40:49 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -82,7 +82,21 @@ double __kernel_tan(double x, double y, int iy)
unsigned int low; unsigned int low;
GET_LOW_WORD(low,x); GET_LOW_WORD(low,x);
if(((ix|low)|(iy+1))==0) return one/fabs(x); if(((ix|low)|(iy+1))==0) return one/fabs(x);
else return (iy==1)? x: -one/x; else {
if (iy == 1)
return x;
else { /* compute -1 / (x+y) carefully */
double a, t;
z = w = x + y;
SET_LOW_WORD(z,0);
v = y - (z - x);
t = a = -one / w;
SET_LOW_WORD(t,0);
s = one + t * z;
return t + a * (s + t * v);
}
}
} }
} }
if(ix>=0x3FE59428) { /* |x|>=0.6744 */ if(ix>=0x3FE59428) { /* |x|>=0.6744 */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_log.c,v 1.1.1.1 2004-07-26 16:30:49 obarthel Exp $ * $Id: math_log.c,v 1.2 2004-09-27 15:06:19 tfrieden Exp $
* *
* :ts=4 * :ts=4
* *
@@ -135,7 +135,7 @@ __log(double x)
/****************************************************************************/ /****************************************************************************/
#if defined(PPC_FLOATING_POINT_SUPPORT) #if defined(__PPC__)
static const double static const double
ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */

136
library/math_logb.c Normal file
View File

@@ -0,0 +1,136 @@
/*
* $Id: math_logb.c,v 1.2 2004-08-14 11:11:01 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Neither the name of Olaf Barthel nor the names of contributors
* may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*
* PowerPC math library based in part on work by Sun Microsystems
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
* software is freely granted, provided that this notice
* is preserved.
*/
#ifndef _MATH_HEADERS_H
#include "math_headers.h"
#endif /* _MATH_HEADERS_H */
/****************************************************************************/
#if defined(FLOATING_POINT_SUPPORT)
/****************************************************************************/
#if defined(IEEE_FLOATING_POINT_SUPPORT) || defined(M68881_FLOATING_POINT_SUPPORT)
/****************************************************************************/
INLINE static const double
__logb(double x)
{
double result;
result = log(x) / log((double)FLT_RADIX);
return(result);
}
#endif /* IEEE_FLOATING_POINT_SUPPORT || M68881_FLOATING_POINT_SUPPORT */
/****************************************************************************/
#if defined(PPC_FLOATING_POINT_SUPPORT)
INLINE static const double
__logb(double x)
{
unsigned int lx,ix;
EXTRACT_WORDS(ix,lx,x);
ix &= 0x7fffffff; /* high |x| */
if((ix|lx)==0)
return -1.0/fabs(x);
if(ix>=0x7ff00000)
return x*x;
if((ix>>=20)==0) /* IEEE 754 logb */
return -1022.0;
else
return (double) (ix-1023);
}
#endif /* PPC_FLOATING_POINT_SUPPORT */
/****************************************************************************/
double
logb(double x)
{
double result;
int sign;
if(x == 0.0)
{
result = -HUGE_VAL;
goto out;
}
if(isnan(x))
{
result = x;
goto out;
}
sign = isinf(x);
if(sign != 0)
{
if(sign < 0)
result = (-x);
else
result = x;
goto out;
}
result = __logb(x);
out:
return(result);
}
/****************************************************************************/
#endif /* FLOATING_POINT_SUPPORT */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_modf.c,v 1.1.1.1 2004-07-26 16:30:50 obarthel Exp $ * $Id: math_modf.c,v 1.2 2004-09-27 15:06:19 tfrieden Exp $
* *
* :ts=4 * :ts=4
* *
@@ -109,7 +109,7 @@ __modf(double x,double *nptr)
/****************************************************************************/ /****************************************************************************/
#if defined(PPC_FLOATING_POINT_SUPPORT) #if defined(__PPC__)
INLINE static const double INLINE static const double
__modf(double x,double *nptr) __modf(double x,double *nptr)

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_pow.c,v 1.1.1.1 2004-07-26 16:30:52 obarthel Exp $ * $Id: math_pow.c,v 1.3 2004-09-27 15:06:19 tfrieden Exp $
* *
* :ts=4 * :ts=4
* *
@@ -171,7 +171,7 @@ __pow(double x,double y)
/****************************************************************************/ /****************************************************************************/
#if defined(PPC_FLOATING_POINT_SUPPORT) #if defined(__PPC__)
/****************************************************************************/ /****************************************************************************/
@@ -286,11 +286,12 @@ __pow(double x,double y)
} }
/* (x<0)**(non-int) is NaN */ /* (x<0)**(non-int) is NaN */
/* REDHAT LOCAL: This used to be n = ((unsigned int)hx>>31)+1;
if((((hx>>31)+1)|yisint)==0) return (x-x)/(x-x); if((n|yisint)==0) return (x-x)/(x-x);
but ANSI C says a right shift of a signed negative quantity is
implementation defined. */ s = one; /* s (sign of result -ve**odd) = -1 else = 1 */
if(((((unsigned int)hx>>31)-1)|yisint)==0) return (x-x)/(x-x); if((n|(yisint-1))==0)
s = -one;/* (-ve)**(odd int) */
/* |y| is huge */ /* |y| is huge */
if(iy>0x41e00000) { /* if |y| > 2**31 */ if(iy>0x41e00000) { /* if |y| > 2**31 */
@@ -299,11 +300,11 @@ __pow(double x,double y)
if(ix>=0x3ff00000) return (hy>0)? huge*huge:tiny*tiny; if(ix>=0x3ff00000) return (hy>0)? huge*huge:tiny*tiny;
} }
/* over/underflow if x is not close to one */ /* over/underflow if x is not close to one */
if(ix<0x3fefffff) return (hy<0)? huge*huge:tiny*tiny; if(ix<0x3fefffff) return (hy<0)? s*huge*huge:s*tiny*tiny;
if(ix>0x3ff00000) return (hy>0)? huge*huge:tiny*tiny; if(ix>0x3ff00000) return (hy>0)? s*huge*huge:s*tiny*tiny;
/* now |1-x| is tiny <= 2**-20, suffice to compute /* now |1-x| is tiny <= 2**-20, suffice to compute
log(x) by x-x^2/2+x^3/3-x^4/4 */ log(x) by x-x^2/2+x^3/3-x^4/4 */
t = ax-1; /* t has 20 trailing zeros */ t = ax-one; /* t has 20 trailing zeros */
w = (t*t)*(0.5-t*(0.3333333333333333333333-t*0.25)); w = (t*t)*(0.5-t*(0.3333333333333333333333-t*0.25));
u = ivln2_h*t; /* ivln2_h has 21 sig. bits */ u = ivln2_h*t; /* ivln2_h has 21 sig. bits */
v = t*ivln2_l-w*ivln2; v = t*ivln2_l-w*ivln2;
@@ -311,7 +312,7 @@ __pow(double x,double y)
SET_LOW_WORD(t1,0); SET_LOW_WORD(t1,0);
t2 = v-(t1-u); t2 = v-(t1-u);
} else { } else {
double s2,s_h,s_l,t_h,t_l; double ss,s2,s_h,s_l,t_h,t_l;
n = 0; n = 0;
/* take care subnormal number */ /* take care subnormal number */
if(ix<0x00100000) if(ix<0x00100000)
@@ -325,11 +326,11 @@ __pow(double x,double y)
else {k=0;n+=1;ix -= 0x00100000;} else {k=0;n+=1;ix -= 0x00100000;}
SET_HIGH_WORD(ax,ix); SET_HIGH_WORD(ax,ix);
/* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */ /* compute ss = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
u = ax-bp[k]; /* bp[0]=1.0, bp[1]=1.5 */ u = ax-bp[k]; /* bp[0]=1.0, bp[1]=1.5 */
v = one/(ax+bp[k]); v = one/(ax+bp[k]);
s = u*v; ss = u*v;
s_h = s; s_h = ss;
SET_LOW_WORD(s_h,0); SET_LOW_WORD(s_h,0);
/* t_h=ax+bp[k] High */ /* t_h=ax+bp[k] High */
t_h = zero; t_h = zero;
@@ -337,33 +338,29 @@ __pow(double x,double y)
t_l = ax - (t_h-bp[k]); t_l = ax - (t_h-bp[k]);
s_l = v*((u-s_h*t_h)-s_h*t_l); s_l = v*((u-s_h*t_h)-s_h*t_l);
/* compute log(ax) */ /* compute log(ax) */
s2 = s*s; s2 = ss*ss;
r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6))))); r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6)))));
r += s_l*(s_h+s); r += s_l*(s_h+ss);
s2 = s_h*s_h; s2 = s_h*s_h;
t_h = 3.0+s2+r; t_h = 3.0+s2+r;
SET_LOW_WORD(t_h,0); SET_LOW_WORD(t_h,0);
t_l = r-((t_h-3.0)-s2); t_l = r-((t_h-3.0)-s2);
/* u+v = s*(1+...) */ /* u+v = ss*(1+...) */
u = s_h*t_h; u = s_h*t_h;
v = s_l*t_h+t_l*s; v = s_l*t_h+t_l*ss;
/* 2/(3log2)*(s+...) */ /* 2/(3log2)*(ss+...) */
p_h = u+v; p_h = u+v;
SET_LOW_WORD(p_h,0); SET_LOW_WORD(p_h,0);
p_l = v-(p_h-u); p_l = v-(p_h-u);
z_h = cp_h*p_h; /* cp_h+cp_l = 2/(3*log2) */ z_h = cp_h*p_h; /* cp_h+cp_l = 2/(3*log2) */
z_l = cp_l*p_h+p_l*cp+dp_l[k]; z_l = cp_l*p_h+p_l*cp+dp_l[k];
/* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */ /* log2(ax) = (ss+..)*2/(3*log2) = n + dp_h + z_h + z_l */
t = (double)n; t = (double)n;
t1 = (((z_h+z_l)+dp_h[k])+t); t1 = (((z_h+z_l)+dp_h[k])+t);
SET_LOW_WORD(t1,0); SET_LOW_WORD(t1,0);
t2 = z_l-(((t1-t)-dp_h[k])-z_h); t2 = z_l-(((t1-t)-dp_h[k])-z_h);
} }
s = one; /* s (sign of result -ve**odd) = -1 else = 1 */
if(((((unsigned int)hx>>31)-1)|(yisint-1))==0)
s = -one;/* (-ve)**(odd int) */
/* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */ /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
y1 = y; y1 = y;
SET_LOW_WORD(y1,0); SET_LOW_WORD(y1,0);

136
library/math_rint.c Executable file
View File

@@ -0,0 +1,136 @@
/*
* $Id: math_rint.c,v 1.3 2004-08-27 13:49:17 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Neither the name of Olaf Barthel nor the names of contributors
* may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*
* PowerPC math library based in part on work by Sun Microsystems
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
* software is freely granted, provided that this notice
* is preserved.
*/
#ifndef _MATH_HEADERS_H
#include "math_headers.h"
#endif /* _MATH_HEADERS_H */
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) (1994) standard. */
/****************************************************************************/
#if defined(FLOATING_POINT_SUPPORT)
/****************************************************************************/
#if defined(IEEE_FLOATING_POINT_SUPPORT) || defined(M68881_FLOATING_POINT_SUPPORT)
/****************************************************************************/
double
rint(double x)
{
return floor ( x+0.5 );
}
/****************************************************************************/
#endif /* IEEE_FLOATING_POINT_SUPPORT || M68881_FLOATING_POINT_SUPPORT */
/****************************************************************************/
#if defined(PPC_FLOATING_POINT_SUPPORT)
/****************************************************************************/
static const double
TWO52[2]={
4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
-4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
};
double
rint(double x)
{
int i0,j0,sx;
unsigned i,i1;
double w,t;
GET_HIGH_WORD(i0,x);
sx = (i0>>31)&1;
GET_LOW_WORD(i1,x);
j0 = ((i0>>20)&0x7ff)-0x3ff;
if(j0<20) {
if(j0<0) {
if(((i0&0x7fffffff)|i1)==0) return x;
i1 |= (i0&0x0fffff);
i0 &= 0xfffe0000;
i0 |= ((i1|-i1)>>12)&0x80000;
SET_HIGH_WORD(x,i0);
w = TWO52[sx]+x;
t = w-TWO52[sx];
GET_HIGH_WORD(i0,t);
SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31));
return t;
} else {
i = (0x000fffff)>>j0;
if(((i0&i)|i1)==0) return x; /* x is integral */
i>>=1;
if(((i0&i)|i1)!=0) {
if(j0==19) i1 = 0x40000000; else
i0 = (i0&(~i))|((0x20000)>>j0);
}
}
} else if (j0>51) {
if(j0==0x400) return x+x; /* inf or NaN */
else return x; /* x is integral */
} else {
i = ((unsigned)(0xffffffff))>>(j0-20);
if((i1&i)==0) return x; /* x is integral */
i>>=1;
if((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(j0-20));
}
SET_HIGH_WORD(x,i0);
SET_LOW_WORD(x,i1);
w = TWO52[sx]+x;
return w-TWO52[sx];
}
/****************************************************************************/
#endif /* PPC_FLOATING_POINT_SUPPORT */
/****************************************************************************/
#endif /* FLOATING_POINT_SUPPORT */

129
library/math_rintf.c Executable file
View File

@@ -0,0 +1,129 @@
/*
* $Id: math_rintf.c,v 1.2 2004-08-27 13:49:17 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Neither the name of Olaf Barthel nor the names of contributors
* may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*
* PowerPC math library based in part on work by Sun Microsystems
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
* software is freely granted, provided that this notice
* is preserved.
*/
#ifndef _MATH_HEADERS_H
#include "math_headers.h"
#endif /* _MATH_HEADERS_H */
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) (1994) standard. */
/****************************************************************************/
#if defined(FLOATING_POINT_SUPPORT)
/****************************************************************************/
#if defined(IEEE_FLOATING_POINT_SUPPORT) || defined(M68881_FLOATING_POINT_SUPPORT)
/****************************************************************************/
float
rintf(float x)
{
return (float) floor ( x + 0.5f );
}
/****************************************************************************/
#endif /* IEEE_FLOATING_POINT_SUPPORT || M68881_FLOATING_POINT_SUPPORT */
/****************************************************************************/
#if defined(PPC_FLOATING_POINT_SUPPORT)
/****************************************************************************/
/* Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. */
/****************************************************************************/
static const float
TWO23[2]={
8.3886080000e+06, /* 0x4b000000 */
-8.3886080000e+06, /* 0xcb000000 */
};
float
rintf(float x)
{
int i0,j0,sx;
unsigned int i,i1;
float w,t;
GET_FLOAT_WORD(i0,x);
sx = (i0>>31)&1;
j0 = ((i0>>23)&0xff)-0x7f;
if(j0<23) {
if(j0<0) {
if((i0&0x7fffffff)==0) return x;
i1 = (i0&0x07fffff);
i0 &= 0xfff00000;
i0 |= ((i1|-i1)>>9)&0x400000;
SET_FLOAT_WORD(x,i0);
w = TWO23[sx]+x;
t = w-TWO23[sx];
GET_FLOAT_WORD(i0,t);
SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
return t;
} else {
i = (0x007fffff)>>j0;
if((i0&i)==0) return x; /* x is integral */
i>>=1;
if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
}
} else {
if(j0==0x80) return x+x; /* inf or NaN */
else return x; /* x is integral */
}
SET_FLOAT_WORD(x,i0);
w = TWO23[sx]+x;
return w-TWO23[sx];
}
/****************************************************************************/
#endif /* PPC_FLOATING_POINT_SUPPORT */
/****************************************************************************/
#endif /* FLOATING_POINT_SUPPORT */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math_sqrt.c,v 1.1.1.1 2004-07-26 16:30:53 obarthel Exp $ * $Id: math_sqrt.c,v 1.3 2004-09-27 15:06:19 tfrieden Exp $
* *
* :ts=4 * :ts=4
* *
@@ -135,7 +135,7 @@ __sqrt(double x)
/****************************************************************************/ /****************************************************************************/
#if defined(PPC_FLOATING_POINT_SUPPORT) #ifdef __PPC__
static const double one = 1.0, tiny=1.0e-300; static const double one = 1.0, tiny=1.0e-300;
@@ -236,7 +236,7 @@ __sqrt(double x)
return z; return z;
} }
#endif /* PPC_FLOATING_POINT_SUPPORT */ #endif
/****************************************************************************/ /****************************************************************************/
@@ -251,7 +251,7 @@ sqrt(double x)
} }
else else
{ {
result = HUGE_VAL; result = 0;
errno = EDOM; errno = EDOM;
} }

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: mount_fstatfs.c,v 1.1.1.1 2004-07-26 16:30:54 obarthel Exp $ * $Id: mount_fstatfs.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -43,7 +43,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: mount_statfs.c,v 1.1.1.1 2004-07-26 16:30:55 obarthel Exp $ * $Id: mount_statfs.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -43,7 +43,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,6 +1,6 @@
#define VERSION 1 #define VERSION 1
#define REVISION 166 #define REVISION 178
#define DATE "28.7.2004" #define DATE "7.10.2004"
#define VERS "net.lib 1.166" #define VERS "net.lib 1.178"
#define VSTRING "net.lib 1.166 (28.7.2004)\r\n" #define VSTRING "net.lib 1.178 (7.10.2004)\r\n"
#define VERSTAG "\0$VER: net.lib 1.166 (28.7.2004)" #define VERSTAG "\0$VER: net.lib 1.178 (7.10.2004)"

View File

@@ -1 +1 @@
166 178

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: signal_kill.c,v 1.1.1.1 2004-07-26 16:31:05 obarthel Exp $ * $Id: signal_kill.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,7 +37,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: signal_sigaddset.c,v 1.1.1.1 2004-07-26 16:31:05 obarthel Exp $ * $Id: signal_sigaddset.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -43,7 +43,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: signal_sigblock.c,v 1.1.1.1 2004-07-26 16:31:05 obarthel Exp $ * $Id: signal_sigblock.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,7 +37,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: signal_sigemptyset.c,v 1.1.1.1 2004-07-26 16:31:06 obarthel Exp $ * $Id: signal_sigemptyset.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -43,7 +43,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: signal_sigmask.c,v 1.1.1.1 2004-07-26 16:31:06 obarthel Exp $ * $Id: signal_sigmask.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,7 +37,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: signal_sigprocmask.c,v 1.1.1.1 2004-07-26 16:31:06 obarthel Exp $ * $Id: signal_sigprocmask.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,7 +37,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: signal_sigsetmask.c,v 1.1.1.1 2004-07-26 16:31:06 obarthel Exp $ * $Id: signal_sigsetmask.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,7 +37,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
# #
# $Id: smakefile,v 1.2 2004-07-28 15:50:45 obarthel Exp $ # $Id: smakefile,v 1.10 2004-09-29 14:17:44 obarthel Exp $
# #
# :ts=8 # :ts=8
# #
@@ -14,6 +14,14 @@
@echo "Assembling $<" @echo "Assembling $<"
@asm $(AFLAGS) $< @asm $(AFLAGS) $<
##############################################################################
# You might want to change this to the directory where your operating system
# header files are stored. On my system, that's "V:include", but you might
# get lucky with "sc:include" instead, which is the default for SAS/C.
INCLUDE_DIR = V:include
#INCLUDE_DIR = sc:include
############################################################################## ##############################################################################
OPTIMIZE = optimize opttime optschedule optinline OPTIMIZE = optimize opttime optschedule optinline
@@ -33,7 +41,15 @@ SUPPORT = define=UNIX_PATH_SEMANTICS define=SOCKET_SUPPORT define=USERGROUP_SUP
############################################################################## ##############################################################################
CFLAGS = \ CFLAGS = \
idlen=64 idir=include idir=netinclude commentnest \ resopt \
nover \
memorysize=huge \
idir=netinclude \
idlen=64 \
commentnest \
nostackcheck \
stringmerge \
errorrexx \
$(PROFILE) $(OPTIMIZE) $(CODE) $(DATA) $(CPU) $(MATH) \ $(PROFILE) $(OPTIMIZE) $(CODE) $(DATA) $(CPU) $(MATH) \
$(SUPPORT) $(DEBUG) $(SUPPORT) $(DEBUG)
@@ -147,14 +163,14 @@ FCNTL_OBJ = \
fcntl_lseek.o \ fcntl_lseek.o \
fcntl_open.o \ fcntl_open.o \
fcntl_read.o \ fcntl_read.o \
fcntl_write.o fcntl_write.o \
fcntl_get_default_file.o
LIBGEN_OBJ = \ LIBGEN_OBJ = \
libgen_basename.o \ libgen_basename.o \
libgen_dirname.o libgen_dirname.o
LOCALE_OBJ = \ LOCALE_OBJ = \
locale_data.o \
locale_init_exit.o \ locale_init_exit.o \
locale_localeconv.o \ locale_localeconv.o \
locale_setlocale.o locale_setlocale.o
@@ -173,12 +189,18 @@ MATH_OBJ = \
math_floor.o \ math_floor.o \
math_fmod.o \ math_fmod.o \
math_frexp.o \ math_frexp.o \
math_hypot.o \
math_init_exit.o \ math_init_exit.o \
math_isinf.o \
math_isnan.o \
math_ldexp.o \ math_ldexp.o \
math_log.o \ math_log.o \
math_log10.o \ math_log10.o \
math_logb.o \
math_modf.o \ math_modf.o \
math_pow.o \ math_pow.o \
math_rint.o \
math_rintf.o \
math_sin.o \ math_sin.o \
math_sinh.o \ math_sinh.o \
math_sqrt.o \ math_sqrt.o \
@@ -298,8 +320,6 @@ STDIO_OBJ = \
stdio_initializeiob.o \ stdio_initializeiob.o \
stdio_init_exit.o \ stdio_init_exit.o \
stdio_iobhookentry.o \ stdio_iobhookentry.o \
stdio_isinfinity.o \
stdio_isnotanumber.o \
stdio_locksemaphorename.o \ stdio_locksemaphorename.o \
stdio_nostdio.o \ stdio_nostdio.o \
stdio_openiob.o \ stdio_openiob.o \
@@ -394,6 +414,8 @@ STDLIB_OBJ = \
stdlib_strtod.o \ stdlib_strtod.o \
stdlib_strtol.o \ stdlib_strtol.o \
stdlib_strtoul.o \ stdlib_strtoul.o \
stdlib_strtoll.o \
stdlib_strtoull.o \
stdlib_swapstack.o \ stdlib_swapstack.o \
stdlib_system.o \ stdlib_system.o \
stdlib_unsetenv.o \ stdlib_unsetenv.o \
@@ -451,9 +473,9 @@ TIME_OBJ = \
UNISTD_OBJ = \ UNISTD_OBJ = \
unistd_access.o \ unistd_access.o \
unistd_chdir.o \ unistd_chdir.o \
unistd_chdir_exit.o \
unistd_chown.o \ unistd_chown.o \
unistd_currentpathname.o \ unistd_currentpathname.o \
unistd_data.o \
unistd_dup.o \ unistd_dup.o \
unistd_dup2.o \ unistd_dup2.o \
unistd_fchown.o \ unistd_fchown.o \
@@ -474,12 +496,15 @@ UNISTD_OBJ = \
unistd_sleep.o \ unistd_sleep.o \
unistd_strip_double_slash.o \ unistd_strip_double_slash.o \
unistd_symlink.o \ unistd_symlink.o \
unistd_time_delay.o \
unistd_timer.o \
unistd_translatea2u.o \ unistd_translatea2u.o \
unistd_translaterel.o \ unistd_translaterel.o \
unistd_translateu2a.o \ unistd_translateu2a.o \
unistd_truncate.o \ unistd_truncate.o \
unistd_unix_path_semantics.o \ unistd_unix_path_semantics.o \
unistd_unlink.o unistd_unlink.o \
unistd_usleep.o
# \ # \
# unistd_wildcard_expand.o # unistd_wildcard_expand.o
@@ -519,16 +544,16 @@ UTIME_OBJ = \
############################################################################## ##############################################################################
all: setup c.lib startup.o test fgets_test iotest sscanf_test printf_test stack_size_test translate_test cleanup all: setup c.lib startup.o cleanup
clean: clean:
-delete \#?.o \#?.lib \#?.map test fgets_test iotest sscanf_test printf_test stack_size_test translate_test -delete \#?.o \#?.lib \#?.map
############################################################################## ##############################################################################
setup: setup:
@echo "Setting up include: assignment" @echo "Setting up include: assignment"
@assign include: include V:include @assign include: include $(INCLUDE_DIR)
cleanup: cleanup:
@echo "Cleaning up include: assignment" @echo "Cleaning up include: assignment"
@@ -560,43 +585,6 @@ cvs-tag:
############################################################################## ##############################################################################
test: test.o startup.o c.lib
@echo "Linking $@"
@slink startup.o test.o to $@ lib c.lib addsym \
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
fgets_test: fgets_test.o startup.o c.lib
@echo "Linking $@"
@slink startup.o fgets_test.o to $@ lib c.lib addsym \
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
iotest: iotest.o startup.o c.lib
@echo "Linking $@"
@slink startup.o iotest.o to $@ lib c.lib addsym \
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
sscanf_test: sscanf_test.o startup.o c.lib
@echo "Linking $@"
@slink startup.o sscanf_test.o to $@ lib c.lib addsym \
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
printf_test: printf_test.o startup.o c.lib
@echo "Linking $@"
@slink startup.o printf_test.o to $@ lib c.lib addsym \
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
stack_size_test: stack_size_test.o startup.o c.lib
@echo "Linking $@"
@slink startup.o stack_size_test.o to $@ lib c.lib addsym \
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
translate_test: translate_test.o startup.o c.lib
@echo "Linking $@"
@slink startup.o translate_test.o to $@ lib c.lib addsym \
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
##############################################################################
c.lib_rev.o : c.lib_rev.c c.lib_rev.h c.lib_rev.o : c.lib_rev.c c.lib_rev.h
amiga_hookentry.o : amiga_hookentry.asm amiga_hookentry.o : amiga_hookentry.asm

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: socket_hstrerror.c,v 1.1 2004-07-28 15:50:45 obarthel Exp $ * $Id: socket_hstrerror.c,v 1.2 2004-07-29 08:35:15 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -121,6 +121,7 @@ hstrerror(int error_number)
result = "Unknown server error_number"; result = "Unknown server error_number";
break; break;
default:
case 4: /* NO_ADDRESS */ case 4: /* NO_ADDRESS */
result = "No address associated with name"; result = "No address associated with name";

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: socket_init_exit.c,v 1.2 2004-07-28 15:50:45 obarthel Exp $ * $Id: socket_init_exit.c,v 1.4 2004-09-29 17:03:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -84,16 +84,11 @@ extern BOOL __is_daemon;
/****************************************************************************/ /****************************************************************************/
extern void __show_error(const char * message);
/****************************************************************************/
extern void __socket_hook_entry(struct Hook * hook,struct fd * fd,struct file_hook_message * message); extern void __socket_hook_entry(struct Hook * hook,struct fd * fd,struct file_hook_message * message);
/****************************************************************************/ /****************************************************************************/
void CLIB_DESTRUCTOR(__socket_exit)
__socket_exit(void)
{ {
ENTER(); ENTER();
@@ -116,16 +111,7 @@ __socket_exit(void)
* does not happen, the stdio cleanup function will * does not happen, the stdio cleanup function will
* crash (with bells on). * crash (with bells on).
*/ */
if(__fd != NULL) __close_all_files();
{
int i;
for(i = 0 ; i < __num_fd ; i++)
{
if(FLAG_IS_SET(__fd[i]->fd_Flags,FDF_IS_SOCKET) && FLAG_IS_SET(__fd[i]->fd_Flags,FDF_IN_USE))
close(i);
}
}
#if defined(__amigaos4__) #if defined(__amigaos4__)
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: socket_send.c,v 1.1.1.1 2004-07-26 16:31:19 obarthel Exp $ * $Id: socket_send.c,v 1.2 2004-09-29 14:31:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -48,7 +48,7 @@
/****************************************************************************/ /****************************************************************************/
int int
send(int sockfd,void *buff,size_t nbytes,int flags) send(int sockfd,const void *buff,size_t nbytes,int flags)
{ {
struct fd * fd; struct fd * fd;
int result = -1; int result = -1;

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: socket_sendto.c,v 1.1.1.1 2004-07-26 16:31:20 obarthel Exp $ * $Id: socket_sendto.c,v 1.2 2004-09-29 14:31:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -48,7 +48,7 @@
/****************************************************************************/ /****************************************************************************/
int int
sendto(int sockfd,void *buff,int len,int flags,struct sockaddr *to,int tolen) sendto(int sockfd,const void *buff,int len,int flags,struct sockaddr *to,int tolen)
{ {
struct fd * fd; struct fd * fd;
int result = -1; int result = -1;

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: socket_setsockopt.c,v 1.1.1.1 2004-07-26 16:31:20 obarthel Exp $ * $Id: socket_setsockopt.c,v 1.2 2004-09-29 14:31:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -48,7 +48,7 @@
/****************************************************************************/ /****************************************************************************/
int int
setsockopt(int sockfd,int level,int optname,void *optval,int optlen) setsockopt(int sockfd,int level,int optname,const void *optval,int optlen)
{ {
struct fd * fd; struct fd * fd;
int result = -1; int result = -1;

View File

@@ -1,6 +1,6 @@
#define VERSION 1 #define VERSION 1
#define REVISION 166 #define REVISION 178
#define DATE "28.7.2004" #define DATE "7.10.2004"
#define VERS "stack.lib 1.166" #define VERS "stack.lib 1.178"
#define VSTRING "stack.lib 1.166 (28.7.2004)\r\n" #define VSTRING "stack.lib 1.178 (7.10.2004)\r\n"
#define VERSTAG "\0$VER: stack.lib 1.166 (28.7.2004)" #define VERSTAG "\0$VER: stack.lib 1.178 (7.10.2004)"

View File

@@ -1 +1 @@
166 178

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stat_chmod.c,v 1.1.1.1 2004-07-26 16:31:21 obarthel Exp $ * $Id: stat_chmod.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -43,7 +43,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stat_convertfileinfo.c,v 1.1.1.1 2004-07-26 16:31:21 obarthel Exp $ * $Id: stat_convertfileinfo.c,v 1.3 2004-08-07 10:24:04 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -41,10 +41,6 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */
/****************************************************************************/
void void
__convert_file_info_to_stat( __convert_file_info_to_stat(
const struct MsgPort * file_system, const struct MsgPort * file_system,

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stat_fchmod.c,v 1.1.1.1 2004-07-26 16:31:22 obarthel Exp $ * $Id: stat_fchmod.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,7 +37,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stat_fstat.c,v 1.1.1.1 2004-07-26 16:31:22 obarthel Exp $ * $Id: stat_fstat.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -43,7 +43,7 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/

Some files were not shown because too many files have changed in this diff Show More