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

1 Commits

Author SHA1 Message Date
Olaf Barthel
2f8580ed06 This commit was manufactured by cvs2svn to create tag 'start'.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/tags/start@14687 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2004-07-26 16:36:57 +00:00
203 changed files with 5156 additions and 5950 deletions

235
documentation/README Normal file
View File

@@ -0,0 +1,235 @@
An ISO 'C' (1994) compliant runtime library for the Amiga
=========================================================
1. What is this?
This is my attempt to get Samba 2.2.x ported to the Amiga. My first Amiga
port required SAS/C and a number of strange tricks had to be pulled to get
it to support the kind of environment Samba needed. But with the
introduction of Samba 2.2.x many of those tricks did not work any more,
which is why I decided to attack the problem at the root, namely the
runtime library.
Because it was no longer possible to build Samba with SAS/C on the new
Amiga platform, the idea came up to move development to the GNU 'C'
compiler. This turned out to be a challenge due to its somewhat
underdeveloped runtime library and header files. Eventually, I decided to
rewrite that library from scratch.
2. What does it do?
Using "'C' - A reference manual" as a reference I wrote a set of header
files, then proceeded to implement each single function referenced in them.
With few exceptions in the area of wide character support, the result
should be a feature complete implementation of the ISO 'C' (1994) runtime
library.
Because Samba needs a few POSIX-like routines to be supported, the library
functionality is complemented by a set of routines described in "Advanced
programming in the Unix environent". This set is not complete, however. It
will have to grow even further to accomodate for Samba's needs, but this is
a good start. I specifically added hooks for integrating socket I/O at a
later point of time.
This is not a portable implementation of the library in the sense that you
could move it from one 'C' compiler on one operating system to another.
This is an Amiga specific implementation.
The library supports floating point math, which is limited to IEEE single
and double precision or M68881 inline math. There is no support for the
fast floating point (FFP) format or exclusive IEEE single precision. You
either get double precision (IEEE math) or extended precision (M68881
inline math). What it is that you get is determined at compile time. Use
the IEEE_FLOATING_POINT_SUPPORT preprocessor symbol to activate IEEE math
code and the M68881_FLOATING_POINT_SUPPORT symbol for M68881 inline math.
Not unlike SAS/C, you can configure a minimum stack size the program is to
use when it starts up. This is controlled via the '__stack_size' variable
(see "stdlib_main.c").
I added some amiga.lib and debug.lib functionality to the library, but
don't count on it to be complete.
3. What does it not do?
This library is a departure from the typical 'C' runtime environments of
the past which had to run on all AmigaOS releases, down to Kickstart 1.1.
This very library was designed to take advantage of the routines available
since Kickstart 2.04 was introduced and virtually nobody ever put to use.
This helps to cut the code size, and it also helps to keep bugs out of the
library by falling back onto well-tested implementations. However, the
catch is that the code won't run under Kickstart 1.3 and below. But then
these operating system releases have been obsolete for more than a decade,
and you can always go back to a compiler environment which supports them.
Practically all library routines are implemented in a sort of naïve
fashion. That is, they contain virtually no optimizations whatsoever. This
is particularly apparent in workhorses such as memset() or memmove(). But
then, the issue is easy testability and Amiga platform portability.
There is very little support for amiga.lib functionality. There is
NewList(), HookEntry(), CallHook(), CallHookA(), the DoMethod() family, the
RexxVars family, but that's all. If you need more, you would have to
implement it yourself. Put another way, if you absolutely need
functionality that is only found in amiga.lib, you really shouldn't need in
in the first place.
4. Where does the source code come from?
I originally thought that it might be helpful to piece this library
together from various sources, such as the BSD libc. Turned out that this
code was so 'portable' that it became much more complex than it ought to
be. Also, some side-effects were present which considerably changed the
behaviour of the library. For example, the BSD libc uses bcopy() as an
alias for memcpy(), and unlike memcpy() is documented to, bcopy() supports
overlapping copies.
Eventually, I wrote virtually all the code myself, borrowing algorithmic
ideas from the BSD libc and the Manx Aztec 'C' runtime library. Because I
don't know much about the environment GCC expects, I borrowed code snippets
from libnix, which was written by Matthias Fleischer and Gunther Nikl. This
in particular concerns the integer and floating point math support, the
setjmp/longjmp routines and the startup code. The M68881 inline math code
comes from the <math-68881.h> file written by Matthew Self
(self@bayes.arc.nasa.gov).
5. Limitations and caveats
There is hardly any documentation on the code I wrote. In part this is due
to the fact that the code itself is very simple in design. It should speak
for itself. However, to make a usable runtime library you have to have a
user documentation as in man pages or autodocs. We will eventually have to
have autodocs for this library.
The code is currently plastered with assertions and debug code. It is
therefore much larger than it ought to be and runs much slower than it
ought to be. For example, the malloc() routine will set the contents of the
memory allocated to a 'dirty' bit pattern which is likely to break software
which makes assumptions about its contents. Likewise, the free() routine
will trash the memory to deallocate with a different 'dirty' bit pattern to
turn up reuse of memory after deallocation. All these debugging features
can be disabled by defining the NDEBUG preprocessor symbol at compile time
(see <assert.h>).
The exception handling in the math code is not particularly effective. For
one part this is due to the fact that there is no exception handler
installed by the runtime library when it starts up which could catch and
process the error conditions the CPU or FPU generates. The idea was to
provide for a portable runtime library with little to no assembly language
involved. To make the exception handling complete, such code would be
necessary.
The library currently builds under SAS/C, but because the 'normal' program
startup code is not utilized, the base relative (A4) addressing does not
work. If you are going to test it, use the data=faronly option to compile
the library and the programs.
If you are going to rebuild the library with SAS/C you will need to
reassign INCLUDE: to point to the local 'include' directory or things won't
work.
6. Conventions and design issues
You will have noticed the 330+ files in this directory. This is not the
best way to organize a runtime library, but at least all the bits and
pieces are in plain sight. Each file stands for the one or two routines it
contains. The name indicates what routine(s) that might be. Each file name
is prefixed by the name of the header file in which the corresponding
routine is defined. So, for example, you will find that "unistd_lchown.c"
contains the definition of the lchown() routine, which has its prototype
defined in the <unistd.h> header file.
Internal function and variable names are prefixed with two underscores, as
in '__stdio_init()'.
All routines attempt to do error checking on their parameters. They will
either drop into an assert() or set an errno value and refuse to go any
further. This cuts performance but should help to catch the simple bugs
quite easily (NULL pointers).
Just like any halfway sane Amiga 'C' runtime library, this one performs its
^C checking in the I/O routines. Typically once upon entry and in every
iteration of the loop there might be it will quickly poll the ^C signal and
drop into raise(SIGINT) in case the signal is set. This is just about the
safest method to solve the problem and should be much more robust than the
ixemul approach of 'interrupt anywhere - crash anywhere' using the task
switch/launch hooks to test for signals.
By default all library routines follow the ISO 'C' conventions in that
where implementation defined behaviour is permitted, the AmigaOS rules are
followed. For example, unlink() will by default operate like DeleteFile()
and rename() will return with an error code set if the name of the
file/directory to be renamed would collide with an existing directory
entry. However, your program can set a global variable '__unix_semantics'
which will cause some routines to perform like their Unix counterparts.
This is necessary for Samba to work but not a generally desirable feature.
You have some Unix-like behaviour, but the environment itself is not
completely Unix- or POSIX-compliant. And it shouldn't be. Don't make the
mistake of trying to mold the environment into a POSIX emulation. It
doesn't work; AmigaOS is not Unix.
7. The startup code
There are three program startup files provided. The most simplistic is in
'startup.c' which I use for SAS/C. It just invokes the setup routine which
eventually calls main() and drops straight into exit().
The ncrt0.S file was adapted from the libnix startup code which sets up the
base relative data area, if necessary (the SMALL_DATA preprocessor symbol
must be defined).
The nrcrt0.S file was adapted from libnix startup code, too, and sets up
the base relative data area for programs to be made resident. Note that the
geta4() stub is missing here; it wouldn't work in a resident program
anyway.
The ncrt0.S and nrcrt0.S files are considerably smaller and less complex
than the libnix code they are based on. This is because in this library
design all the more complex tasks are performed in the stdlib_main.c file
rather than in assembly language.
8. Documentation
Well, you're reading it. There isn't anything much yet. You can consult the book
"'C' - A reference manual" and you could look at the Open Group's Single Unix
Specification at <http://www.opengroup.org/onlinepubs/007904975>.
9. Legal status
Because this library is in part based upon free software it would be uncourteous
not to make it free software itself. The BSD license would probably be
appropriate here.
The PowerPC math library is 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.
====================================================
10. Contacting the author
The basic work was done by Olaf Barthel during two weeks in July 2002. You
can reach me at:
Olaf Barthel
Gneisenaustr. 43
D-31275 Lehrte
Or via e-mail:
olsen@sourcery.han.de

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
#define VERSION 1
#define REVISION 180
#define DATE "23.10.2004"
#define VERS "amiga.lib 1.180"
#define VSTRING "amiga.lib 1.180 (23.10.2004)\r\n"
#define VERSTAG "\0$VER: amiga.lib 1.180 (23.10.2004)"
#define REVISION 165
#define DATE "26.7.2004"
#define VERS "amiga.lib 1.165"
#define VSTRING "amiga.lib 1.165 (26.7.2004)\r\n"
#define VERSTAG "\0$VER: amiga.lib 1.165 (26.7.2004)"

