mirror of
https://github.com/adtools/clib2.git
synced 2025-12-08 14:59:05 +00:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4cd7f3e32 | ||
|
|
3f284b7fb8 | ||
|
|
0a3962a105 | ||
|
|
1ebd864f60 | ||
|
|
115497faec | ||
|
|
f6c5e12f63 | ||
|
|
04d2b93463 | ||
|
|
bdaf52ea0e | ||
|
|
f3435ba057 | ||
|
|
5d1a8ec197 | ||
|
|
1b4d0215d7 | ||
|
|
93619a81a3 | ||
|
|
8e5ebc5400 | ||
|
|
39860a86f8 | ||
|
|
e899a25944 |
@@ -1,235 +0,0 @@
|
||||
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
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# $Id: GNUmakefile.68k,v 1.1.1.1 2004-07-26 16:30:14 obarthel Exp $
|
||||
# $Id: GNUmakefile.68k,v 1.3 2004-08-07 09:15:32 obarthel Exp $
|
||||
#
|
||||
# :ts=8
|
||||
#
|
||||
@@ -453,11 +453,15 @@ MATH_LIB = \
|
||||
math_fmod.o \
|
||||
math_frexp.o \
|
||||
math_init_exit.o \
|
||||
math_isinf.o \
|
||||
math_isnan.o \
|
||||
math_ldexp.o \
|
||||
math_log.o \
|
||||
math_log10.o \
|
||||
math_modf.o \
|
||||
math_pow.o \
|
||||
math_rint.o \
|
||||
math_rintf.o \
|
||||
math_sin.o \
|
||||
math_sinh.o \
|
||||
math_sqrt.o \
|
||||
@@ -467,8 +471,6 @@ 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 \
|
||||
@@ -574,6 +576,7 @@ NET_LIB = \
|
||||
socket_shutdown.o \
|
||||
socket_socket.o \
|
||||
socket_hook_entry.o \
|
||||
socket_hstrerror.o \
|
||||
stat_umask.o \
|
||||
usergroup_crypt.o \
|
||||
usergroup_data.o \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# $Id: GNUmakefile.os4,v 1.1.1.1 2004-07-26 16:30:15 obarthel Exp $
|
||||
# $Id: GNUmakefile.os4,v 1.3 2004-08-07 09:15:32 obarthel Exp $
|
||||
#
|
||||
# :ts=8
|
||||
#
|
||||
@@ -445,11 +445,15 @@ MATH_LIB = \
|
||||
math_fmod.o \
|
||||
math_frexp.o \
|
||||
math_init_exit.o \
|
||||
math_isnan.o \
|
||||
math_isinf.o \
|
||||
math_ldexp.o \
|
||||
math_log.o \
|
||||
math_log10.o \
|
||||
math_modf.o \
|
||||
math_pow.o \
|
||||
math_rint.o \
|
||||
math_rintf.o \
|
||||
math_sin.o \
|
||||
math_sinh.o \
|
||||
math_sqrt.o \
|
||||
@@ -465,8 +469,6 @@ 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 \
|
||||
@@ -568,6 +570,7 @@ NET_LIB = \
|
||||
socket_shutdown.o \
|
||||
socket_socket.o \
|
||||
socket_hook_entry.o \
|
||||
socket_hstrerror.o \
|
||||
usergroup_crypt.o \
|
||||
usergroup_data.o \
|
||||
usergroup_endgrent.o \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#define VERSION 1
|
||||
#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)"
|
||||
#define REVISION 169
|
||||
#define DATE "8.8.2004"
|
||||
#define VERS "amiga.lib 1.169"
|
||||
#define VSTRING "amiga.lib 1.169 (8.8.2004)\r\n"
|
||||
#define VERSTAG "\0$VER: amiga.lib 1.169 (8.8.2004)"
|
||||
|
||||
@@ -1 +1 @@
|
||||
165
|
||||
169
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#define VERSION 1
|
||||
#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)"
|
||||
#define REVISION 169
|
||||
#define DATE "8.8.2004"
|
||||
#define VERS "c.lib 1.169"
|
||||
#define VSTRING "c.lib 1.169 (8.8.2004)\r\n"
|
||||
#define VERSTAG "\0$VER: c.lib 1.169 (8.8.2004)"
|
||||
|
||||
@@ -1 +1 @@
|
||||
165
|
||||
169
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#define VERSION 1
|
||||
#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)"
|
||||
#define REVISION 169
|
||||
#define DATE "8.8.2004"
|
||||
#define VERS "debug.lib 1.169"
|
||||
#define VSTRING "debug.lib 1.169 (8.8.2004)\r\n"
|
||||
#define VERSTAG "\0$VER: debug.lib 1.169 (8.8.2004)"
|
||||
|
||||
@@ -1 +1 @@
|
||||
165
|
||||
169
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: dirent_closedir.c,v 1.1.1.1 2004-07-26 16:30:30 obarthel Exp $
|
||||
* $Id: dirent_closedir.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: dirent_data.c,v 1.1.1.1 2004-07-26 16:30:30 obarthel Exp $
|
||||
* $Id: dirent_data.c,v 1.3 2004-08-07 10:24:04 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,10 +37,6 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* Directories being scanned whose locks need to be freed when shutting down. */
|
||||
struct MinList __directory_list;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: dirent_opendir.c,v 1.1.1.1 2004-07-26 16:30:31 obarthel Exp $
|
||||
* $Id: dirent_opendir.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: dirent_readdir.c,v 1.1.1.1 2004-07-26 16:30:31 obarthel Exp $
|
||||
* $Id: dirent_readdir.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: dirent_rewinddir.c,v 1.1.1.1 2004-07-26 16:30:31 obarthel Exp $
|
||||
* $Id: dirent_rewinddir.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: fcntl_close.c,v 1.1.1.1 2004-07-26 16:30:32 obarthel Exp $
|
||||
* $Id: fcntl_close.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: fcntl_creat.c,v 1.1.1.1 2004-07-26 16:30:32 obarthel Exp $
|
||||
* $Id: fcntl_creat.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: fcntl_fcntl.c,v 1.1.1.1 2004-07-26 16:30:33 obarthel Exp $
|
||||
* $Id: fcntl_fcntl.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: fcntl_lseek.c,v 1.1.1.1 2004-07-26 16:30:33 obarthel Exp $
|
||||
* $Id: fcntl_lseek.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: fcntl_open.c,v 1.1.1.1 2004-07-26 16:30:34 obarthel Exp $
|
||||
* $Id: fcntl_open.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: fcntl_read.c,v 1.1.1.1 2004-07-26 16:30:34 obarthel Exp $
|
||||
* $Id: fcntl_read.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: fcntl_write.c,v 1.1.1.1 2004-07-26 16:30:34 obarthel Exp $
|
||||
* $Id: fcntl_write.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: ctype.h,v 1.1.1.1 2004-07-26 16:32:50 obarthel Exp $
|
||||
* $Id: ctype.h,v 1.3 2004-08-07 10:42:04 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -63,12 +63,6 @@ extern int toupper(int c);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
|
||||
#define isascii(c) ((unsigned)(c) <= 127)
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/*
|
||||
* If requested, reimplement the character classification functions as macros;
|
||||
* note that the macro variants ignore the current locale and default to the
|
||||
@@ -113,6 +107,12 @@ extern const unsigned char * const __ctype_table;
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
#define isascii(c) ((unsigned)(c) <= 127)
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: dirent.h,v 1.1.1.1 2004-07-26 16:32:50 obarthel Exp $
|
||||
* $Id: dirent.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: dos.h,v 1.1.1.1 2004-07-26 16:32:50 obarthel Exp $
|
||||
* $Id: dos.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: fcntl.h,v 1.1.1.1 2004-07-26 16:32:51 obarthel Exp $
|
||||
* $Id: fcntl.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: grp.h,v 1.1.1.1 2004-07-26 16:32:52 obarthel Exp $
|
||||
* $Id: grp.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: libgen.h,v 1.1.1.1 2004-07-26 16:32:52 obarthel Exp $
|
||||
* $Id: libgen.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: limits.h,v 1.1.1.1 2004-07-26 16:32:52 obarthel Exp $
|
||||
* $Id: limits.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: math.h,v 1.1.1.1 2004-07-26 16:32:53 obarthel Exp $
|
||||
* $Id: math.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -81,6 +81,17 @@ 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);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: pwd.h,v 1.1.1.1 2004-07-26 16:32:53 obarthel Exp $
|
||||
* $Id: pwd.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: signal.h,v 1.1.1.1 2004-07-26 16:32:53 obarthel Exp $
|
||||
* $Id: signal.h,v 1.3 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -62,7 +62,7 @@ extern int raise(int sig);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
@@ -72,6 +72,10 @@ extern int raise(int sig);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
typedef void (*sig_t)(int);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
typedef int sig_atomic_t;
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio.h,v 1.1.1.1 2004-07-26 16:32:54 obarthel Exp $
|
||||
* $Id: stdio.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -308,7 +308,7 @@ extern int __flush(FILE *stream);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdlib.h,v 1.1.1.1 2004-07-26 16:32:55 obarthel Exp $
|
||||
* $Id: stdlib.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -147,7 +147,7 @@ extern long atol(const char *str);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: string.h,v 1.1.1.1 2004-07-26 16:32:55 obarthel Exp $
|
||||
* $Id: string.h,v 1.3 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -71,15 +71,25 @@ extern size_t strxfrm(char *dest, const char *src, size_t len);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
extern void *memmove(void *dest, const void * src, size_t len);
|
||||
extern void *memchr(const void * ptr, int val, size_t len);
|
||||
|
||||
/* 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' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: strings.h,v 1.1.1.1 2004-07-26 16:32:55 obarthel Exp $
|
||||
* $Id: strings.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: amigaos-va.h,v 1.1.1.1 2004-07-26 16:32:57 obarthel Exp $
|
||||
* $Id: amigaos-va.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: mount.h,v 1.1.1.1 2004-07-26 16:32:58 obarthel Exp $
|
||||
* $Id: mount.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stat.h,v 1.1.1.1 2004-07-26 16:32:58 obarthel Exp $
|
||||
* $Id: stat.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: time.h,v 1.1.1.1 2004-07-26 16:32:58 obarthel Exp $
|
||||
* $Id: time.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: types.h,v 1.1.1.1 2004-07-26 16:32:59 obarthel Exp $
|
||||
* $Id: types.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: unistd.h,v 1.1.1.1 2004-07-26 16:32:56 obarthel Exp $
|
||||
* $Id: unistd.h,v 1.4 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
@@ -143,7 +143,7 @@ extern char * __getcwd(char * buffer,size_t buffer_size,const char *file,int lin
|
||||
#define FD_SETSIZE 256
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
typedef struct fd_set
|
||||
{
|
||||
unsigned long bits[(FD_SETSIZE + 31) / 32];
|
||||
} fd_set;
|
||||
@@ -195,6 +195,11 @@ struct in_addr
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* Error codes set by the name<->address resolution functions. */
|
||||
extern int h_errno;
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
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,int namelen);
|
||||
@@ -230,6 +235,7 @@ 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);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: utime.h,v 1.1.1.1 2004-07-26 16:32:56 obarthel Exp $
|
||||
* $Id: utime.h,v 1.2 2004-08-07 09:15:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: libgen_basename.c,v 1.1.1.1 2004-07-26 16:30:34 obarthel Exp $
|
||||
* $Id: libgen_basename.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: libgen_dirname.c,v 1.1.1.1 2004-07-26 16:30:34 obarthel Exp $
|
||||
* $Id: libgen_dirname.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#define VERSION 1
|
||||
#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)"
|
||||
#define REVISION 169
|
||||
#define DATE "8.8.2004"
|
||||
#define VERS "m.lib 1.169"
|
||||
#define VSTRING "m.lib 1.169 (8.8.2004)\r\n"
|
||||
#define VERSTAG "\0$VER: m.lib 1.169 (8.8.2004)"
|
||||
|
||||
@@ -1 +1 @@
|
||||
165
|
||||
169
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#define VERSION 1
|
||||
#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)"
|
||||
#define REVISION 169
|
||||
#define DATE "8.8.2004"
|
||||
#define VERS "m881.lib 1.169"
|
||||
#define VSTRING "m881.lib 1.169 (8.8.2004)\r\n"
|
||||
#define VERSTAG "\0$VER: m881.lib 1.169 (8.8.2004)"
|
||||
|
||||
@@ -1 +1 @@
|
||||
165
|
||||
169
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: math_fp_support.h,v 1.1.1.1 2004-07-26 16:30:44 obarthel Exp $
|
||||
* $Id: math_fp_support.h,v 1.2 2004-08-08 10:55:57 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -36,9 +36,47 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* If any of the three supported floating point support flavours is
|
||||
enabled, make sure that the generic 'FLOATING_POINT_SUPPORT' symbol
|
||||
is defined, too.*/
|
||||
#if (defined(IEEE_FLOATING_POINT_SUPPORT) || defined(M68881_FLOATING_POINT_SUPPORT) || defined(PPC_FLOATING_POINT_SUPPORT))
|
||||
#define FLOATING_POINT_SUPPORT
|
||||
#endif
|
||||
#endif /* IEEE_FLOATING_POINT_SUPPORT || M68881_FLOATING_POINT_SUPPORT || PPC_FLOATING_POINT_SUPPORT */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* This selects whether or not the 'long double' type should be used. So far,
|
||||
only 'double' can be supported, and 'long double' defaults to 'double'. */
|
||||
/*#define USE_LONG_DOUBLE*/
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#if defined(USE_LONG_DOUBLE)
|
||||
typedef long double __long_double_t;
|
||||
#else
|
||||
typedef double __long_double_t;
|
||||
#endif /* USE_LONG_DOUBLE */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* 'Portable' raw representations of three IEEE floating point formats. */
|
||||
union ieee_long_double
|
||||
{
|
||||
long double value;
|
||||
unsigned long raw[3];
|
||||
};
|
||||
|
||||
union ieee_double
|
||||
{
|
||||
double value;
|
||||
unsigned long raw[2];
|
||||
};
|
||||
|
||||
union ieee_single
|
||||
{
|
||||
float value;
|
||||
unsigned long raw[1];
|
||||
};
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: math_init_exit.c,v 1.1.1.1 2004-07-26 16:30:46 obarthel Exp $
|
||||
* $Id: math_init_exit.c,v 1.2 2004-08-08 10:55:57 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -121,41 +121,45 @@ __math_init(void)
|
||||
#endif /* IEEE_FLOATING_POINT_SUPPORT */
|
||||
|
||||
/* Now fill in the HUGE_VAL constant, which is set to
|
||||
* +Infinity.
|
||||
*/
|
||||
the largest representable floating point value. */
|
||||
if(sizeof(__huge_val) == 4) /* single precision */
|
||||
{
|
||||
static const unsigned long infinity[] =
|
||||
static const unsigned long largest_fp_value[1] =
|
||||
{
|
||||
0x7F800000
|
||||
/* Exponent = +126, Mantissa = 8,388,607 */
|
||||
0x7f7fffff
|
||||
};
|
||||
|
||||
assert( sizeof(infinity) == sizeof(__huge_val) );
|
||||
assert( sizeof(largest_fp_value) == sizeof(__huge_val) );
|
||||
|
||||
memmove((void *)&__huge_val,infinity,sizeof(infinity));
|
||||
memmove((void *)&__huge_val,largest_fp_value,sizeof(largest_fp_value));
|
||||
}
|
||||
else if (sizeof(__huge_val) == 8) /* double precision */
|
||||
{
|
||||
static const unsigned long infinity[] =
|
||||
static const unsigned long largest_fp_value[2] =
|
||||
{
|
||||
0x7FF00000,0x00000000
|
||||
/* Exponent = +1022, Mantissa = 4,503,599,627,370,495 */
|
||||
0x7fefffff,0xffffffff
|
||||
};
|
||||
|
||||
assert( sizeof(infinity) == sizeof(__huge_val) );
|
||||
assert( sizeof(largest_fp_value) == sizeof(__huge_val) );
|
||||
|
||||
memmove((void *)&__huge_val,infinity,sizeof(infinity));
|
||||
memmove((void *)&__huge_val,largest_fp_value,sizeof(largest_fp_value));
|
||||
}
|
||||
#if defined(USE_LONG_DOUBLE)
|
||||
else if (sizeof(__huge_val) == 12) /* extended precision */
|
||||
{
|
||||
static const unsigned long infinity[] =
|
||||
static const unsigned long largest_fp_value[3] =
|
||||
{
|
||||
0x7FFF0000,0x00000000,0x00000000
|
||||
/* Exponent = +32766, Mantissa = 18,446,744,073,709,551,615 */
|
||||
0x7ffe0000,0xffffffff,0xffffffff
|
||||
};
|
||||
|
||||
assert( sizeof(infinity) == sizeof(__huge_val) );
|
||||
assert( sizeof(largest_fp_value) == sizeof(__huge_val) );
|
||||
|
||||
memmove((void *)&__huge_val,infinity,sizeof(infinity));
|
||||
memmove((void *)&__huge_val,largest_fp_value,sizeof(largest_fp_value));
|
||||
}
|
||||
#endif /* USE_LONG_DOUBLE */
|
||||
|
||||
result = OK;
|
||||
|
||||
|
||||
64
library/stdio_isinfinity.c → library/math_isinf.c
Normal file → Executable file
64
library/stdio_isinfinity.c → library/math_isinf.c
Normal file → Executable file
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio_isinfinity.c,v 1.1.1.1 2004-07-26 16:31:37 obarthel Exp $
|
||||
* $Id: math_isinf.c,v 1.2 2004-08-08 10:55:57 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -39,43 +39,73 @@
|
||||
|
||||
#if defined (FLOATING_POINT_SUPPORT)
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
int
|
||||
__is_infinity(long double number)
|
||||
isinf(double number)
|
||||
{
|
||||
const unsigned long * const raw = (const unsigned long * const)&number;
|
||||
int result = 0;
|
||||
int is_infinity;
|
||||
int result;
|
||||
|
||||
ENTER();
|
||||
|
||||
/* This assumes that a) 'number' is stored in big endian format
|
||||
* and b) it is stored in IEEE 754 format.
|
||||
*/
|
||||
if(sizeof(number) == 4) /* single precision */
|
||||
and b) it is stored in IEEE 754 format. */
|
||||
if (sizeof(number) == 4) /* single precision */
|
||||
{
|
||||
union ieee_single x;
|
||||
|
||||
x.value = number;
|
||||
|
||||
/* Exponent = 255 and fraction = 0.0 */
|
||||
if((raw[0] & 0x7FFFFFFF) == 0x7F800000)
|
||||
result = 1;
|
||||
is_infinity = ((x.raw[0] & 0x7FFFFFFF) == 0x7F800000);
|
||||
}
|
||||
else if (sizeof(number) == 8) /* double precision */
|
||||
{
|
||||
union ieee_double x;
|
||||
|
||||
x.value = number;
|
||||
|
||||
/* Exponent = 2047 and fraction = 0.0 */
|
||||
if(((raw[0] & 0x7FFFFFFF) == 0x7FF00000) && (raw[1] == 0))
|
||||
{
|
||||
result = 1;
|
||||
}
|
||||
is_infinity = (((x.raw[0] & 0x7FFFFFFF) == 0x7FF00000) && (x.raw[1] == 0));
|
||||
}
|
||||
#if defined(USE_LONG_DOUBLE)
|
||||
else if (sizeof(number) == 12) /* extended precision */
|
||||
{
|
||||
union ieee_long_double x;
|
||||
|
||||
x.value = number;
|
||||
|
||||
/* Exponent = 32767 and fraction = 0.0 */
|
||||
if(((raw[0] & 0x7FFF0000) == 0x7FFF0000) &&
|
||||
(raw[1] & 0x7FFFFFFF) == 0 && (raw[2] == 0))
|
||||
{
|
||||
is_infinity = (((x.raw[0] & 0x7FFF0000) == 0x7FFF0000) && (x.raw[1] & 0x7FFFFFFF) == 0 && (x.raw[2] == 0));
|
||||
}
|
||||
#endif /* USE_LONG_DOUBLE */
|
||||
else
|
||||
{
|
||||
/* Can't happen */
|
||||
is_infinity = 0;
|
||||
}
|
||||
|
||||
if(is_infinity)
|
||||
{
|
||||
if(number < 0)
|
||||
result = -1;
|
||||
else
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
result = 0;
|
||||
}
|
||||
|
||||
RETURN(result);
|
||||
return(result);
|
||||
}
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#endif /* FLOATING_POINT_SUPPORT */
|
||||
59
library/stdio_isnotanumber.c → library/math_isnan.c
Normal file → Executable file
59
library/stdio_isnotanumber.c → library/math_isnan.c
Normal file → Executable file
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio_isnotanumber.c,v 1.1.1.1 2004-07-26 16:31:37 obarthel Exp $
|
||||
* $Id: math_isnan.c,v 1.2 2004-08-08 10:55:57 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -39,47 +39,60 @@
|
||||
|
||||
#if defined (FLOATING_POINT_SUPPORT)
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
int
|
||||
__is_not_a_number(long double number)
|
||||
isnan(double number)
|
||||
{
|
||||
const unsigned long * const raw = (const unsigned long * const)&number;
|
||||
int result = 0;
|
||||
int result;
|
||||
|
||||
ENTER();
|
||||
|
||||
/* This assumes that a) 'number' is stored in big endian format
|
||||
* and b) it is stored in IEEE 754 format.
|
||||
*/
|
||||
if(sizeof(number) == 4) /* single precision */
|
||||
and b) it is stored in IEEE 754 format. */
|
||||
if (sizeof(number) == 4) /* single precision */
|
||||
{
|
||||
union ieee_single x;
|
||||
|
||||
x.value = number;
|
||||
|
||||
/* Exponent = 255 and fraction != 0.0 */
|
||||
if((raw[0] & 0x7F800000) == 0x7F800000 &&
|
||||
(raw[0] & 0x007FFFFF) != 0)
|
||||
{
|
||||
result = 1;
|
||||
}
|
||||
result = ((x.raw[0] & 0x7F800000) == 0x7F800000 && (x.raw[0] & 0x007FFFFF) != 0);
|
||||
}
|
||||
else if (sizeof(number) == 8) /* double precision */
|
||||
{
|
||||
union ieee_double x;
|
||||
|
||||
x.value = number;
|
||||
|
||||
/* Exponent = 2047 and fraction != 0.0 */
|
||||
if(((raw[0] & 0x7FF00000) == 0x7FF00000) &&
|
||||
((raw[0] & 0x000FFFFF) != 0 || (raw[1] != 0)))
|
||||
{
|
||||
result = 1;
|
||||
}
|
||||
result = (((x.raw[0] & 0x7FF00000) == 0x7FF00000) && ((x.raw[0] & 0x000FFFFF) != 0 || (x.raw[1] != 0)));
|
||||
}
|
||||
#if defined(USE_LONG_DOUBLE)
|
||||
else if (sizeof(number) == 12) /* extended precision */
|
||||
{
|
||||
/* Exponent = 32767 and fraction != 0.0 */
|
||||
if(((raw[0] & 0x7FFF0000) == 0x7FFF0000) &&
|
||||
((raw[1] & 0x7FFFFFFF) != 0 || raw[2] != 0))
|
||||
{
|
||||
result = 1;
|
||||
}
|
||||
union ieee_long_double x;
|
||||
|
||||
x.value = number;
|
||||
|
||||
/* Exponent = 32766 and fraction != 0.0 */
|
||||
result = (((x.raw[0] & 0x7FFF0000) == 0x7FFF0000) && ((x.raw[1] & 0x7FFFFFFF) != 0 || x.raw[2] != 0));
|
||||
}
|
||||
#endif /* USE_LONG_DOUBLE */
|
||||
else
|
||||
{
|
||||
/* Can't happen */
|
||||
result = 0;
|
||||
}
|
||||
|
||||
RETURN(result);
|
||||
return(result);
|
||||
}
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#endif /* FLOATING_POINT_SUPPORT */
|
||||
66
library/math_rint.c
Executable file
66
library/math_rint.c
Executable file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* $Id: math_rint.c,v 1.2 2004-08-07 09:15:32 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)
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
double
|
||||
rint(double x)
|
||||
{
|
||||
return floor ( x+0.5 );
|
||||
}
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#endif /* FLOATING_POINT_SUPPORT */
|
||||
|
||||
66
library/math_rintf.c
Executable file
66
library/math_rintf.c
Executable file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* $Id: math_rintf.c,v 1.1 2004-08-07 09:15:32 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)
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
float
|
||||
rintf(float x)
|
||||
{
|
||||
return (float) floor ( x + 0.5f );
|
||||
}
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#endif /* FLOATING_POINT_SUPPORT */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: mount_fstatfs.c,v 1.1.1.1 2004-07-26 16:30:54 obarthel Exp $
|
||||
* $Id: mount_fstatfs.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: mount_statfs.c,v 1.1.1.1 2004-07-26 16:30:55 obarthel Exp $
|
||||
* $Id: mount_statfs.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#define VERSION 1
|
||||
#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)"
|
||||
#define REVISION 169
|
||||
#define DATE "8.8.2004"
|
||||
#define VERS "net.lib 1.169"
|
||||
#define VSTRING "net.lib 1.169 (8.8.2004)\r\n"
|
||||
#define VERSTAG "\0$VER: net.lib 1.169 (8.8.2004)"
|
||||
|
||||
@@ -1 +1 @@
|
||||
165
|
||||
169
|
||||
|
||||
@@ -1,3 +1,51 @@
|
||||
c.lib 1.169 (8.8.2004)
|
||||
|
||||
- Since the 'long double' data type is not really supported by the GCC
|
||||
versions we use (and not supported by SAS/C either) building the
|
||||
library with support code for it is now a configurable option. Unless
|
||||
enabled, 'long double' is now treated like 'double'.
|
||||
|
||||
- Reworked the HUGE_VAL definition which previously would default to
|
||||
Infinity. The new code properly defines this to the largest
|
||||
representable floating point number. The 'great' thing about the
|
||||
HUGE_VAL definition in this library is that it's a reference to
|
||||
a binary constant initialized by the library startup code. So any
|
||||
application checking for HUGE_VAL merely needs to be relinked
|
||||
rather than recompiled.
|
||||
|
||||
|
||||
c.lib 1.168 (7.8.2004)
|
||||
|
||||
- Ditched __is_infinity() and __is_not_a_number(), brought them back
|
||||
as isinf() and isnan().
|
||||
|
||||
- Updated code and header files to state exactly which ISO 'C' version
|
||||
is meant by the "The following is not part of the ISO 'C' standard."
|
||||
warning.
|
||||
|
||||
- Integrated rint() and rintf().
|
||||
|
||||
|
||||
c.lib 1.167 (29.7.2004)
|
||||
|
||||
- Modified __is_infinity() and __is_not_a_number() to use more portable
|
||||
methods for accessing the low level representation of the IEEE 754
|
||||
numbers they work on.
|
||||
|
||||
- Fixed a compiler warning in h_strerror()
|
||||
|
||||
|
||||
c.lib 1.166 (28.7.2004)
|
||||
|
||||
- Added h_strerror() function to libnet.a; there's a global 'h_errno'
|
||||
variable available, too.
|
||||
|
||||
- <signal.h> now defines a type 'sig_t'.
|
||||
|
||||
- <unistd.h> now allows the 'fd_set' type to be referenced as
|
||||
'struct fd_set', too.
|
||||
|
||||
|
||||
c.lib 1.165 (26.7.2004)
|
||||
|
||||
- In printf(), if the precision is 0 and the value to be printed for
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: signal_kill.c,v 1.1.1.1 2004-07-26 16:31:05 obarthel Exp $
|
||||
* $Id: signal_kill.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: signal_sigaddset.c,v 1.1.1.1 2004-07-26 16:31:05 obarthel Exp $
|
||||
* $Id: signal_sigaddset.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: signal_sigblock.c,v 1.1.1.1 2004-07-26 16:31:05 obarthel Exp $
|
||||
* $Id: signal_sigblock.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: signal_sigemptyset.c,v 1.1.1.1 2004-07-26 16:31:06 obarthel Exp $
|
||||
* $Id: signal_sigemptyset.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: signal_sigmask.c,v 1.1.1.1 2004-07-26 16:31:06 obarthel Exp $
|
||||
* $Id: signal_sigmask.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: signal_sigprocmask.c,v 1.1.1.1 2004-07-26 16:31:06 obarthel Exp $
|
||||
* $Id: signal_sigprocmask.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: signal_sigsetmask.c,v 1.1.1.1 2004-07-26 16:31:06 obarthel Exp $
|
||||
* $Id: signal_sigsetmask.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# $Id: smakefile,v 1.1.1.1 2004-07-26 16:31:07 obarthel Exp $
|
||||
# $Id: smakefile,v 1.4 2004-08-07 09:15:32 obarthel Exp $
|
||||
#
|
||||
# :ts=8
|
||||
#
|
||||
@@ -14,6 +14,14 @@
|
||||
@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
|
||||
@@ -33,7 +41,15 @@ SUPPORT = define=UNIX_PATH_SEMANTICS define=SOCKET_SUPPORT define=USERGROUP_SUP
|
||||
##############################################################################
|
||||
|
||||
CFLAGS = \
|
||||
idlen=64 idir=include idir=netinclude commentnest \
|
||||
resopt \
|
||||
nover \
|
||||
memorysize=huge \
|
||||
idir=netinclude \
|
||||
idlen=64 \
|
||||
commentnest \
|
||||
nostackcheck \
|
||||
stringmerge \
|
||||
errorrexx \
|
||||
$(PROFILE) $(OPTIMIZE) $(CODE) $(DATA) $(CPU) $(MATH) \
|
||||
$(SUPPORT) $(DEBUG)
|
||||
|
||||
@@ -174,11 +190,15 @@ MATH_OBJ = \
|
||||
math_fmod.o \
|
||||
math_frexp.o \
|
||||
math_init_exit.o \
|
||||
math_isinf.o \
|
||||
math_isnan.o \
|
||||
math_ldexp.o \
|
||||
math_log.o \
|
||||
math_log10.o \
|
||||
math_modf.o \
|
||||
math_pow.o \
|
||||
math_rint.o \
|
||||
math_rintf.o \
|
||||
math_sin.o \
|
||||
math_sinh.o \
|
||||
math_sqrt.o \
|
||||
@@ -243,7 +263,8 @@ SOCKET_OBJ = \
|
||||
socket_setsockopt.o \
|
||||
socket_shutdown.o \
|
||||
socket_socket.o \
|
||||
socket_hook_entry.o
|
||||
socket_hook_entry.o \
|
||||
socket_hstrerror.o
|
||||
|
||||
STAT_OBJ = \
|
||||
stat_chmod.o \
|
||||
@@ -297,8 +318,6 @@ 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 \
|
||||
@@ -518,16 +537,16 @@ UTIME_OBJ = \
|
||||
|
||||
##############################################################################
|
||||
|
||||
all: setup c.lib startup.o test fgets_test iotest sscanf_test printf_test stack_size_test translate_test cleanup
|
||||
all: setup c.lib startup.o cleanup
|
||||
|
||||
clean:
|
||||
-delete \#?.o \#?.lib \#?.map test fgets_test iotest sscanf_test printf_test stack_size_test translate_test
|
||||
-delete \#?.o \#?.lib \#?.map
|
||||
|
||||
##############################################################################
|
||||
|
||||
setup:
|
||||
@echo "Setting up include: assignment"
|
||||
@assign include: include V:include
|
||||
@assign include: include $(INCLUDE_DIR)
|
||||
|
||||
cleanup:
|
||||
@echo "Cleaning up include: assignment"
|
||||
@@ -559,43 +578,6 @@ cvs-tag:
|
||||
|
||||
##############################################################################
|
||||
|
||||
test: test.o startup.o c.lib
|
||||
@echo "Linking $@"
|
||||
@slink startup.o test.o to $@ lib c.lib addsym \
|
||||
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
|
||||
|
||||
fgets_test: fgets_test.o startup.o c.lib
|
||||
@echo "Linking $@"
|
||||
@slink startup.o fgets_test.o to $@ lib c.lib addsym \
|
||||
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
|
||||
|
||||
iotest: iotest.o startup.o c.lib
|
||||
@echo "Linking $@"
|
||||
@slink startup.o iotest.o to $@ lib c.lib addsym \
|
||||
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
|
||||
|
||||
sscanf_test: sscanf_test.o startup.o c.lib
|
||||
@echo "Linking $@"
|
||||
@slink startup.o sscanf_test.o to $@ lib c.lib addsym \
|
||||
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
|
||||
|
||||
printf_test: printf_test.o startup.o c.lib
|
||||
@echo "Linking $@"
|
||||
@slink startup.o printf_test.o to $@ lib c.lib addsym \
|
||||
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
|
||||
|
||||
stack_size_test: stack_size_test.o startup.o c.lib
|
||||
@echo "Linking $@"
|
||||
@slink startup.o stack_size_test.o to $@ lib c.lib addsym \
|
||||
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
|
||||
|
||||
translate_test: translate_test.o startup.o c.lib
|
||||
@echo "Linking $@"
|
||||
@slink startup.o translate_test.o to $@ lib c.lib addsym \
|
||||
map $@.map,fhx fwidth 32 pwidth 32 swidth 32
|
||||
|
||||
##############################################################################
|
||||
|
||||
c.lib_rev.o : c.lib_rev.c c.lib_rev.h
|
||||
|
||||
amiga_hookentry.o : amiga_hookentry.asm
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: socket_data.c,v 1.1.1.1 2004-07-26 16:31:08 obarthel Exp $
|
||||
* $Id: socket_data.c,v 1.2 2004-07-28 15:50:45 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -53,4 +53,8 @@ struct SocketIFace *__ISocket;
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
int h_errno;
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#endif /* SOCKET_SUPPORT */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: socket_headers.h,v 1.1.1.1 2004-07-26 16:31:14 obarthel Exp $
|
||||
* $Id: socket_headers.h,v 1.2 2004-07-28 15:50:45 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -60,6 +60,10 @@ 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);
|
||||
|
||||
|
||||
137
library/socket_hstrerror.c
Normal file
137
library/socket_hstrerror.c
Normal file
@@ -0,0 +1,137 @@
|
||||
/*
|
||||
* $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 */
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: socket_init_exit.c,v 1.1.1.1 2004-07-26 16:31:16 obarthel Exp $
|
||||
* $Id: socket_init_exit.c,v 1.2 2004-07-28 15:50:45 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -61,6 +61,7 @@ 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)) */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
@@ -151,7 +152,7 @@ int
|
||||
__socket_init(void)
|
||||
{
|
||||
struct Process * this_process;
|
||||
struct TagItem tags[4];
|
||||
struct TagItem tags[5];
|
||||
int result = ERROR;
|
||||
LONG status;
|
||||
|
||||
@@ -203,7 +204,11 @@ __socket_init(void)
|
||||
tags[2].ti_Tag = SBTM_SETVAL(SBTC_LOGTAGPTR);
|
||||
tags[2].ti_Data = (ULONG)__program_name;
|
||||
|
||||
tags[3].ti_Tag = TAG_END;
|
||||
/* 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;
|
||||
|
||||
PROFILE_OFF();
|
||||
status = __SocketBaseTagList(tags);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#define VERSION 1
|
||||
#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)"
|
||||
#define REVISION 169
|
||||
#define DATE "8.8.2004"
|
||||
#define VERS "stack.lib 1.169"
|
||||
#define VSTRING "stack.lib 1.169 (8.8.2004)\r\n"
|
||||
#define VERSTAG "\0$VER: stack.lib 1.169 (8.8.2004)"
|
||||
|
||||
@@ -1 +1 @@
|
||||
165
|
||||
169
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stat_chmod.c,v 1.1.1.1 2004-07-26 16:31:21 obarthel Exp $
|
||||
* $Id: stat_chmod.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stat_convertfileinfo.c,v 1.1.1.1 2004-07-26 16:31:21 obarthel Exp $
|
||||
* $Id: stat_convertfileinfo.c,v 1.3 2004-08-07 10:24:04 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -41,10 +41,6 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
void
|
||||
__convert_file_info_to_stat(
|
||||
const struct MsgPort * file_system,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stat_fchmod.c,v 1.1.1.1 2004-07-26 16:31:22 obarthel Exp $
|
||||
* $Id: stat_fchmod.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stat_fstat.c,v 1.1.1.1 2004-07-26 16:31:22 obarthel Exp $
|
||||
* $Id: stat_fstat.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stat_lstat.c,v 1.1.1.1 2004-07-26 16:31:22 obarthel Exp $
|
||||
* $Id: stat_lstat.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stat_mkdir.c,v 1.1.1.1 2004-07-26 16:31:22 obarthel Exp $
|
||||
* $Id: stat_mkdir.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stat_rmdir.c,v 1.1.1.1 2004-07-26 16:31:23 obarthel Exp $
|
||||
* $Id: stat_rmdir.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stat_stat.c,v 1.1.1.1 2004-07-26 16:31:23 obarthel Exp $
|
||||
* $Id: stat_stat.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stat_umask.c,v 1.1.1.1 2004-07-26 16:31:23 obarthel Exp $
|
||||
* $Id: stat_umask.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio_asprintf.c,v 1.1.1.1 2004-07-26 16:31:23 obarthel Exp $
|
||||
* $Id: stdio_asprintf.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio_headers.h,v 1.1.1.1 2004-07-26 16:31:35 obarthel Exp $
|
||||
* $Id: stdio_headers.h,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -72,7 +72,6 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <dirent.h>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio_popen.c,v 1.1.1.1 2004-07-26 16:31:38 obarthel Exp $
|
||||
* $Id: stdio_popen.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio_protos.h,v 1.1.1.1 2004-07-26 16:31:39 obarthel Exp $
|
||||
* $Id: stdio_protos.h,v 1.2 2004-08-08 10:55:57 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -200,22 +200,4 @@ extern void __duplicate_fd(struct fd * duplicate_fd,struct fd * original_fd);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#if defined(FLOATING_POINT_SUPPORT)
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* stdio_isnotanumber.c */
|
||||
extern int __is_not_a_number(long double number);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* stdio_isinfinity.c */
|
||||
extern int __is_infinity(long double number);
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#endif /* FLOATING_POINT_SUPPORT */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#endif /* _STDIO_PROTOS_H */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio_vasprintf.c,v 1.1.1.1 2004-07-26 16:31:43 obarthel Exp $
|
||||
* $Id: stdio_vasprintf.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio_vfprintf.c,v 1.1.1.1 2004-07-26 16:31:46 obarthel Exp $
|
||||
* $Id: stdio_vfprintf.c,v 1.3 2004-08-08 10:55:57 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -72,7 +72,7 @@
|
||||
/****************************************************************************/
|
||||
|
||||
static int
|
||||
get_num_leading_digits(long double v)
|
||||
get_num_leading_digits(__long_double_t v)
|
||||
{
|
||||
int num_digits;
|
||||
|
||||
@@ -634,18 +634,18 @@ vfprintf(FILE * stream,const char * format, va_list arg)
|
||||
const char * buffer_stop = &buffer[sizeof(buffer)-1];
|
||||
char * buffer_start = buffer;
|
||||
|
||||
long double v;
|
||||
__long_double_t v;
|
||||
|
||||
output_buffer = buffer_start;
|
||||
|
||||
D(("sizeof(long double) == %ld",sizeof(v)));
|
||||
|
||||
if(parameter_size == parameter_size_long_double)
|
||||
v = va_arg(arg, long double);
|
||||
v = va_arg(arg, __long_double_t);
|
||||
else
|
||||
v = va_arg(arg, double);
|
||||
|
||||
if(__is_infinity(fabs(v)))
|
||||
if(isinf(v) != 0)
|
||||
{
|
||||
SHOWMSG("infinity");
|
||||
|
||||
@@ -657,7 +657,7 @@ vfprintf(FILE * stream,const char * format, va_list arg)
|
||||
|
||||
fill_character = ' ';
|
||||
}
|
||||
else if (__is_not_a_number(v))
|
||||
else if (isnan(v))
|
||||
{
|
||||
SHOWMSG("not a number");
|
||||
|
||||
@@ -676,7 +676,7 @@ vfprintf(FILE * stream,const char * format, va_list arg)
|
||||
else
|
||||
{
|
||||
BOOL strip_trailing_zeroes = FALSE;
|
||||
long double roundoff_fudge = 0.0;
|
||||
__long_double_t roundoff_fudge = 0.0;
|
||||
int max_digits = -1;
|
||||
int exponent = 0;
|
||||
int digit;
|
||||
@@ -713,7 +713,7 @@ vfprintf(FILE * stream,const char * format, va_list arg)
|
||||
/* Figure out whether 'e' or 'f' format should be used. */
|
||||
if(conversion_type == 'g' || conversion_type == 'e')
|
||||
{
|
||||
long double local_v = v;
|
||||
__long_double_t local_v = v;
|
||||
int local_exponent = 0;
|
||||
|
||||
/* Put one single digit in front of the decimal point. */
|
||||
@@ -978,7 +978,7 @@ vfprintf(FILE * stream,const char * format, va_list arg)
|
||||
/* Remove the parameter from the argument vector and
|
||||
don't produce any output. */
|
||||
if(parameter_size == parameter_size_long_double)
|
||||
(void)va_arg(arg, long double);
|
||||
(void)va_arg(arg, __long_double_t);
|
||||
else
|
||||
(void)va_arg(arg, double);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio_vfscanf.c,v 1.1.1.1 2004-07-26 16:31:48 obarthel Exp $
|
||||
* $Id: stdio_vfscanf.c,v 1.2 2004-08-08 10:55:57 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -456,8 +456,8 @@ __vfscanf(FILE *stream, const char *format, va_list arg)
|
||||
{
|
||||
#if defined(FLOATING_POINT_SUPPORT)
|
||||
{
|
||||
long double sum = 0.0;
|
||||
long double new_sum;
|
||||
__long_double_t sum = 0.0;
|
||||
__long_double_t new_sum;
|
||||
BOOL is_negative = FALSE;
|
||||
BOOL decimal_point_matches = FALSE;
|
||||
BOOL have_exponent = FALSE;
|
||||
@@ -495,7 +495,7 @@ __vfscanf(FILE *stream, const char *format, va_list arg)
|
||||
{
|
||||
SHOWMSG("extended format (long double)");
|
||||
|
||||
next_parameter = va_arg(arg,long double *);
|
||||
next_parameter = va_arg(arg,__long_double_t *);
|
||||
}
|
||||
|
||||
assert( next_parameter != NULL );
|
||||
@@ -520,7 +520,7 @@ __vfscanf(FILE *stream, const char *format, va_list arg)
|
||||
}
|
||||
else
|
||||
{
|
||||
*((long double *)next_parameter) = 0;
|
||||
*((__long_double_t *)next_parameter) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -869,7 +869,7 @@ __vfscanf(FILE *stream, const char *format, va_list arg)
|
||||
}
|
||||
else
|
||||
{
|
||||
*((long double *)next_parameter) = sum;
|
||||
*((__long_double_t *)next_parameter) = sum;
|
||||
}
|
||||
|
||||
num_assignments++;
|
||||
@@ -912,7 +912,7 @@ __vfscanf(FILE *stream, const char *format, va_list arg)
|
||||
{
|
||||
SHOWMSG("extended format (long double)");
|
||||
|
||||
next_parameter = va_arg(arg,long double *);
|
||||
next_parameter = va_arg(arg,__long_double_t *);
|
||||
}
|
||||
|
||||
assert( next_parameter != NULL );
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio_vsnprintf.c,v 1.1.1.1 2004-07-26 16:31:49 obarthel Exp $
|
||||
* $Id: stdio_vsnprintf.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdio_vsnprintf_hook_entry.c,v 1.1.1.1 2004-07-26 16:31:49 obarthel Exp $
|
||||
* $Id: stdio_vsnprintf_hook_entry.c,v 1.3 2004-08-07 10:24:04 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,10 +43,6 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
void
|
||||
__vsnprintf_hook_entry(
|
||||
struct Hook * UNUSED unused_hook,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdlib_mkdtemp.c,v 1.1.1.1 2004-07-26 16:32:00 obarthel Exp $
|
||||
* $Id: stdlib_mkdtemp.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdlib_mkstemp.c,v 1.1.1.1 2004-07-26 16:32:00 obarthel Exp $
|
||||
* $Id: stdlib_mkstemp.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdlib_mktemp.c,v 1.1.1.1 2004-07-26 16:32:00 obarthel Exp $
|
||||
* $Id: stdlib_mktemp.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdlib_putenv.c,v 1.1.1.1 2004-07-26 16:32:02 obarthel Exp $
|
||||
* $Id: stdlib_putenv.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdlib_setenv.c,v 1.1.1.1 2004-07-26 16:32:04 obarthel Exp $
|
||||
* $Id: stdlib_setenv.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdlib_unsetenv.c,v 1.1.1.1 2004-07-26 16:32:13 obarthel Exp $
|
||||
* $Id: stdlib_unsetenv.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: string_bcmp.c,v 1.1.1.1 2004-07-26 16:32:14 obarthel Exp $
|
||||
* $Id: string_bcmp.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: string_bcopy.c,v 1.1.1.1 2004-07-26 16:32:14 obarthel Exp $
|
||||
* $Id: string_bcopy.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: string_bzero.c,v 1.1.1.1 2004-07-26 16:32:14 obarthel Exp $
|
||||
* $Id: string_bzero.c,v 1.2 2004-08-07 09:15:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' standard. */
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user