View File

@@ -1 +1 @@
180
165

View File

@@ -1,6 +1,6 @@
#define VERSION 1
#define REVISION 180
#define DATE "23.10.2004"
#define VERS "c.lib 1.180"
#define VSTRING "c.lib 1.180 (23.10.2004)\r\n"
#define VERSTAG "\0$VER: c.lib 1.180 (23.10.2004)"
#define REVISION 165
#define DATE "26.7.2004"
#define VERS "c.lib 1.165"
#define VSTRING "c.lib 1.165 (26.7.2004)\r\n"
#define VERSTAG "\0$VER: c.lib 1.165 (26.7.2004)"

View File

@@ -1 +1 @@
180
165

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -1,6 +1,6 @@
#define VERSION 1
#define REVISION 180
#define DATE "23.10.2004"
#define VERS "debug.lib 1.180"
#define VSTRING "debug.lib 1.180 (23.10.2004)\r\n"
#define VERSTAG "\0$VER: debug.lib 1.180 (23.10.2004)"
#define REVISION 165
#define DATE "26.7.2004"
#define VERS "debug.lib 1.165"
#define VSTRING "debug.lib 1.165 (26.7.2004)\r\n"
#define VERSTAG "\0$VER: debug.lib 1.165 (26.7.2004)"

View File

@@ -1 +1 @@
180
165

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
/*
* $Id: ctype.h,v 1.3 2004-08-07 10:42:04 obarthel Exp $
* $Id: ctype.h,v 1.1.1.1 2004-07-26 16:32:50 obarthel Exp $
*
* :ts=4
*
@@ -63,6 +63,12 @@ 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;
* note that the macro variants ignore the current locale and default to the
@@ -107,12 +113,6 @@ 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
}
#endif /* __cplusplus */

View File

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

View File

@@ -1,5 +1,5 @@
/*
* $Id: dos.h,v 1.3 2004-08-25 15:27:28 obarthel Exp $
* $Id: dos.h,v 1.1.1.1 2004-07-26 16:32:50 obarthel Exp $
*
* :ts=4
*
@@ -36,7 +36,7 @@
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/* The following is not part of the ISO 'C' standard. */
/****************************************************************************/
@@ -112,18 +112,6 @@ 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
* the internet superserver ('inetd') or an equivalent facility.

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
/*
* $Id: math.h,v 1.4 2004-08-16 09:33:13 obarthel Exp $
* $Id: math.h,v 1.1.1.1 2004-07-26 16:32:53 obarthel Exp $
*
* :ts=4
*
@@ -81,19 +81,6 @@ 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
}
#endif /* __cplusplus */

View File

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

View File

@@ -1,5 +1,5 @@
/*
* $Id: signal.h,v 1.3 2004-08-07 09:15:33 obarthel Exp $
* $Id: signal.h,v 1.1.1.1 2004-07-26 16:32:53 obarthel Exp $
*
* :ts=4
*
@@ -62,7 +62,7 @@ extern int raise(int sig);
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/* The following is not part of the ISO 'C' standard. */
/****************************************************************************/
@@ -72,10 +72,6 @@ extern int raise(int sig);
/****************************************************************************/
typedef void (*sig_t)(int);
/****************************************************************************/
typedef int sig_atomic_t;
/****************************************************************************/

View File

@@ -1,5 +1,5 @@
/*
* $Id: stdarg.h,v 1.2 2004-09-09 08:25:30 obarthel Exp $
* $Id: stdarg.h,v 1.1.1.1 2004-07-26 16:32:53 obarthel Exp $
*
* :ts=4
*
@@ -57,25 +57,12 @@ typedef char * va_list;
/****************************************************************************/
#else
/****************************************************************************/
#if defined(__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__ */
/****************************************************************************/
#if defined(__GNUC__)
#undef _STDARG_H
#include_next "stdarg.h"
#else
#error "Unknown compiler"
#endif /* __GNUC__ */
#endif /* __amigaos4__ */
/****************************************************************************/

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
/*
* $Id: string.h,v 1.3 2004-08-07 09:15:33 obarthel Exp $
* $Id: string.h,v 1.1.1.1 2004-07-26 16:32:55 obarthel Exp $
*
* :ts=4
*
@@ -71,25 +71,15 @@ 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);
/* 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 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);
#endif /* __GNUC__ && __GNUC__ < 3 */
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/* The following is not part of the ISO 'C' standard. */
/****************************************************************************/

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
/*
* $Id: time.h,v 1.7 2004-09-29 10:15:57 obarthel Exp $
* $Id: time.h,v 1.1.1.1 2004-07-26 16:32:58 obarthel Exp $
*
* :ts=4
*
@@ -36,7 +36,7 @@
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/* The following is not part of the ISO 'C' standard. */
/****************************************************************************/
@@ -52,7 +52,7 @@ extern "C" {
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
this problem... */
#if !defined(__TIMEVAL_ALREADY_DEFINED) && !defined(__USE_CLIB2_TIMEVAL)
#ifndef DEVICES_TIMER_H
/****************************************************************************/
@@ -73,26 +73,11 @@ extern "C" {
/****************************************************************************/
/* This will define the 'struct timeval' */
#ifndef 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
/****************************************************************************/
#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)
#else
/****************************************************************************/
@@ -109,7 +94,11 @@ struct timeval
/****************************************************************************/
#endif /* !__TIMEVAL_ALREADY_DEFINED */
#endif /* INCLUDE_VERSION */
/****************************************************************************/
#endif /* DEVICES_TIMER_H */
/****************************************************************************/

View File

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

View File

@@ -1,5 +1,5 @@
/*
* $Id: unistd.h,v 1.6 2004-09-29 14:17:46 obarthel Exp $
* $Id: unistd.h,v 1.1.1.1 2004-07-26 16:32:56 obarthel Exp $
*
* :ts=4
*
@@ -36,7 +36,7 @@
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/* The following is not part of the ISO 'C' standard. */
/****************************************************************************/
@@ -52,13 +52,6 @@ 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 STDOUT_FILENO 1
#define STDERR_FILENO 2
@@ -94,7 +87,6 @@ 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 chdir(const char * path_name);
extern unsigned int sleep(unsigned int seconds);
extern void usleep(unsigned long microseconds);
extern int getopt(int argc, char * argv[], char *opts);
extern pid_t getpid(void);
extern char *realpath(const char *file_name, char *resolved_name);
@@ -151,7 +143,7 @@ extern char * __getcwd(char * buffer,size_t buffer_size,const char *file,int lin
#define FD_SETSIZE 256
#endif
typedef struct fd_set
typedef struct
{
unsigned long bits[(FD_SETSIZE + 31) / 32];
} fd_set;
@@ -203,37 +195,28 @@ struct in_addr
/****************************************************************************/
/* Error codes set by the name<->address resolution functions. */
extern int h_errno;
/****************************************************************************/
typedef int socklen_t;
/****************************************************************************/
extern int accept(int sockfd,struct sockaddr *cliaddr,socklen_t *addrlen);
extern int accept(int sockfd,struct sockaddr *cliaddr,int *addrlen);
extern int bind(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, socklen_t len, int type);
extern int connect(int sockfd,struct sockaddr *name,int namelen);
extern struct hostent * gethostbyaddr(const char *addr, int len, int type);
extern struct hostent * gethostbyname(const char *name);
extern int gethostname(const char *name, int namelen);
extern struct netent * getnetbyname(const char *name);
extern int getpeername(int sockfd,struct sockaddr *name,socklen_t *namelen);
extern int getsockname(int sockfd,struct sockaddr *name,socklen_t *namelen);
extern int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optlen);
extern int getpeername(int sockfd,struct sockaddr *name,int *namelen);
extern int getsockname(int sockfd,struct sockaddr *name,int *namelen);
extern int getsockopt(int sockfd,int level,int optname,void *optval,int *optlen);
extern unsigned long inet_addr(const char *addr);
extern char * inet_ntoa(struct in_addr in);
extern int ioctl(int fd,unsigned long request, ... /* char *arg */);
extern int listen(int sockfd,int backlog);
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,socklen_t *fromlen);
extern int recvfrom(int sockfd,void *buff,int len,int flags,struct sockaddr *from,int *fromlen);
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 send(int fd,const void *buff,size_t nbytes,int flags);
extern int send(int fd,void *buff,size_t nbytes,int flags);
extern int sendmsg(int socket,struct msghdr *msg,int flags);
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,const void *optval,socklen_t optlen);
extern int sendto(int sockfd,void *buff,int len,int flags,struct sockaddr *to,int tolen);
extern int setsockopt(int sockfd,int level,int optname,void *optval,int optlen);
extern int shutdown(int socket, int how);
extern int socket(int domain,int type,int protocol);
extern long gethostid(void);
@@ -247,7 +230,6 @@ extern unsigned long inet_lnaof(struct in_addr in);
extern struct in_addr inet_makeaddr(int net,int host);
extern unsigned long inet_netof(struct in_addr in);
extern unsigned long inet_network(const char *cp);
extern const char * hstrerror(int error_number);
/****************************************************************************/

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
/*
* $Id: fcntl_get_default_file.c,v 1.1 2004-08-25 15:27:27 obarthel Exp $
* $Id: locale_data.c,v 1.1.1.1 2004-07-26 16:30:35 obarthel Exp $
*
* :ts=4
*
@@ -31,39 +31,15 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _FCNTL_HEADERS_H
#include "fcntl_headers.h"
#endif /* _FCNTL_HEADERS_H */
#ifndef _LOCALE_HEADERS_H
#include "locale_headers.h"
#endif /* _LOCALE_HEADERS_H */
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
struct Locale * __default_locale;
struct Locale * __locale_table[NUM_LOCALES];
/****************************************************************************/
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);
}
char __locale_name_table[NUM_LOCALES][MAX_LOCALE_NAME_LEN];

View File

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

View File

@@ -1,5 +1,5 @@
/*
* $Id: locale_init_exit.c,v 1.3 2004-09-29 19:57:57 obarthel Exp $
* $Id: locale_init_exit.c,v 1.1.1.1 2004-07-26 16:30:35 obarthel Exp $
*
* :ts=4
*
@@ -41,25 +41,6 @@
/****************************************************************************/
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
__close_all_locales(void)
{
@@ -90,7 +71,8 @@ __close_all_locales(void)
/****************************************************************************/
CLIB_DESTRUCTOR(__locale_exit)
void
__locale_exit(void)
{
ENTER();
@@ -125,7 +107,8 @@ CLIB_DESTRUCTOR(__locale_exit)
/****************************************************************************/
CLIB_CONSTRUCTOR(__locale_init)
int
__locale_init(void)
{
int i;
@@ -162,6 +145,5 @@ CLIB_CONSTRUCTOR(__locale_init)
PROFILE_ON();
RETURN(OK);
CONSTRUCTOR_SUCCEED();
return(OK);
}

View File

@@ -1,6 +1,6 @@
#define VERSION 1
#define REVISION 180
#define DATE "23.10.2004"
#define VERS "m.lib 1.180"
#define VSTRING "m.lib 1.180 (23.10.2004)\r\n"
#define VERSTAG "\0$VER: m.lib 1.180 (23.10.2004)"
#define REVISION 165
#define DATE "26.7.2004"
#define VERS "m.lib 1.165"
#define VSTRING "m.lib 1.165 (26.7.2004)\r\n"
#define VERSTAG "\0$VER: m.lib 1.165 (26.7.2004)"

View File

@@ -1 +1 @@
180
165

View File

@@ -1,6 +1,6 @@
#define VERSION 1
#define REVISION 180
#define DATE "23.10.2004"
#define VERS "m881.lib 1.180"
#define VSTRING "m881.lib 1.180 (23.10.2004)\r\n"
#define VERSTAG "\0$VER: m881.lib 1.180 (23.10.2004)"
#define REVISION 165
#define DATE "26.7.2004"
#define VERS "m881.lib 1.165"
#define VSTRING "m881.lib 1.165 (26.7.2004)\r\n"
#define VERSTAG "\0$VER: m881.lib 1.165 (26.7.2004)"

View File

@@ -1 +1 @@
180
165

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
/*
* $Id: math_fabs.c,v 1.4 2004-09-29 14:30:03 obarthel Exp $
* $Id: math_fabs.c,v 1.1.1.1 2004-07-26 16:30:42 obarthel Exp $
*
* :ts=4
*
@@ -126,14 +126,8 @@ __fabs(double x)
/****************************************************************************/
#if defined(__PPC__)
/****************************************************************************/
#if defined(PPC_FLOATING_POINT_SUPPORT)
/****************************************************************************/
INLINE static const double
__fabs(double x)
{
@@ -147,35 +141,10 @@ __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__ */
/****************************************************************************/
double
fabs(double x)
{

View File

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

View File

@@ -1,5 +1,5 @@
/*
* $Id: math_fp_support.h,v 1.2 2004-08-08 10:55:57 obarthel Exp $
* $Id: math_fp_support.h,v 1.1.1.1 2004-07-26 16:30:44 obarthel Exp $
*
* :ts=4
*
@@ -36,47 +36,9 @@
/****************************************************************************/
/* 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))
#define FLOATING_POINT_SUPPORT
#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];
};
#endif
/****************************************************************************/

View File

@@ -1,5 +1,5 @@
/*
* $Id: math_headers.h,v 1.4 2004-08-27 13:49:17 obarthel Exp $
* $Id: math_headers.h,v 1.1.1.1 2004-07-26 16:30:45 obarthel Exp $
*
* :ts=4
*
@@ -38,7 +38,6 @@
#include <limits.h>
#include <errno.h>
#include <float.h>
#include <math.h>
/****************************************************************************/
@@ -148,33 +147,6 @@ do { \
(d) = sl_u.value; \
} 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_sin(double x, double y, int iy);
extern int __rem_pio2(double x, double *y);
@@ -192,9 +164,4 @@ extern double __scalbn(double x, int n);
/****************************************************************************/
extern double __not_a_number;
extern double __infinity;
/****************************************************************************/
#endif /* _MATH_HEADERS_H */

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,136 +0,0 @@
/*
* $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 */

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
#define VERSION 1
#define REVISION 180
#define DATE "23.10.2004"
#define VERS "net.lib 1.180"
#define VSTRING "net.lib 1.180 (23.10.2004)\r\n"
#define VERSTAG "\0$VER: net.lib 1.180 (23.10.2004)"
#define REVISION 165
#define DATE "26.7.2004"
#define VERS "net.lib 1.165"
#define VSTRING "net.lib 1.165 (26.7.2004)\r\n"
#define VERSTAG "\0$VER: net.lib 1.165 (26.7.2004)"

View File

@@ -1 +1 @@
180
165

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
#
# $Id: smakefile,v 1.10 2004-09-29 14:17:44 obarthel Exp $
# $Id: smakefile,v 1.1.1.1 2004-07-26 16:31:07 obarthel Exp $
#
# :ts=8
#
@@ -14,14 +14,6 @@
@echo "Assembling $<"
@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
@@ -41,15 +33,7 @@ SUPPORT = define=UNIX_PATH_SEMANTICS define=SOCKET_SUPPORT define=USERGROUP_SUP
##############################################################################
CFLAGS = \
resopt \
nover \
memorysize=huge \
idir=netinclude \
idlen=64 \
commentnest \
nostackcheck \
stringmerge \
errorrexx \
idlen=64 idir=include idir=netinclude commentnest \
$(PROFILE) $(OPTIMIZE) $(CODE) $(DATA) $(CPU) $(MATH) \
$(SUPPORT) $(DEBUG)
@@ -163,14 +147,14 @@ FCNTL_OBJ = \
fcntl_lseek.o \
fcntl_open.o \
fcntl_read.o \
fcntl_write.o \
fcntl_get_default_file.o
fcntl_write.o
LIBGEN_OBJ = \
libgen_basename.o \
libgen_dirname.o
LOCALE_OBJ = \
locale_data.o \
locale_init_exit.o \
locale_localeconv.o \
locale_setlocale.o
@@ -189,18 +173,12 @@ MATH_OBJ = \
math_floor.o \
math_fmod.o \
math_frexp.o \
math_hypot.o \
math_init_exit.o \
math_isinf.o \
math_isnan.o \
math_ldexp.o \
math_log.o \
math_log10.o \
math_logb.o \
math_modf.o \
math_pow.o \
math_rint.o \
math_rintf.o \
math_sin.o \
math_sinh.o \
math_sqrt.o \
@@ -265,8 +243,7 @@ SOCKET_OBJ = \
socket_setsockopt.o \
socket_shutdown.o \
socket_socket.o \
socket_hook_entry.o \
socket_hstrerror.o
socket_hook_entry.o
STAT_OBJ = \
stat_chmod.o \
@@ -320,6 +297,8 @@ STDIO_OBJ = \
stdio_initializeiob.o \
stdio_init_exit.o \
stdio_iobhookentry.o \
stdio_isinfinity.o \
stdio_isnotanumber.o \
stdio_locksemaphorename.o \
stdio_nostdio.o \
stdio_openiob.o \
@@ -414,8 +393,6 @@ STDLIB_OBJ = \
stdlib_strtod.o \
stdlib_strtol.o \
stdlib_strtoul.o \
stdlib_strtoll.o \
stdlib_strtoull.o \
stdlib_swapstack.o \
stdlib_system.o \
stdlib_unsetenv.o \
@@ -473,9 +450,9 @@ TIME_OBJ = \
UNISTD_OBJ = \
unistd_access.o \
unistd_chdir.o \
unistd_chdir_exit.o \
unistd_chown.o \
unistd_currentpathname.o \
unistd_data.o \
unistd_dup.o \
unistd_dup2.o \
unistd_fchown.o \
@@ -496,15 +473,12 @@ UNISTD_OBJ = \
unistd_sleep.o \
unistd_strip_double_slash.o \
unistd_symlink.o \
unistd_time_delay.o \
unistd_timer.o \
unistd_translatea2u.o \
unistd_translaterel.o \
unistd_translateu2a.o \
unistd_truncate.o \
unistd_unix_path_semantics.o \
unistd_unlink.o \
unistd_usleep.o
unistd_unlink.o
# \
# unistd_wildcard_expand.o
@@ -544,16 +518,16 @@ UTIME_OBJ = \
##############################################################################
all: setup c.lib startup.o cleanup
all: setup c.lib startup.o test fgets_test iotest sscanf_test printf_test stack_size_test translate_test cleanup
clean:
-delete \#?.o \#?.lib \#?.map
-delete \#?.o \#?.lib \#?.map test fgets_test iotest sscanf_test printf_test stack_size_test translate_test
##############################################################################
setup:
@echo "Setting up include: assignment"
@assign include: include $(INCLUDE_DIR)
@assign include: include V:include
cleanup:
@echo "Cleaning up include: assignment"
@@ -585,6 +559,43 @@ 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
amiga_hookentry.o : amiga_hookentry.asm

View File

@@ -1,5 +1,5 @@
/*
* $Id: socket_data.c,v 1.2 2004-07-28 15:50:45 obarthel Exp $
* $Id: socket_data.c,v 1.1.1.1 2004-07-26 16:31:08 obarthel Exp $
*
* :ts=4
*
@@ -53,8 +53,4 @@ struct SocketIFace *__ISocket;
/****************************************************************************/
int h_errno;
/****************************************************************************/
#endif /* SOCKET_SUPPORT */

View File

@@ -1,5 +1,5 @@
/*
* $Id: socket_headers.h,v 1.2 2004-07-28 15:50:45 obarthel Exp $
* $Id: socket_headers.h,v 1.1.1.1 2004-07-26 16:31:14 obarthel Exp $
*
* :ts=4
*
@@ -60,10 +60,6 @@ extern struct SocketIFace *__ISocket;
/****************************************************************************/
extern int h_errno;
/****************************************************************************/
extern struct fd * __get_socket_descriptor(int socket_descriptor);
extern void __socket_hook_entry(struct Hook * hook,struct fd * fd,struct file_hook_message * message);

View File

@@ -1,137 +0,0 @@
/*
* $Id: socket_hstrerror.c,v 1.2 2004-07-29 08:35:15 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.
*/
#if defined(SOCKET_SUPPORT)
/****************************************************************************/
#ifndef _SOCKET_HEADERS_H
#include "socket_headers.h"
#endif /* _SOCKET_HEADERS_H */
/****************************************************************************/
const char *
hstrerror(int error_number)
{
const char * result;
if(error_number < 1 || error_number > 4)
{
static char error_buffer[80];
char number[30];
char *s = number;
int is_negative = 0;
unsigned int n;
int i,len,c;
/* We convert the error number into in an unsigned
integer, so that numbers such as 0x80000000
can come out of the conversion. */
if(error_number < 0)
{
is_negative = 1;
n = (-error_number);
}
else
{
n = error_number;
}
/* Convert the error number into a string of digits. */
len = 0;
do
{
(*s++) = '0' + (n % 10);
n /= 10;
len++;
}
while(n > 0 && len < (int)sizeof(number)-1);
/* Add the sign, if necessary. */
if(is_negative && len < (int)sizeof(number)-1)
{
(*s++) = '-';
len++;
}
(*s) = '\0';
/* Reverse the string in place. */
for(i = 0 ; i < len / 2 ; i++)
{
c = number[len-1-i];
number[len-1-i] = number[i];
number[i] = c;
}
strcpy(error_buffer,"Unknown resolver error ");
strcat(error_buffer,number);
result = error_buffer;
}
else
{
switch(error_number)
{
case 1: /* HOST_NOT_FOUND */
result = "Unknown host";
break;
case 2: /* TRY_AGAIN */
result = "Host name lookup failure; try again";
break;
case 3: /* NO_RECOVERY */
result = "Unknown server error_number";
break;
default:
case 4: /* NO_ADDRESS */
result = "No address associated with name";
break;
}
}
return(result);
}
/****************************************************************************/
#endif /* SOCKET_SUPPORT */

View File

@@ -1,5 +1,5 @@
/*
* $Id: socket_init_exit.c,v 1.4 2004-09-29 17:03:57 obarthel Exp $
* $Id: socket_init_exit.c,v 1.1.1.1 2004-07-26 16:31:16 obarthel Exp $
*
* :ts=4
*
@@ -61,7 +61,6 @@ extern BOOL __detach;
#define SBTC_BREAKMASK 1 /* Interrupt signal mask */
#define SBTC_LOGTAGPTR 11 /* Under which name log entries are filed */
#define SBTC_ERRNOLONGPTR 24 /* Pointer to errno, length == sizeof(errno) */
#define SBTC_HERRNOLONGPTR 25 /* 'h_errno' pointer (with sizeof(h_errno) == sizeof(long)) */
/****************************************************************************/
@@ -84,11 +83,16 @@ 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);
/****************************************************************************/
CLIB_DESTRUCTOR(__socket_exit)
void
__socket_exit(void)
{
ENTER();
@@ -111,7 +115,16 @@ CLIB_DESTRUCTOR(__socket_exit)
* does not happen, the stdio cleanup function will
* crash (with bells on).
*/
__close_all_files();
if(__fd != NULL)
{
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__)
{
@@ -138,7 +151,7 @@ int
__socket_init(void)
{
struct Process * this_process;
struct TagItem tags[5];
struct TagItem tags[4];
int result = ERROR;
LONG status;
@@ -190,11 +203,7 @@ __socket_init(void)
tags[2].ti_Tag = SBTM_SETVAL(SBTC_LOGTAGPTR);
tags[2].ti_Data = (ULONG)__program_name;
/* Wire the library's h_errno variable to our local h_errno. */
tags[3].ti_Tag = SBTM_SETVAL(SBTC_HERRNOLONGPTR);
tags[3].ti_Data = (ULONG)&errno;
tags[4].ti_Tag = TAG_END;
tags[3].ti_Tag = TAG_END;
PROFILE_OFF();
status = __SocketBaseTagList(tags);

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
#define VERSION 1
#define REVISION 180
#define DATE "23.10.2004"
#define VERS "stack.lib 1.180"
#define VSTRING "stack.lib 1.180 (23.10.2004)\r\n"
#define VERSTAG "\0$VER: stack.lib 1.180 (23.10.2004)"
#define REVISION 165
#define DATE "26.7.2004"
#define VERS "stack.lib 1.165"
#define VSTRING "stack.lib 1.165 (26.7.2004)\r\n"
#define VERSTAG "\0$VER: stack.lib 1.165 (26.7.2004)"

View File

@@ -1 +1 @@
180
165

View File

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

View File

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

View File

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

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