mirror of
https://github.com/adtools/clib2.git
synced 2025-12-08 14:59:05 +00:00
Compare commits
111 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d27cfef46b | |||
| 0f3791a9a4 | |||
| e5a2a2b451 | |||
| ca1fc13792 | |||
| 3a0324e4ff | |||
| 77279e3224 | |||
| 75b0a762ef | |||
| c635fb3ffe | |||
| 70d1e4b7a3 | |||
| e9659f46d6 | |||
| acc795df55 | |||
| 66303e9ba2 | |||
| 7e1d5d6f6a | |||
| e789564429 | |||
| 350ffdb790 | |||
| 6809a5dd5b | |||
| 591ee2250e | |||
| 2b9d624d1d | |||
| bf4d3b763c | |||
| 9984a37cb4 | |||
| 0b833b8680 | |||
| b8ba11b158 | |||
| 872b2b335b | |||
| b1f56b1bbe | |||
| 9ce2ba234f | |||
| d5bfee3917 | |||
| 9f37f76b01 | |||
| 2f3de1dcd6 | |||
| 74b2838663 | |||
| 2c450a1e48 | |||
| 828e36f2d7 | |||
| 502d1aaab7 | |||
| d6e18a9266 | |||
| 3fe72eaa44 | |||
| 3541b011a6 | |||
| 7b903355a7 | |||
| 36c33073a5 | |||
| fba16b67fd | |||
| 5c29f84a0d | |||
| aa3240972a | |||
| 8aeb5072ab | |||
| 42dba39aef | |||
| 927407de1b | |||
| f3dcdfe1ce | |||
| ead90dee0d | |||
| 1721b10610 | |||
| 05ef0d30bc | |||
| 3a7ac52248 | |||
| 2c81be592c | |||
| e158a3fe18 | |||
| 40d64e1413 | |||
| 62d0c2dc81 | |||
| 940b8295c0 | |||
| a91cb96b1b | |||
| 864a0e703e | |||
| 5828c6cdab | |||
| cdfe0dad6f | |||
| 85122893ff | |||
| 9caa5b7ec4 | |||
| 6cf4cc5b4a | |||
| 42acda07f3 | |||
| 8633c3a77b | |||
| 5f42fb06f9 | |||
| 4e1c4967e6 | |||
| 2d48db0ce0 | |||
| e2cadc9ea5 | |||
| bde4d37a64 | |||
| c3d55e94ec | |||
| a1dc5e8e6e | |||
| 75a85db1a7 | |||
| d4528b2862 | |||
| b043a1ac1f | |||
| 83543472f1 | |||
| 601caa5708 | |||
| 2cf92a6395 | |||
| c26ee0ba7f | |||
| 41eef5e1aa | |||
| bbea0a86bd | |||
| 91b4f288f9 | |||
| 55ab845de0 | |||
| 184a2ada87 | |||
| 2e227506e5 | |||
| 2e4de301cc | |||
| 9c436ceaaa | |||
| bfedbbabd7 | |||
| 0266e8c0ad | |||
| 524b70034c | |||
| 48654e7cb4 | |||
| e40fc3dea2 | |||
| 230dcf2e26 | |||
| 98d26f36ac | |||
| 9be142d251 | |||
| b2bc0096dc | |||
| e833477448 | |||
| 23c2091ab4 | |||
| ca30ee62a2 | |||
| 9ab31bb996 | |||
| 26b8b9efbf | |||
| 67ff2ca833 | |||
| 797fcb89a1 | |||
| 0809248009 | |||
| 1153e58366 | |||
| 06e5f437d9 | |||
| fa8fc6959f | |||
| 954e614cb2 | |||
| a5a5e36119 | |||
| e4f9d1b7f6 | |||
| 0459ea1fc9 | |||
| fe29857567 | |||
| 5578c6a39e | |||
| 2b50d1586c |
@ -1,13 +0,0 @@
|
|||||||
# The "checkoutlist" file is used to support additional version controlled
|
|
||||||
# administrative files in $CVSROOT/CVSROOT, such as template files.
|
|
||||||
#
|
|
||||||
# The first entry on a line is a filename which will be checked out from
|
|
||||||
# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
|
|
||||||
# The remainder of the line is an error message to use if the file cannot
|
|
||||||
# be checked out.
|
|
||||||
#
|
|
||||||
# File format:
|
|
||||||
#
|
|
||||||
# [<whitespace>]<filename>[<whitespace><error message>]<end-of-line>
|
|
||||||
#
|
|
||||||
# comment lines begin with '#'
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
# The "commitinfo" file is used to control pre-commit checks.
|
|
||||||
# The filter on the right is invoked with the repository and a list
|
|
||||||
# of files to check. A non-zero exit of the filter program will
|
|
||||||
# cause the commit to be aborted.
|
|
||||||
#
|
|
||||||
# The first entry on a line is a regular expression which is tested
|
|
||||||
# against the directory that the change is being committed to, relative
|
|
||||||
# to the $CVSROOT. For the first match that is found, then the remainder
|
|
||||||
# of the line is the name of the filter to run.
|
|
||||||
#
|
|
||||||
# If the repository name does not match any of the regular expressions in this
|
|
||||||
# file, the "DEFAULT" line is used, if it is specified.
|
|
||||||
#
|
|
||||||
# If the name "ALL" appears as a regular expression it is always used
|
|
||||||
# in addition to the first matching regex or "DEFAULT".
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
# Set this to "no" if pserver shouldn't check system users/passwords
|
|
||||||
#SystemAuth=no
|
|
||||||
|
|
||||||
# Put CVS lock files in this directory rather than directly in the repository.
|
|
||||||
#LockDir=/var/lock/cvs
|
|
||||||
|
|
||||||
# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top
|
|
||||||
# level of the new working directory when using the `cvs checkout'
|
|
||||||
# command.
|
|
||||||
#TopLevelAdmin=no
|
|
||||||
|
|
||||||
# Set `LogHistory' to `all' or `TOEFWUPCGMAR' to log all transactions to the
|
|
||||||
# history file, or a subset as needed (ie `TMAR' logs all write operations)
|
|
||||||
#LogHistory=TOEFWUPCGMAR
|
|
||||||
|
|
||||||
# Set `RereadLogAfterVerify' to `always' (the default) to allow the verifymsg
|
|
||||||
# script to change the log message. Set it to `stat' to force CVS to verify# that the file has changed before reading it (this can take up to an extra
|
|
||||||
# second per directory being committed, so it is not recommended for large
|
|
||||||
# repositories. Set it to `never' (the previous CVS behavior) to prevent
|
|
||||||
# verifymsg scripts from changing the log message.
|
|
||||||
#RereadLogAfterVerify=always
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
# This file affects handling of files based on their names.
|
|
||||||
#
|
|
||||||
# The -m option specifies whether CVS attempts to merge files.
|
|
||||||
#
|
|
||||||
# The -k option specifies keyword expansion (e.g. -kb for binary).
|
|
||||||
#
|
|
||||||
# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
|
|
||||||
#
|
|
||||||
# wildcard [option value][option value]...
|
|
||||||
#
|
|
||||||
# where option is one of
|
|
||||||
# -f from cvs filter value: path to filter
|
|
||||||
# -t to cvs filter value: path to filter
|
|
||||||
# -m update methodology value: MERGE or COPY
|
|
||||||
# -k expansion mode value: b, o, kkv, &c
|
|
||||||
#
|
|
||||||
# and value is a single-quote delimited value.
|
|
||||||
# For example:
|
|
||||||
#*.gif -k 'b'
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
# The "editinfo" file is used to allow verification of logging
|
|
||||||
# information. It works best when a template (as specified in the
|
|
||||||
# rcsinfo file) is provided for the logging procedure. Given a
|
|
||||||
# template with locations for, a bug-id number, a list of people who
|
|
||||||
# reviewed the code before it can be checked in, and an external
|
|
||||||
# process to catalog the differences that were code reviewed, the
|
|
||||||
# following test can be applied to the code:
|
|
||||||
#
|
|
||||||
# Making sure that the entered bug-id number is correct.
|
|
||||||
# Validating that the code that was reviewed is indeed the code being
|
|
||||||
# checked in (using the bug-id number or a seperate review
|
|
||||||
# number to identify this particular code set.).
|
|
||||||
#
|
|
||||||
# If any of the above test failed, then the commit would be aborted.
|
|
||||||
#
|
|
||||||
# Actions such as mailing a copy of the report to each reviewer are
|
|
||||||
# better handled by an entry in the loginfo file.
|
|
||||||
#
|
|
||||||
# One thing that should be noted is the the ALL keyword is not
|
|
||||||
# supported. There can be only one entry that matches a given
|
|
||||||
# repository.
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
# The "loginfo" file controls where "cvs commit" log information
|
|
||||||
# is sent. The first entry on a line is a regular expression which must match
|
|
||||||
# the directory that the change is being made to, relative to the
|
|
||||||
# $CVSROOT. If a match is found, then the remainder of the line is a filter
|
|
||||||
# program that should expect log information on its standard input.
|
|
||||||
#
|
|
||||||
# If the repository name does not match any of the regular expressions in this
|
|
||||||
# file, the "DEFAULT" line is used, if it is specified.
|
|
||||||
#
|
|
||||||
# If the name ALL appears as a regular expression it is always used
|
|
||||||
# in addition to the first matching regex or DEFAULT.
|
|
||||||
#
|
|
||||||
# You may specify a format string as part of the
|
|
||||||
# filter. The string is composed of a `%' followed
|
|
||||||
# by a single format character, or followed by a set of format
|
|
||||||
# characters surrounded by `{' and `}' as separators. The format
|
|
||||||
# characters are:
|
|
||||||
#
|
|
||||||
# s = file name
|
|
||||||
# V = old version number (pre-checkin)
|
|
||||||
# v = new version number (post-checkin)
|
|
||||||
# t = tag or branch name
|
|
||||||
#
|
|
||||||
# For example:
|
|
||||||
#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
|
|
||||||
# or
|
|
||||||
#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
# Three different line formats are valid:
|
|
||||||
# key -a aliases...
|
|
||||||
# key [options] directory
|
|
||||||
# key [options] directory files...
|
|
||||||
#
|
|
||||||
# Where "options" are composed of:
|
|
||||||
# -i prog Run "prog" on "cvs commit" from top-level of module.
|
|
||||||
# -o prog Run "prog" on "cvs checkout" of module.
|
|
||||||
# -e prog Run "prog" on "cvs export" of module.
|
|
||||||
# -t prog Run "prog" on "cvs rtag" of module.
|
|
||||||
# -u prog Run "prog" on "cvs update" of module.
|
|
||||||
# -d dir Place module in directory "dir" instead of module name.
|
|
||||||
# -l Top-level directory only -- do not recurse.
|
|
||||||
#
|
|
||||||
# NOTE: If you change any of the "Run" options above, you'll have to
|
|
||||||
# release and re-checkout any working directories of these modules.
|
|
||||||
#
|
|
||||||
# And "directory" is a path to a directory relative to $CVSROOT.
|
|
||||||
#
|
|
||||||
# The "-a" option specifies an alias. An alias is interpreted as if
|
|
||||||
# everything on the right of the "-a" had been typed on the command line.
|
|
||||||
#
|
|
||||||
# You can encode a module within a module by using the special '&'
|
|
||||||
# character to interpose another module into the current module. This
|
|
||||||
# can be useful for creating a module that consists of many directories
|
|
||||||
# spread out over the entire source repository.
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
# The "notify" file controls where notifications from watches set by
|
|
||||||
# "cvs watch add" or "cvs edit" are sent. The first entry on a line is
|
|
||||||
# a regular expression which is tested against the directory that the
|
|
||||||
# change is being made to, relative to the $CVSROOT. If it matches,
|
|
||||||
# then the remainder of the line is a filter program that should contain
|
|
||||||
# one occurrence of %s for the user to notify, and information on its
|
|
||||||
# standard input.
|
|
||||||
#
|
|
||||||
# "ALL" or "DEFAULT" can be used in place of the regular expression.
|
|
||||||
#
|
|
||||||
# For example:
|
|
||||||
#ALL mail -s "CVS notification" %s
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
# The "rcsinfo" file is used to control templates with which the editor
|
|
||||||
# is invoked on commit and import.
|
|
||||||
#
|
|
||||||
# The first entry on a line is a regular expression which is tested
|
|
||||||
# against the directory that the change is being made to, relative to the
|
|
||||||
# $CVSROOT. For the first match that is found, then the remainder of the
|
|
||||||
# line is the name of the file that contains the template.
|
|
||||||
#
|
|
||||||
# If the repository name does not match any of the regular expressions in this
|
|
||||||
# file, the "DEFAULT" line is used, if it is specified.
|
|
||||||
#
|
|
||||||
# If the name "ALL" appears as a regular expression it is always used
|
|
||||||
# in addition to the first matching regex or "DEFAULT".
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
# The "taginfo" file is used to control pre-tag checks.
|
|
||||||
# The filter on the right is invoked with the following arguments:
|
|
||||||
#
|
|
||||||
# $1 -- tagname
|
|
||||||
# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
|
|
||||||
# $3 -- repository
|
|
||||||
# $4-> file revision [file revision ...]
|
|
||||||
#
|
|
||||||
# A non-zero exit of the filter program will cause the tag to be aborted.
|
|
||||||
#
|
|
||||||
# The first entry on a line is a regular expression which is tested
|
|
||||||
# against the directory that the change is being committed to, relative
|
|
||||||
# to the $CVSROOT. For the first match that is found, then the remainder
|
|
||||||
# of the line is the name of the filter to run.
|
|
||||||
#
|
|
||||||
# If the repository name does not match any of the regular expressions in this
|
|
||||||
# file, the "DEFAULT" line is used, if it is specified.
|
|
||||||
#
|
|
||||||
# If the name "ALL" appears as a regular expression it is always used
|
|
||||||
# in addition to the first matching regex or "DEFAULT".
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
# The "verifymsg" file is used to allow verification of logging
|
|
||||||
# information. It works best when a template (as specified in the
|
|
||||||
# rcsinfo file) is provided for the logging procedure. Given a
|
|
||||||
# template with locations for, a bug-id number, a list of people who
|
|
||||||
# reviewed the code before it can be checked in, and an external
|
|
||||||
# process to catalog the differences that were code reviewed, the
|
|
||||||
# following test can be applied to the code:
|
|
||||||
#
|
|
||||||
# Making sure that the entered bug-id number is correct.
|
|
||||||
# Validating that the code that was reviewed is indeed the code being
|
|
||||||
# checked in (using the bug-id number or a seperate review
|
|
||||||
# number to identify this particular code set.).
|
|
||||||
#
|
|
||||||
# If any of the above test failed, then the commit would be aborted.
|
|
||||||
#
|
|
||||||
# Actions such as mailing a copy of the report to each reviewer are
|
|
||||||
# better handled by an entry in the loginfo file.
|
|
||||||
#
|
|
||||||
# One thing that should be noted is the the ALL keyword is not
|
|
||||||
# supported. There can be only one entry that matches a given
|
|
||||||
# repository.
|
|
||||||
@ -1,30 +0,0 @@
|
|||||||
<!DOCTYPE html public "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Notes on building the library</title>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h1>Notes on building the library</h1>
|
|
||||||
|
|
||||||
<p>In order to build the library, you need a 'C' compiler (obvious, isn't it?) and
|
|
||||||
a set of header files for the networking API definitions. The networking header
|
|
||||||
files go into a directory <tt>netinclude</tt> which has to sit in the same directory as
|
|
||||||
the source code and the <tt>include</tt> directory you find in there. I'm not currently
|
|
||||||
supplying these header files here. Drop me a line, and I'll take care of that.</p>
|
|
||||||
|
|
||||||
<p>The SAS/C flavour (<tt>smakefile</tt>) should get the library built using the "large data"
|
|
||||||
model. This rules out the use of residentable programs as the startup code I'm
|
|
||||||
using is very primitive (<tt>startup.o</tt>) and doesn't tinker with A4 relative data
|
|
||||||
addressing (and how this may be set up).</p>
|
|
||||||
|
|
||||||
<p>There are two makefiles for GCC, each a different flavour. There is <tt>GNUmakefile.68k</tt>,
|
|
||||||
which will build the library for GCC on the 68k platform ("classic" Amiga). This
|
|
||||||
builds all variants of the library, for large data, small data, resident, whatever
|
|
||||||
model. It's a lot of work and I don't recommend you do this on a plain 68k machine.
|
|
||||||
It will literally (!) take hours. The other makefile flavour is for AmigaOS4 using
|
|
||||||
the PowerPC hosted GCC system (<tt>GNUmakefile.os4</tt>). This builds only the large data
|
|
||||||
version of the library, but this is usually all you need. Small data support is
|
|
||||||
currently not implemented but might follow in the future.</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,67 +0,0 @@
|
|||||||
<!DOCTYPE html public "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Notes on using the library with Amiga GCC (68k)</title>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h1>Notes on using the library with Amiga GCC (68k)</h1>
|
|
||||||
|
|
||||||
<p>You can use the 68k build of clib2 with the existing Amiga 68k ports of the
|
|
||||||
GNU 'C' compiler. In order to do so, you need to modify the <tt>specs</tt> file which
|
|
||||||
controls how the compiler(s) and the linker interact, and where the linker
|
|
||||||
will look for the program startup code and library files. Also, you will need
|
|
||||||
to copy the header files, startup code and library files to the locations
|
|
||||||
where the 'C' compiler and linker expects them.</p>
|
|
||||||
|
|
||||||
<p>Please read the following description before you follow the instructions. The
|
|
||||||
changes suggested may have unexpected side-effects!</p>
|
|
||||||
|
|
||||||
<p>I have provided a working <tt>specs</tt> file with this documentation file. To switch
|
|
||||||
over an existing Amiga 68k port of GCC to use clib2, you would proceed as
|
|
||||||
follows:</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li> Locate the directory within which GCC is installed. For example, this
|
|
||||||
could be within a directory to which the name <tt>ADE:</tt>, <tt>GG:</tt> or <tt>GCC:</tt>
|
|
||||||
is assigned. For the sake of simplicity, the following notes assume
|
|
||||||
that the assignment name is <tt>GCC:</tt>
|
|
||||||
|
|
||||||
<li> Make backup copies of the following directories and files:
|
|
||||||
<ol>
|
|
||||||
<li> <tt>GCC:lib/gcc-lib/amigaos/2.95.3/specs</tt><br>
|
|
||||||
|
|
||||||
<p>(NOTE: Check the directory called <tt>GCC:lib/gcc-lib/amigaos</tt>
|
|
||||||
first; the "2.95.3" quoted above refers to the version,
|
|
||||||
revision and patch number of the GCC installed and your
|
|
||||||
version number may differ!)</p>
|
|
||||||
|
|
||||||
<li> <tt>GCC:include</tt>
|
|
||||||
<li> <tt>GCC:lib</tt>
|
|
||||||
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<li> Now you can proceed to install clib2; just copy the <tt>include</tt> and <tt>lib</tt>
|
|
||||||
directories over, like this:
|
|
||||||
<ol>
|
|
||||||
<li><kbd>Copy include GCC:include all quiet</kbd>
|
|
||||||
<li><kbd>Copy lib GCC:lib all quiet</kbd>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<li> Finally, replace the <tt>specs</tt> file with the one provided:
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<li> <kbd>Copy specs GCC:lib/gcc-lib/amigaos/2.95.3/specs</kbd><br>
|
|
||||||
|
|
||||||
<p>(NOTE: Check the directory called <tt>GCC:lib/gcc-lib/amigaos</tt>
|
|
||||||
first; the "2.95.3" quoted above refers to the version,
|
|
||||||
revision and patch number of the GCC installed and your
|
|
||||||
version number may differ!)</p>
|
|
||||||
</ol>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Once you have completed these steps you should be able to build programs using
|
|
||||||
the 68k build of clib2 and you currently installed GCC. Note that these
|
|
||||||
changes may have the effect of rendering your C++ compiler unusable, so make
|
|
||||||
sure that you've made backup copies of all files and directories first!</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,324 +0,0 @@
|
|||||||
<!DOCTYPE html public "-//W3C//DTD HTML 3.2 Final//EN">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>An ISO 'C' (1994) compliant runtime library for the Amiga</title>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h1>An ISO 'C' (1994) compliant runtime library for the Amiga</h1>
|
|
||||||
|
|
||||||
<h2>1. What is this?</h2>
|
|
||||||
|
|
||||||
<p>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.</p>
|
|
||||||
|
|
||||||
<p>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.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>2. What does it do?</h2>
|
|
||||||
|
|
||||||
<p>Using <i>'C' - A reference manual</i> (4th edition) 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.</p>
|
|
||||||
|
|
||||||
<p>Because Samba needs a few POSIX-like routines to be supported, the library
|
|
||||||
functionality is complemented by a set of routines described in <i>Advanced
|
|
||||||
programming in the Unix environent</i>.</p>
|
|
||||||
|
|
||||||
<p>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.</p>
|
|
||||||
|
|
||||||
<p>The library supports floating point math, which, for the 68k platform, 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 <tt>IEEE_FLOATING_POINT_SUPPORT</tt> preprocessor symbol to activate IEEE math
|
|
||||||
code and the <tt>M68881_FLOATING_POINT_SUPPORT</tt> symbol for M68881 inline math.</p>
|
|
||||||
|
|
||||||
<p>For the PowerPC platform, the library uses code borrowed from fdlibm 5.3,
|
|
||||||
which is a portable library of arithmetic functions developed by Sun
|
|
||||||
Microsystems which, for example, is also used within the Java platform.</p>
|
|
||||||
|
|
||||||
<p>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 <tt>__stack_size</tt> variable (see
|
|
||||||
<tt>stdlib_main.c</tt>).</p>
|
|
||||||
|
|
||||||
<p>I added some <tt>amiga.lib</tt> and <tt>debug.lib</tt> functionality to the library, but don't
|
|
||||||
count on it to be complete.</p>
|
|
||||||
|
|
||||||
<h3>2.1 Thread-safety</h3>
|
|
||||||
|
|
||||||
<p>The library code is supposed to be thread-safe if built with the <tt>__THREAD_SAFE</tt>
|
|
||||||
preprocesssor symbold defined. Note that 'thread-safe' does <em>not</em> mean
|
|
||||||
'reentrant'. Multiple callers for certain library functions are permitted, but
|
|
||||||
not for all of them. For example, <tt>mkdtemp()</tt> is not thread-safe, and neither is
|
|
||||||
<tt>rand()</tt> or <tt>localtime()</tt>. But as per <b>POSIX 1003.1c-1995</b> there are thread-safe
|
|
||||||
variants of <tt>rand()</tt> and <tt>localtime()</tt> called <tt>rand_r()</tt>, <tt>localtime_r()</tt>, and others.</p>
|
|
||||||
|
|
||||||
<p>The use of the socket I/O functions is still problematic because the
|
|
||||||
underlying <tt>bsdsocket.library</tt> API is not supposed to be used by any process
|
|
||||||
other than the one that opened it. While one TCP/IP stack (my own "Roadshow") allows you
|
|
||||||
to share the library base among different processes, if so configured, it is the
|
|
||||||
exception. No other TCP/IP stack available for the Amiga robustly supports a similar
|
|
||||||
feature. Any attempt to enable it by default would introduce incompatibilities which
|
|
||||||
might be difficult to support.</p>
|
|
||||||
|
|
||||||
<p>Also yet unsolved is the issue of reading
|
|
||||||
error codes from the <tt>errno</tt> variable which currently always contains the
|
|
||||||
error code left by the last caller. This is also the case for the global <tt>h_errno</tt>
|
|
||||||
variable, which the socket I/O name resolution functions may change.</p>
|
|
||||||
|
|
||||||
<p>A much more serious problem resides with the <tt>exit()</tt>, <tt>abort()</tt>,
|
|
||||||
<tt>assert()</tt> and <tt>raise()</tt> functions, and the how <tt>SIGINT</tt> signal is
|
|
||||||
processed. In the thread-safe library only the <tt>main()</tt> function may directly
|
|
||||||
or indirectly call the <tt>exit()</tt> function. No child process may do so, since this
|
|
||||||
would wreck its stack context, crashing it instantly; the main program would be very
|
|
||||||
likely to crash, too, because <tt>exit()</tt> will clean up after all memory allocations
|
|
||||||
and files currently in use. Functions such as <tt>abort()</tt> and <tt>raise()</tt> may
|
|
||||||
call the <tt>exit()</tt> function indirectly. And the <tt>raise()</tt> function may
|
|
||||||
be invoked as part of the <tt>Control+C</tt> checking. You should make sure that the
|
|
||||||
signal handling does not affect any child processes. This can be done by replacing the
|
|
||||||
<tt>__check_abort()</tt> function or by disabling <tt>SIGINT</tt> processing altogether,
|
|
||||||
such as through a <tt>signal(SIGINT,SIG_IGN)</tt> call.</p>
|
|
||||||
|
|
||||||
<h2>3. What does it not do?</h2>
|
|
||||||
|
|
||||||
<p>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.</p>
|
|
||||||
|
|
||||||
<p>There is very little support for <tt>amiga.lib</tt> functionality. There is <tt>NewList()</tt>,
|
|
||||||
<tt>HookEntry()</tt>, <tt>CallHook()</tt>, <tt>CallHookA()</tt>, the <tt>DoMethod()</tt> 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 <tt>amiga.lib</tt>, you really shouldn't need in in the first place.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>4. Where does the source code come from?</h2>
|
|
||||||
|
|
||||||
<p>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 <tt>bcopy()</tt> as an alias for <tt>memcpy()</tt>, and
|
|
||||||
unlike <tt>memcpy()</tt> is documented to, <tt>bcopy()</tt> supports overlapping copies.</p>
|
|
||||||
|
|
||||||
<p>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 <tt>setjmp</tt>/<tt>longjmp</tt>
|
|
||||||
routines and the startup code. The M68881 inline math code comes from the
|
|
||||||
<tt><math-68881.h></tt> file written by Matthew Self <tt>(self@bayes.arc.nasa.gov)</tt>.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>5. Limitations and caveats</h2>
|
|
||||||
|
|
||||||
<p>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.</p>
|
|
||||||
|
|
||||||
<p>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 <tt>malloc()</tt> 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 <tt>free()</tt> 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 <tt>NDEBUG</tt> preprocessor symbol at compile time (see <tt><assert.h></tt>).</p>
|
|
||||||
|
|
||||||
<p>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.</p>
|
|
||||||
|
|
||||||
<p>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 <tt>data=faronly</tt> option to compile the
|
|
||||||
library and the programs.</p>
|
|
||||||
|
|
||||||
<p>Different build makefiles are supplied for use with GCC. There is
|
|
||||||
<tt>GNUmakefile.68k</tt> for the 68k platform and <tt>GNUmakefile.os4</tt> for the AmigaOS4
|
|
||||||
PowerPC version.</p>
|
|
||||||
|
|
||||||
<h3>5.1 Floating point math and functions (<tt>scanf()</tt>, <tt>printf()</tt>, etc.) </h3>
|
|
||||||
|
|
||||||
<p>The plain <tt>libc.a</tt>, which your software would be linked against by default, does not contain
|
|
||||||
any floating point support code. This means, for example, that <tt>printf("%f",...)</tt> will not produce
|
|
||||||
the desired output and that <tt>scanf("%f",...)</tt> may not read any data at all. If your
|
|
||||||
program needs functions such as these or <tt>atod()</tt> then you must link against <tt>libm.a</tt> or
|
|
||||||
the equivalent.</p>
|
|
||||||
|
|
||||||
<p>To link the floating point support code with your software, use the <tt>-lm</tt> compiler option. Careful!
|
|
||||||
The order in which you specify the libraries to link against is important here. Thus, <tt>gcc -o test test.c -lm -lc</tt>
|
|
||||||
would correctly link the program <tt>test</tt> against the proper floating point math library, but
|
|
||||||
<tt>gcc -o test test.c -lc -lm</tt> would not.</p>
|
|
||||||
|
|
||||||
<h3>5.2 The thread-safe library</h3>
|
|
||||||
|
|
||||||
<p>Thread-safety does not imply that you can have multiple callers
|
|
||||||
access and close the same file. There is no resource tracking to that degree
|
|
||||||
yet. All that the thread-safety tries to afford you is not to get into big trouble
|
|
||||||
if simultaneous and overlapping accesses to files, memory allocation and other
|
|
||||||
resources are taking place.</p>
|
|
||||||
|
|
||||||
<p> Also take care with file I/O involving the <tt>stdin</tt>/<tt>stdout</tt>/<tt>stderr</tt>
|
|
||||||
streams; read/write operations on these streams will be mapped to the <tt>Input()</tt>/</tt>Output()</tt>/<tt>ErrorOutput()</tt>
|
|
||||||
file handles of the process performing these operations. Since only this small set of
|
|
||||||
operations is mapped, functions such as <tt>fcntl()</tt> or <tt>select()</tt> will not
|
|
||||||
work on the <tt>stdin</tt>/<tt>stdout</tt>/<tt>stderr</tt> streams and the corresponding
|
|
||||||
file descriptors <tt>STDIN_FILENO</tt>/<tt>STDOUT_FILENO</tt>/<tt>STDERR_FILENO</tt>.
|
|
||||||
It is therefore strongly recommended to use the thread-safe library only for applications
|
|
||||||
which can cope with the limitations described above.</p>
|
|
||||||
|
|
||||||
<h3>5.3 Using gmon (PowerPC only)</h3>
|
|
||||||
|
|
||||||
<p>To use profiling, two steps are required. First of all, your program must be compiled with
|
|
||||||
the gcc command line option <tt>-pg</tt>. This instructs the compiler to generate special
|
|
||||||
profiling code in the prologue and epilogue of each function. Additionally, the program
|
|
||||||
must be linked with <tt>libprofile.a</tt>. To do this, either manually add
|
|
||||||
<tt>-lprofile</tt> to the linker command line, or modify the specs file as follows.
|
|
||||||
Find the lines that look like this (it may actually differ silghtily from your specs file,
|
|
||||||
but the important thing is that the line before the line to be modified reads <tt>lib:</tt>):
|
|
||||||
<pre>
|
|
||||||
lib:
|
|
||||||
--start-group -lc --end-group
|
|
||||||
</pre>
|
|
||||||
You will have to modify this to look like this:
|
|
||||||
<pre>
|
|
||||||
lib:
|
|
||||||
%{pg: -lprofile} --start-group -lc --end-group
|
|
||||||
</pre>
|
|
||||||
Normally, the specs file is located at the compilers installation directory. For cross-compilers,
|
|
||||||
this is <tt>/usr/local/amiga/lib/gcc/ppc-amigaos/<i>compiler-version</i>/specs</tt>. For a native compiler,
|
|
||||||
it's in <tt>gcc:lib/gcc/ppc-amigaos/<i>compiler-version</i>/specs</tt>. Most likely, your compiler will already have this added to it's specs file.</p>
|
|
||||||
|
|
||||||
<p>Profiling makes use of a special PowerPC facility called the Performance Monitor. It
|
|
||||||
allows to "mark" tasks and count only during while a marked task is running. This allows
|
|
||||||
performance analysis to be made independant of the actual system load. The Performace Monitor
|
|
||||||
is available on all PowerPC models supported by AmigaOS 4 except for the <tt>603e</tt>, and
|
|
||||||
embedded versions of the PowerPC like the <tt>405</tt> and <tt>440</tt> series. Consult the manual
|
|
||||||
of the appropriate chip for more information.</p>
|
|
||||||
|
|
||||||
<h2>6. Conventions and design issues</h2>
|
|
||||||
|
|
||||||
<p>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 <tt>unistd_lchown.c</tt> contains the definition of
|
|
||||||
the <tt>lchown()</tt> routine, which has its prototype defined in the <tt><unistd.h></tt> header
|
|
||||||
file.</p>
|
|
||||||
|
|
||||||
<p>Internal function and variables which need to be visible across several
|
|
||||||
modules have names prefixed with two underscores, as in <tt>__stdio_init()</tt>.</p>
|
|
||||||
|
|
||||||
<p>All routines attempt to do error checking on their parameters. They will
|
|
||||||
either drop into an <tt>assert()</tt> or set an errno value and refuse to go any
|
|
||||||
further. This cuts performance but should help to catch the simple bugs quite
|
|
||||||
easily (<tt>NULL</tt> pointers).</p>
|
|
||||||
|
|
||||||
<p>Just like any halfway sane Amiga 'C' runtime library, this one performs its <tt>^C</tt>
|
|
||||||
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 <tt>^C</tt> signal and drop into
|
|
||||||
<tt>raise(SIGINT)</tt> 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.</p>
|
|
||||||
|
|
||||||
<p>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, <tt>unlink()</tt> will by default operate like <tt>DeleteFile()</tt> and <tt>rename()</tt>
|
|
||||||
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 <tt>__unix_semantics</tt> 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.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>7. The startup code</h2>
|
|
||||||
|
|
||||||
<p>There are three program startup files provided. The most simplistic is in
|
|
||||||
<tt>startup.c</tt> which I use for SAS/C. It just invokes the setup routine which
|
|
||||||
eventually calls <tt>main()</tt> and drops straight into <tt>exit()</tt>.</p>
|
|
||||||
|
|
||||||
<p>The <tt>ncrt0.S</tt> file was adapted from the libnix startup code which sets up the
|
|
||||||
base relative data area, if necessary (the <tt>SMALL_DATA</tt> preprocessor symbol must
|
|
||||||
be defined).</p>
|
|
||||||
|
|
||||||
<p>The <tt>nrcrt0.S</tt> 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
|
|
||||||
<tt>geta4()</tt> stub is missing here; it wouldn't work in a resident program anyway.</p>
|
|
||||||
|
|
||||||
<p>The <tt>ncrt0.S</tt> and <tt>nrcrt0.S</tt> 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 <tt>stdlib_main.c</tt> file rather than in
|
|
||||||
assembly language.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>8. Documentation</h2>
|
|
||||||
|
|
||||||
<p>Well, you're reading it. There isn't anything much yet. You can consult the book
|
|
||||||
<i>'C' - A reference manual</i> and you could look at the
|
|
||||||
<a href="http://www.opengroup.org/onlinepubs/007904975">Open Group's Single Unix
|
|
||||||
Specification</a>.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>9. Legal status</h2>
|
|
||||||
|
|
||||||
<p>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.</p>
|
|
||||||
|
|
||||||
<p>The PowerPC math library is based in part on work by Sun Microsystems:</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
====================================================
|
|
||||||
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.
|
|
||||||
====================================================
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<h2>10. Contacting the author</h2>
|
|
||||||
|
|
||||||
<p>The basic work was done by Olaf Barthel during two weeks in July 2002. You
|
|
||||||
can reach me at:</p>
|
|
||||||
|
|
||||||
<p>Olaf Barthel<br>
|
|
||||||
Gneisenaustr. 43<br>
|
|
||||||
D-31275 Lehrte<br></p>
|
|
||||||
|
|
||||||
<p>Or via e-mail:</p>
|
|
||||||
|
|
||||||
<p>olsen@sourcery.han.de</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,64 +0,0 @@
|
|||||||
*asm:
|
|
||||||
%{m68000:-mc68010} %{mc68000:-mc68010} %{m68020:-mc68020} %{mc68020:-mc68020} %{m68030:-mc68030} %{m68040:-mc68040} %{m68060:-mc68060} %{m68020-40:-mc68020} %{m68020-60:-mc68020} %{!mc68000:%{!m68000:%{!mc68020:%{!m68020:%{!m68030:%{!m68040:%{!m68060:%{!m68020-40:%{!m68020-60:-mc68010}}}}}}}}} %{msmall-code:-sc}
|
|
||||||
|
|
||||||
*asm_final:
|
|
||||||
|
|
||||||
|
|
||||||
*cpp:
|
|
||||||
%{m68881:-D__HAVE_68881__} %{!ansi:%{m68020:-Dmc68020} %{mc68020:-Dmc68020} %{m68020-40:-Dmc68020} %{m68020-60:-Dmc68020} %{m68030:-Dmc68030} %{m68040:-Dmc68040} %{m68060:-Dmc68060}} %{m68020:-D__mc68020__ -D__mc68020} %{mc68020:-D__mc68020__ -D__mc68020} %{m68020-40:-D__mc68020__ -D__mc68020} %{m68020-60:-D__mc68020__ -D__mc68020} %{m68030:-D__mc68030__ -D__mc68030} %{m68040:-D__mc68040__ -D__mc68040} %{m68060:-D__mc68060__ -D__mc68060}
|
|
||||||
|
|
||||||
*cc1:
|
|
||||||
%{resident:-fbaserel} %{resident32:-fbaserel32} %{msmall-code:-fno-function-cse}
|
|
||||||
|
|
||||||
*cc1plus:
|
|
||||||
|
|
||||||
|
|
||||||
*endfile:
|
|
||||||
|
|
||||||
|
|
||||||
*link:
|
|
||||||
%{fbaserel:%{!resident:-m amiga_bss -fl libb}} %{resident:-m amiga_bss -amiga-datadata-reloc -fl libb} %{fbaserel32:%{!resident32:-m amiga_bss -fl libb32}} %{resident32:-m amiga_bss -amiga-datadata-reloc -fl libb32} %{g:-amiga-debug-hunk} %{m68020:-fl libm020} %{mc68020:-fl libm020} %{m68030:-fl libm020} %{m68040:-fl libm020} %{m68060:-fl libm020} %{m68020-40:-fl libm020} %{m68020-60:-fl libm020}
|
|
||||||
|
|
||||||
*lib:
|
|
||||||
%{mstackextend:-lstack} -lc -lamiga -ldebug -lgcc -lc
|
|
||||||
|
|
||||||
*libgcc:
|
|
||||||
|
|
||||||
|
|
||||||
*startfile:
|
|
||||||
%{resident32:nr32crt0.o%s}%{!resident32:%{fbaserel32:nb32crt0.o%s}%{!fbaserel32:%{resident:nrcrt0.o%s}%{!resident:%{fbaserel:nbcrt0.o%s}%{!fbaserel:ncrt0.o%s}}}}
|
|
||||||
|
|
||||||
*switches_need_spaces:
|
|
||||||
|
|
||||||
|
|
||||||
*signed_char:
|
|
||||||
%{funsigned-char:-D__CHAR_UNSIGNED__}
|
|
||||||
|
|
||||||
*predefines:
|
|
||||||
-Dmc68000 -Damiga -Damigaos -DMCH_AMIGA -DAMIGA -D__chip=__attribute__((__chip__)) -D__saveds=__attribute__((__saveds__)) -D__interrupt=__attribute__((__interrupt__)) -D__stackext=__attribute__((__stackext__)) -D__regargs=__attribute__((__regparm__)) -D__stdargs=__attribute__((__stkparm__)) -D__aligned=__attribute__((__aligned__(4))) -Asystem(amigaos) -Acpu(m68k) -Amachine(m68k)
|
|
||||||
|
|
||||||
*cross_compile:
|
|
||||||
0
|
|
||||||
|
|
||||||
*version:
|
|
||||||
2.95.3
|
|
||||||
|
|
||||||
*multilib:
|
|
||||||
. ;
|
|
||||||
|
|
||||||
*multilib_defaults:
|
|
||||||
|
|
||||||
|
|
||||||
*multilib_extra:
|
|
||||||
|
|
||||||
|
|
||||||
*multilib_matches:
|
|
||||||
|
|
||||||
|
|
||||||
*linker:
|
|
||||||
collect2
|
|
||||||
|
|
||||||
*link_command:
|
|
||||||
%{!fsyntax-only: %{!c:%{!M:%{!MM:%{!E:%{!S:%(linker) %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r} %{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}} %{static:} %{L*} %D %o %{!nostdlib:%{!nodefaultlibs:%G %L %G}} %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*}
|
|
||||||
}}}}}}
|
|
||||||
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# $Id: GNUmakefile.68k,v 1.73 2005-10-20 07:19:15 obarthel Exp $
|
# $Id: GNUmakefile.68k,v 1.101 2007-01-06 10:09:48 obarthel Exp $
|
||||||
#
|
#
|
||||||
# :ts=8
|
# :ts=8
|
||||||
#
|
#
|
||||||
@ -21,7 +21,6 @@ LIBC_OBJS = libc_objs
|
|||||||
LIBUNIX_OBJS = libunix_objs
|
LIBUNIX_OBJS = libunix_objs
|
||||||
LIBM_OBJS = libm_objs
|
LIBM_OBJS = libm_objs
|
||||||
LIBM881_OBJS = libm881_objs
|
LIBM881_OBJS = libm881_objs
|
||||||
LIBSTACK_OBJS = libstack_objs
|
|
||||||
LIBNET_OBJS = libnet_objs
|
LIBNET_OBJS = libnet_objs
|
||||||
LIBDEBUG_OBJS = libdebug_objs
|
LIBDEBUG_OBJS = libdebug_objs
|
||||||
LIBAMIGA_OBJS = libamiga_objs
|
LIBAMIGA_OBJS = libamiga_objs
|
||||||
@ -30,7 +29,6 @@ LIBC_OBJS = $(TYPE)/libc_objs
|
|||||||
LIBUNIX_OBJS = $(TYPE)/libunix_objs
|
LIBUNIX_OBJS = $(TYPE)/libunix_objs
|
||||||
LIBM_OBJS = $(TYPE)/libm_objs
|
LIBM_OBJS = $(TYPE)/libm_objs
|
||||||
LIBM881_OBJS = $(TYPE)/libm881_objs
|
LIBM881_OBJS = $(TYPE)/libm881_objs
|
||||||
LIBSTACK_OBJS = $(TYPE)/libstack_objs
|
|
||||||
LIBNET_OBJS = $(TYPE)/libnet_objs
|
LIBNET_OBJS = $(TYPE)/libnet_objs
|
||||||
LIBDEBUG_OBJS = $(TYPE)/libdebug_objs
|
LIBDEBUG_OBJS = $(TYPE)/libdebug_objs
|
||||||
LIBAMIGA_OBJS = $(TYPE)/libamiga_objs
|
LIBAMIGA_OBJS = $(TYPE)/libamiga_objs
|
||||||
@ -58,10 +56,6 @@ $(LIBM881_OBJS)/%.o : %.c
|
|||||||
@echo "Compiling $< [$(TYPE):m881]"
|
@echo "Compiling $< [$(TYPE):m881]"
|
||||||
@$(CC) -o $(LIBM881_OBJS)/$*.o -c $(CFLAGS) -DM68881_FLOATING_POINT_SUPPORT -m68881 $<
|
@$(CC) -o $(LIBM881_OBJS)/$*.o -c $(CFLAGS) -DM68881_FLOATING_POINT_SUPPORT -m68881 $<
|
||||||
|
|
||||||
$(LIBSTACK_OBJS)/%.o : %.c
|
|
||||||
@echo "Compiling $< [$(TYPE):stack]"
|
|
||||||
@$(CC) -o $(LIBSTACK_OBJS)/$*.o -c $(CFLAGS) -DSTACK_EXTENSION $<
|
|
||||||
|
|
||||||
$(LIBNET_OBJS)/%.o : %.c
|
$(LIBNET_OBJS)/%.o : %.c
|
||||||
@echo "Compiling $< [$(TYPE):net]"
|
@echo "Compiling $< [$(TYPE):net]"
|
||||||
@$(CC) -o $(LIBNET_OBJS)/$*.o -c $(CFLAGS) -DSOCKET_SUPPORT -DUSERGROUP_SUPPORT $<
|
@$(CC) -o $(LIBNET_OBJS)/$*.o -c $(CFLAGS) -DSOCKET_SUPPORT -DUSERGROUP_SUPPORT $<
|
||||||
@ -112,6 +106,7 @@ WARNINGS = \
|
|||||||
INCLUDES = -Iinclude -I. -Inetinclude
|
INCLUDES = -Iinclude -I. -Inetinclude
|
||||||
#OPTIONS = -fno-builtin -fno-common -DDEBUG
|
#OPTIONS = -fno-builtin -fno-common -DDEBUG
|
||||||
OPTIONS = -fno-builtin -fno-common -DNDEBUG
|
OPTIONS = -fno-builtin -fno-common -DNDEBUG
|
||||||
|
#OPTIONS = -fno-builtin -fno-common -DNDEBUG -D__THREAD_SAFE
|
||||||
#OPTIONS = -fno-builtin -fno-common -D__MEM_DEBUG
|
#OPTIONS = -fno-builtin -fno-common -D__MEM_DEBUG
|
||||||
#OPTIONS = -fno-builtin -fno-common -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG
|
#OPTIONS = -fno-builtin -fno-common -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG
|
||||||
OPTIMIZE = -O -fomit-frame-pointer -fstrength-reduce -finline-functions
|
OPTIMIZE = -O -fomit-frame-pointer -fstrength-reduce -finline-functions
|
||||||
@ -174,6 +169,7 @@ C_LIB = \
|
|||||||
signal_checkabort.o \
|
signal_checkabort.o \
|
||||||
signal_data.o \
|
signal_data.o \
|
||||||
signal_kill.o \
|
signal_kill.o \
|
||||||
|
signal_mask.o \
|
||||||
signal_raise.o \
|
signal_raise.o \
|
||||||
signal_sigaddset.o \
|
signal_sigaddset.o \
|
||||||
signal_sigblock.o \
|
signal_sigblock.o \
|
||||||
@ -187,11 +183,14 @@ C_LIB = \
|
|||||||
stat_fchmod.o \
|
stat_fchmod.o \
|
||||||
stat_fstat.o \
|
stat_fstat.o \
|
||||||
stat_lstat.o \
|
stat_lstat.o \
|
||||||
|
stat_lock.o \
|
||||||
stat_mkdir.o \
|
stat_mkdir.o \
|
||||||
stat_rmdir.o \
|
stat_rmdir.o \
|
||||||
stat_stat.o \
|
stat_stat.o \
|
||||||
stat_umask.o \
|
stat_umask.o \
|
||||||
stdio_asprintf.o \
|
stdio_asprintf.o \
|
||||||
|
stdio_change_fd_action.o \
|
||||||
|
stdio_change_fd_user_data.o \
|
||||||
stdio_clearerr.o \
|
stdio_clearerr.o \
|
||||||
stdio_dropiobreadbuffer.o \
|
stdio_dropiobreadbuffer.o \
|
||||||
stdio_duplicate_fd.o \
|
stdio_duplicate_fd.o \
|
||||||
@ -231,6 +230,7 @@ C_LIB = \
|
|||||||
stdio_getchar.o \
|
stdio_getchar.o \
|
||||||
stdio_getchar_unlocked.o \
|
stdio_getchar_unlocked.o \
|
||||||
stdio_gets.o \
|
stdio_gets.o \
|
||||||
|
stdio_get_fd.o \
|
||||||
stdio_get_file_descriptor.o \
|
stdio_get_file_descriptor.o \
|
||||||
stdio_growfdtable.o \
|
stdio_growfdtable.o \
|
||||||
stdio_growiobtable.o \
|
stdio_growiobtable.o \
|
||||||
@ -256,6 +256,7 @@ C_LIB = \
|
|||||||
stdio_remove.o \
|
stdio_remove.o \
|
||||||
stdio_remove_fd_alias.o \
|
stdio_remove_fd_alias.o \
|
||||||
stdio_rename.o \
|
stdio_rename.o \
|
||||||
|
stdio_resolve_fd_file.o \
|
||||||
stdio_rewind.o \
|
stdio_rewind.o \
|
||||||
stdio_scanf.o \
|
stdio_scanf.o \
|
||||||
stdio_setbuf.o \
|
stdio_setbuf.o \
|
||||||
@ -283,6 +284,8 @@ C_LIB = \
|
|||||||
stdlib_abort.o \
|
stdlib_abort.o \
|
||||||
stdlib_abs.o \
|
stdlib_abs.o \
|
||||||
stdlib_alloca.o \
|
stdlib_alloca.o \
|
||||||
|
stdlib_alloca_cleanup.o \
|
||||||
|
stdlib_alloca_trap.o \
|
||||||
stdlib_assertion_failure.o \
|
stdlib_assertion_failure.o \
|
||||||
stdlib_atexit.o \
|
stdlib_atexit.o \
|
||||||
stdlib_atoi.o \
|
stdlib_atoi.o \
|
||||||
@ -306,6 +309,7 @@ C_LIB = \
|
|||||||
stdlib_free.o \
|
stdlib_free.o \
|
||||||
stdlib_getdefstacksize.o \
|
stdlib_getdefstacksize.o \
|
||||||
stdlib_getenv.o \
|
stdlib_getenv.o \
|
||||||
|
stdlib_getmemstats.o \
|
||||||
stdlib_getsp.o \
|
stdlib_getsp.o \
|
||||||
stdlib_get_errno.o \
|
stdlib_get_errno.o \
|
||||||
stdlib_isresident.o \
|
stdlib_isresident.o \
|
||||||
@ -317,6 +321,7 @@ C_LIB = \
|
|||||||
stdlib_lib_startup.o \
|
stdlib_lib_startup.o \
|
||||||
stdlib_machine_test.o \
|
stdlib_machine_test.o \
|
||||||
stdlib_main.o \
|
stdlib_main.o \
|
||||||
|
stdlib_main_stub.o \
|
||||||
stdlib_malloc.o \
|
stdlib_malloc.o \
|
||||||
stdlib_math.o \
|
stdlib_math.o \
|
||||||
stdlib_mkdtemp.o \
|
stdlib_mkdtemp.o \
|
||||||
@ -336,6 +341,7 @@ C_LIB = \
|
|||||||
stdlib_rand_r.o \
|
stdlib_rand_r.o \
|
||||||
stdlib_realloc.o \
|
stdlib_realloc.o \
|
||||||
stdlib_red_black.o \
|
stdlib_red_black.o \
|
||||||
|
stdlib_resetmemstats.o \
|
||||||
stdlib_semaphore.o \
|
stdlib_semaphore.o \
|
||||||
stdlib_setenv.o \
|
stdlib_setenv.o \
|
||||||
stdlib_setjmp.o \
|
stdlib_setjmp.o \
|
||||||
@ -387,6 +393,7 @@ C_LIB = \
|
|||||||
string_strcspn.o \
|
string_strcspn.o \
|
||||||
string_strdup.o \
|
string_strdup.o \
|
||||||
string_strerror.o \
|
string_strerror.o \
|
||||||
|
string_strerror_r.o \
|
||||||
string_strlcat.o \
|
string_strlcat.o \
|
||||||
string_strlcpy.o \
|
string_strlcpy.o \
|
||||||
string_strlen.o \
|
string_strlen.o \
|
||||||
@ -422,6 +429,7 @@ C_LIB = \
|
|||||||
time_weekday.o \
|
time_weekday.o \
|
||||||
uio_readv.o \
|
uio_readv.o \
|
||||||
uio_writev.o \
|
uio_writev.o \
|
||||||
|
ulimit_ulimit.o \
|
||||||
unistd_access.o \
|
unistd_access.o \
|
||||||
unistd_chdir.o \
|
unistd_chdir.o \
|
||||||
unistd_chdir_exit.o \
|
unistd_chdir_exit.o \
|
||||||
@ -442,6 +450,7 @@ C_LIB = \
|
|||||||
unistd_isatty.o \
|
unistd_isatty.o \
|
||||||
unistd_lchown.o \
|
unistd_lchown.o \
|
||||||
unistd_link.o \
|
unistd_link.o \
|
||||||
|
unistd_lockf.o \
|
||||||
unistd_readlink.o \
|
unistd_readlink.o \
|
||||||
unistd_realpath.o \
|
unistd_realpath.o \
|
||||||
unistd_sleep.o \
|
unistd_sleep.o \
|
||||||
@ -451,6 +460,7 @@ C_LIB = \
|
|||||||
unistd_time_delay.o \
|
unistd_time_delay.o \
|
||||||
unistd_truncate.o \
|
unistd_truncate.o \
|
||||||
unistd_unlink.o \
|
unistd_unlink.o \
|
||||||
|
unistd_unlink_retries.o \
|
||||||
unistd_usleep.o \
|
unistd_usleep.o \
|
||||||
utime_utime.o \
|
utime_utime.o \
|
||||||
utsname_uname.o
|
utsname_uname.o
|
||||||
@ -468,9 +478,12 @@ UNIX_LIB = \
|
|||||||
getopt_getopt_long.o \
|
getopt_getopt_long.o \
|
||||||
mount_convertinfo.o \
|
mount_convertinfo.o \
|
||||||
mount_statfs.o \
|
mount_statfs.o \
|
||||||
|
resource_getrlimit.o \
|
||||||
|
resource_setrlimit.o \
|
||||||
stat_chmod.o \
|
stat_chmod.o \
|
||||||
stat_fstat.o \
|
stat_fstat.o \
|
||||||
stat_lstat.o \
|
stat_lstat.o \
|
||||||
|
stat_lock.o \
|
||||||
stat_mkdir.o \
|
stat_mkdir.o \
|
||||||
stat_rmdir.o \
|
stat_rmdir.o \
|
||||||
stat_stat.o \
|
stat_stat.o \
|
||||||
@ -486,12 +499,23 @@ UNIX_LIB = \
|
|||||||
stdio_record_locking.o \
|
stdio_record_locking.o \
|
||||||
stdio_remove.o \
|
stdio_remove.o \
|
||||||
stdio_rename.o \
|
stdio_rename.o \
|
||||||
|
stdlib_alloca.o \
|
||||||
|
stdlib_alloca_cleanup.o \
|
||||||
|
stdlib_alloca_trap.o \
|
||||||
stdlib_arg.o \
|
stdlib_arg.o \
|
||||||
|
stdlib_expand_wildcard.o \
|
||||||
|
stdlib_expand_wildcard_check.o \
|
||||||
|
stdlib_getmemstats.o \
|
||||||
stdlib_main.o \
|
stdlib_main.o \
|
||||||
|
stdlib_main_stub.o \
|
||||||
stdlib_mkdtemp.o \
|
stdlib_mkdtemp.o \
|
||||||
stdlib_mkstemp.o \
|
stdlib_mkstemp.o \
|
||||||
stdlib_mktemp.o \
|
stdlib_mktemp.o \
|
||||||
|
stdlib_malloc.o \
|
||||||
|
stdlib_realloc.o \
|
||||||
|
stdlib_resetmemstats.o \
|
||||||
stdlib_system.o \
|
stdlib_system.o \
|
||||||
|
systeminfo_sysinfo.o \
|
||||||
termios_cfgetispeed.o \
|
termios_cfgetispeed.o \
|
||||||
termios_cfgetospeed.o \
|
termios_cfgetospeed.o \
|
||||||
termios_cfmakeraw.o \
|
termios_cfmakeraw.o \
|
||||||
@ -504,20 +528,38 @@ UNIX_LIB = \
|
|||||||
termios_tcgetattr.o \
|
termios_tcgetattr.o \
|
||||||
termios_tcsendbreak.o \
|
termios_tcsendbreak.o \
|
||||||
termios_tcsetattr.o \
|
termios_tcsetattr.o \
|
||||||
|
timeb_ftime.o \
|
||||||
uio_readv.o \
|
uio_readv.o \
|
||||||
uio_writev.o \
|
uio_writev.o \
|
||||||
unistd_access.o \
|
unistd_access.o \
|
||||||
unistd_chdir.o \
|
unistd_chdir.o \
|
||||||
unistd_chdir_exit.o \
|
unistd_chdir_exit.o \
|
||||||
unistd_chown.o \
|
unistd_chown.o \
|
||||||
|
unistd_common_pathconf.o \
|
||||||
|
unistd_def_path.o \
|
||||||
|
unistd_def_path_delimiter.o \
|
||||||
|
unistd_environ.o \
|
||||||
|
unistd_execl.o \
|
||||||
|
unistd_execle.o \
|
||||||
|
unistd_execlp.o \
|
||||||
|
unistd_execv.o \
|
||||||
|
unistd_execve.o \
|
||||||
|
unistd_execve_env_exit.o \
|
||||||
|
unistd_execve_env_init.o \
|
||||||
|
unistd_execve_exit.o \
|
||||||
|
unistd_execvp.o \
|
||||||
|
unistd_fpathconf.o \
|
||||||
unistd_getcwd.o \
|
unistd_getcwd.o \
|
||||||
unistd_lchown.o \
|
unistd_lchown.o \
|
||||||
unistd_link.o \
|
unistd_link.o \
|
||||||
|
unistd_lockf.o \
|
||||||
|
unistd_pathconf.o \
|
||||||
unistd_readlink.o \
|
unistd_readlink.o \
|
||||||
unistd_realpath.o \
|
unistd_realpath.o \
|
||||||
unistd_restorepathname.o \
|
unistd_restorepathname.o \
|
||||||
unistd_setcurrentpath.o \
|
unistd_setcurrentpath.o \
|
||||||
unistd_strip_double_slash.o \
|
unistd_strip_double_slash.o \
|
||||||
|
unistd_symlink.o \
|
||||||
unistd_translatea2u.o \
|
unistd_translatea2u.o \
|
||||||
unistd_translaterel.o \
|
unistd_translaterel.o \
|
||||||
unistd_translateu2a.o \
|
unistd_translateu2a.o \
|
||||||
@ -542,6 +584,17 @@ MATH_LIB = \
|
|||||||
complex_creal.o \
|
complex_creal.o \
|
||||||
complex_crealf.o \
|
complex_crealf.o \
|
||||||
complex_creall.o \
|
complex_creall.o \
|
||||||
|
fenv_feclearexcept.o \
|
||||||
|
fenv_fegetenv.o \
|
||||||
|
fenv_fegetexceptflag.o \
|
||||||
|
fenv_fegetround.o \
|
||||||
|
fenv_feholdexcept.o \
|
||||||
|
fenv_feraiseexcept.o \
|
||||||
|
fenv_fesetenv.o \
|
||||||
|
fenv_fesetexceptflag.o \
|
||||||
|
fenv_fetestexcept.o \
|
||||||
|
fenv_fetestround.o \
|
||||||
|
fenv_feupdateenv.o \
|
||||||
math_acos.o \
|
math_acos.o \
|
||||||
math_acosf.o \
|
math_acosf.o \
|
||||||
math_acosh.o \
|
math_acosh.o \
|
||||||
@ -578,10 +631,16 @@ MATH_LIB = \
|
|||||||
math_expm1f.o \
|
math_expm1f.o \
|
||||||
math_fabs.o \
|
math_fabs.o \
|
||||||
math_fabsf.o \
|
math_fabsf.o \
|
||||||
|
math_fdim.o \
|
||||||
|
math_fdimf.o \
|
||||||
math_floor.o \
|
math_floor.o \
|
||||||
math_floorf.o \
|
math_floorf.o \
|
||||||
math_fma.o \
|
math_fma.o \
|
||||||
math_fmaf.o \
|
math_fmaf.o \
|
||||||
|
math_fmax.o \
|
||||||
|
math_fmaxf.o \
|
||||||
|
math_fmin.o \
|
||||||
|
math_fminf.o \
|
||||||
math_fmod.o \
|
math_fmod.o \
|
||||||
math_fmodf.o \
|
math_fmodf.o \
|
||||||
math_fpclassify.o \
|
math_fpclassify.o \
|
||||||
@ -605,6 +664,7 @@ MATH_LIB = \
|
|||||||
math_ldexpf.o \
|
math_ldexpf.o \
|
||||||
math_lgamma.o \
|
math_lgamma.o \
|
||||||
math_lgammaf.o \
|
math_lgammaf.o \
|
||||||
|
math_llrint.o \
|
||||||
math_log.o \
|
math_log.o \
|
||||||
math_log10.o \
|
math_log10.o \
|
||||||
math_log10f.o \
|
math_log10f.o \
|
||||||
@ -716,14 +776,6 @@ MATH_LIB_IEEE = \
|
|||||||
math_subsf3.o \
|
math_subsf3.o \
|
||||||
math_truncdfsf2.o
|
math_truncdfsf2.o
|
||||||
|
|
||||||
STACK_LIB = \
|
|
||||||
stack.lib_rev.o \
|
|
||||||
stdlib_setjmp.o \
|
|
||||||
stdlib_stackextension.o \
|
|
||||||
stdlib_stackminframe.o \
|
|
||||||
stdlib_stackoverflow.o \
|
|
||||||
stdlib_stacksafezone.o
|
|
||||||
|
|
||||||
NET_LIB = \
|
NET_LIB = \
|
||||||
net.lib_rev.o \
|
net.lib_rev.o \
|
||||||
socket_accept.o \
|
socket_accept.o \
|
||||||
@ -759,7 +811,9 @@ NET_LIB = \
|
|||||||
socket_recv.o \
|
socket_recv.o \
|
||||||
socket_recvfrom.o \
|
socket_recvfrom.o \
|
||||||
socket_recvmsg.o \
|
socket_recvmsg.o \
|
||||||
|
socket_select_signal.o \
|
||||||
socket_select.o \
|
socket_select.o \
|
||||||
|
socket_wait_select.o \
|
||||||
socket_send.o \
|
socket_send.o \
|
||||||
socket_sendmsg.o \
|
socket_sendmsg.o \
|
||||||
socket_sendto.o \
|
socket_sendto.o \
|
||||||
@ -771,6 +825,7 @@ NET_LIB = \
|
|||||||
socket_get_h_errno.o \
|
socket_get_h_errno.o \
|
||||||
socket_set_h_errno.o \
|
socket_set_h_errno.o \
|
||||||
stat_umask.o \
|
stat_umask.o \
|
||||||
|
systeminfo_sysinfo.o \
|
||||||
usergroup_crypt.o \
|
usergroup_crypt.o \
|
||||||
usergroup_data.o \
|
usergroup_data.o \
|
||||||
usergroup_endgrent.o \
|
usergroup_endgrent.o \
|
||||||
@ -882,7 +937,7 @@ MEMDEBUG_LIB = \
|
|||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
LIBS_68K := $(LIBC_OBJS)/libc.a $(LIBSTACK_OBJS)/libstack.a $(LIBUNIX_OBJS)/libunix.a \
|
LIBS_68K := $(LIBC_OBJS)/libc.a $(LIBUNIX_OBJS)/libunix.a \
|
||||||
$(LIBNET_OBJS)/libnet.a $(LIBDEBUG_OBJS)/libdebug.a $(LIBAMIGA_OBJS)/libamiga.a \
|
$(LIBNET_OBJS)/libnet.a $(LIBDEBUG_OBJS)/libdebug.a $(LIBAMIGA_OBJS)/libamiga.a \
|
||||||
$(LIBM_OBJS)/libm.a
|
$(LIBM_OBJS)/libm.a
|
||||||
LIBS_020 := $(LIBM881_OBJS)/libm881.a $(LIBS_68K)
|
LIBS_020 := $(LIBM881_OBJS)/libm881.a $(LIBS_68K)
|
||||||
@ -919,7 +974,7 @@ all: \
|
|||||||
clean:
|
clean:
|
||||||
-$(DELETE) $(TYPE) $(LIBS_020) $(STARTUPS) \
|
-$(DELETE) $(TYPE) $(LIBS_020) $(STARTUPS) \
|
||||||
$(LIBC_OBJS) $(LIBUNIX_OBJS) $(LIBM_OBJS) \
|
$(LIBC_OBJS) $(LIBUNIX_OBJS) $(LIBM_OBJS) \
|
||||||
$(LIBM881_OBJS) $(LIBSTACK_OBJS) $(LIBNET_OBJS) $(LIBDEBUG_OBJS) \
|
$(LIBM881_OBJS) $(LIBNET_OBJS) $(LIBDEBUG_OBJS) \
|
||||||
$(LIBAMIGA_OBJS)
|
$(LIBAMIGA_OBJS)
|
||||||
|
|
||||||
realclean:
|
realclean:
|
||||||
@ -935,7 +990,6 @@ version:
|
|||||||
copy clone c.lib_rev.rev m.lib_rev.rev
|
copy clone c.lib_rev.rev m.lib_rev.rev
|
||||||
copy clone c.lib_rev.rev m881.lib_rev.rev
|
copy clone c.lib_rev.rev m881.lib_rev.rev
|
||||||
copy clone c.lib_rev.rev net.lib_rev.rev
|
copy clone c.lib_rev.rev net.lib_rev.rev
|
||||||
copy clone c.lib_rev.rev stack.lib_rev.rev
|
|
||||||
copy clone c.lib_rev.rev unix.lib_rev.rev
|
copy clone c.lib_rev.rev unix.lib_rev.rev
|
||||||
bumprev 1 amiga.lib
|
bumprev 1 amiga.lib
|
||||||
bumprev 1 c.lib
|
bumprev 1 c.lib
|
||||||
@ -943,7 +997,6 @@ version:
|
|||||||
bumprev 1 m.lib
|
bumprev 1 m.lib
|
||||||
bumprev 1 m881.lib
|
bumprev 1 m881.lib
|
||||||
bumprev 1 net.lib
|
bumprev 1 net.lib
|
||||||
bumprev 1 stack.lib
|
|
||||||
bumprev 1 unix.lib
|
bumprev 1 unix.lib
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@ -1027,8 +1080,6 @@ $(LIBC_OBJS)/stdlib_swapstack.o : stdlib_swapstack.c
|
|||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_setjmp.o : stdlib_setjmp.c
|
$(LIBC_OBJS)/stdlib_setjmp.o : stdlib_setjmp.c
|
||||||
|
|
||||||
$(LIBSTACK_OBJS)/stdlib_setjmp.o : stdlib_setjmp.c
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
$(LIBC_OBJS)/c.lib_rev.o : c.lib_rev.c c.lib_rev.h
|
$(LIBC_OBJS)/c.lib_rev.o : c.lib_rev.c c.lib_rev.h
|
||||||
@ -1039,8 +1090,6 @@ $(LIBM_OBJS)/m.lib_rev.o : m.lib_rev.c m.lib_rev.h
|
|||||||
|
|
||||||
$(LIBM881_OBJS)/m881.lib_rev.o : m881.lib_rev.c m881.lib_rev.h
|
$(LIBM881_OBJS)/m881.lib_rev.o : m881.lib_rev.c m881.lib_rev.h
|
||||||
|
|
||||||
$(LIBSTACK_OBJS)/stack.lib_rev.o : stack.lib_rev.c stack.lib_rev.h
|
|
||||||
|
|
||||||
$(LIBNET_OBJS)/net.lib_rev.o : net.lib_rev.c net.lib_rev.h
|
$(LIBNET_OBJS)/net.lib_rev.o : net.lib_rev.c net.lib_rev.h
|
||||||
|
|
||||||
$(LIBDEBUG_OBJS)/debug.lib_rev.o : debug.lib_rev.c debug.lib_rev.h
|
$(LIBDEBUG_OBJS)/debug.lib_rev.o : debug.lib_rev.c debug.lib_rev.h
|
||||||
@ -1180,16 +1229,6 @@ $(LIBM881_OBJS)/libm881.a : $(LIBM881_OBJS) $(foreach file,$(MATH_LIB_881),$(LIB
|
|||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
$(LIBSTACK_OBJS) :
|
|
||||||
$(MAKEDIR) $@
|
|
||||||
|
|
||||||
$(LIBSTACK_OBJS)/libstack.a : $(LIBSTACK_OBJS) $(foreach file,$(STACK_LIB),$(LIBSTACK_OBJS)/$(file))
|
|
||||||
-$(DELETE) $@
|
|
||||||
@$(AR) $@ $(foreach file,$(STACK_LIB),$(LIBSTACK_OBJS)/$(file))
|
|
||||||
$(RANLIB) $@
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
$(LIBNET_OBJS) :
|
$(LIBNET_OBJS) :
|
||||||
$(MAKEDIR) $@
|
$(MAKEDIR) $@
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga.lib_rev.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
* $Id: amiga.lib_rev.c,v 1.3 2006-01-08 12:04:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#define VERSION 1
|
#define VERSION 1
|
||||||
#define REVISION 197
|
#define REVISION 202
|
||||||
#define DATE "4.11.2005"
|
#define DATE "16.1.2007"
|
||||||
#define VERS "amiga.lib 1.197"
|
#define VERS "amiga.lib 1.202"
|
||||||
#define VSTRING "amiga.lib 1.197 (4.11.2005)\r\n"
|
#define VSTRING "amiga.lib 1.202 (16.1.2007)\r\n"
|
||||||
#define VERSTAG "\0$VER: amiga.lib 1.197 (4.11.2005)"
|
#define VERSTAG "\0$VER: amiga.lib 1.202 (16.1.2007)"
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
197
|
202
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_acrypt.c,v 1.3 2005-05-30 14:01:20 obarthel Exp $
|
* $Id: amiga_acrypt.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -49,6 +49,10 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
UBYTE * ACrypt(UBYTE * buffer, const UBYTE * password, const UBYTE * user);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
UBYTE *
|
UBYTE *
|
||||||
ACrypt(UBYTE * buffer, const UBYTE * password, const UBYTE * user)
|
ACrypt(UBYTE * buffer, const UBYTE * password, const UBYTE * user)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_addtof.c,v 1.3 2005-02-25 10:14:20 obarthel Exp $
|
* $Id: amiga_addtof.c,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argarraydone.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
* $Id: amiga_argarraydone.c,v 1.4 2006-09-25 14:05:31 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
extern char **CXLIB_argarray;
|
extern const unsigned char **CXLIB_argarray;
|
||||||
|
|
||||||
extern struct DiskObject * CXLIB_disko;
|
extern struct DiskObject * CXLIB_disko;
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argarrayinit.c,v 1.3 2005-10-27 08:58:41 obarthel Exp $
|
* $Id: amiga_argarrayinit.c,v 1.6 2006-09-22 09:02:51 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -75,9 +75,9 @@ ArgArrayInit(LONG argc, CONST_STRPTR * argv)
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
for(i = 1 ; i < argc ; i++)
|
for(i = 1 ; i < argc ; i++)
|
||||||
CXLIB_argarray[i-1] = argv[i];
|
CXLIB_argarray[i-1] = (unsigned char *)argv[i];
|
||||||
|
|
||||||
result = (unsigned char **)CXLIB_argarray;
|
result = (STRPTR *)CXLIB_argarray;
|
||||||
}
|
}
|
||||||
else if (IconBase != NULL)
|
else if (IconBase != NULL)
|
||||||
{
|
{
|
||||||
@ -90,7 +90,7 @@ ArgArrayInit(LONG argc, CONST_STRPTR * argv)
|
|||||||
if(CXLIB_disko == NULL)
|
if(CXLIB_disko == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
result = (unsigned char **)CXLIB_disko->do_ToolTypes;
|
result = (STRPTR *)CXLIB_disko->do_ToolTypes;
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argint.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
* $Id: amiga_argint.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argstring.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
* $Id: amiga_argstring.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_beginio.c,v 1.3 2005-01-02 09:07:06 obarthel Exp $
|
* $Id: amiga_beginio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -103,6 +103,10 @@ BeginIO(struct IORequest *ior)
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
VOID BeginIO(struct IORequest *ior);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
BeginIO(struct IORequest *ior)
|
BeginIO(struct IORequest *ior)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_callhook.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
* $Id: amiga_callhook.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
*
|
*
|
||||||
* $Id: amiga_callhooka.asm,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
* $Id: amiga_callhooka.asm,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=8
|
* :ts=8
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_callhooka.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
* $Id: amiga_callhooka.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_coercemethod.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_coercemethod.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createextio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_createextio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -50,6 +50,10 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
struct IORequest * CreateExtIO(CONST struct MsgPort * port, LONG io_size);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
struct IORequest *
|
struct IORequest *
|
||||||
CreateExtIO(CONST struct MsgPort * port, LONG io_size)
|
CreateExtIO(CONST struct MsgPort * port, LONG io_size)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createport.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_createport.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -50,6 +50,10 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
struct MsgPort * CreatePort(CONST_STRPTR name, LONG pri);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
struct MsgPort *
|
struct MsgPort *
|
||||||
CreatePort(CONST_STRPTR name, LONG pri)
|
CreatePort(CONST_STRPTR name, LONG pri)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createstdio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_createstdio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -50,6 +50,10 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
struct IOStdReq * CreateStdIO(CONST struct MsgPort * port);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
struct IOStdReq *
|
struct IOStdReq *
|
||||||
CreateStdIO(CONST struct MsgPort * port)
|
CreateStdIO(CONST struct MsgPort * port)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createtask.c,v 1.4 2005-03-18 12:38:21 obarthel Exp $
|
* $Id: amiga_createtask.c,v 1.6 2006-09-25 15:12:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -209,6 +209,10 @@ CreateTask(CONST_STRPTR name,LONG pri,CONST APTR init_pc,ULONG stack_size)
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
struct Task * CreateTask(CONST_STRPTR name,LONG pri,CONST APTR init_pc,ULONG stack_size);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
struct Task *
|
struct Task *
|
||||||
CreateTask(CONST_STRPTR name,LONG pri,CONST APTR init_pc,ULONG stack_size)
|
CreateTask(CONST_STRPTR name,LONG pri,CONST APTR init_pc,ULONG stack_size)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deleteextio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_deleteextio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -50,6 +50,10 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
VOID DeleteExtIO(struct IORequest * io);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
DeleteExtIO(struct IORequest * io)
|
DeleteExtIO(struct IORequest * io)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deleteport.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_deleteport.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -50,6 +50,10 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
VOID DeletePort(struct MsgPort * port);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
DeletePort(struct MsgPort * port)
|
DeletePort(struct MsgPort * port)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deletestdio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_deletestdio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -50,6 +50,10 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
VOID DeleteStdIO(struct IOStdReq * io);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
DeleteStdIO(struct IOStdReq * io)
|
DeleteStdIO(struct IOStdReq * io)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deletetask.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_deletetask.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -63,6 +63,10 @@ DeleteTask(struct Task *tc)
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
VOID DeleteTask(struct Task *tc);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
DeleteTask(struct Task *tc)
|
DeleteTask(struct Task *tc)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_domethod.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_domethod.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_dosupermethod.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_dosupermethod.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_dotimer.c,v 1.6 2005-09-03 14:45:14 obarthel Exp $
|
* $Id: amiga_dotimer.c,v 1.8 2006-04-05 06:43:56 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -55,6 +55,23 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* A quick workaround for the timeval/timerequest->TimeVal/TimeRequest
|
||||||
|
change in the recent OS4 header files. */
|
||||||
|
|
||||||
|
#if defined(__NEW_TIMEVAL_DEFINITION_USED__)
|
||||||
|
|
||||||
|
#define timeval TimeVal
|
||||||
|
#define tv_secs Seconds
|
||||||
|
#define tv_micro Microseconds
|
||||||
|
|
||||||
|
#define timerequest TimeRequest
|
||||||
|
#define tr_node Request
|
||||||
|
#define tr_time Time
|
||||||
|
|
||||||
|
#endif /* __NEW_TIMEVAL_DEFINITION_USED__ */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
LONG
|
LONG
|
||||||
DoTimer(struct timeval *tv,LONG unit,LONG command)
|
DoTimer(struct timeval *tv,LONG unit,LONG command)
|
||||||
{
|
{
|
||||||
@ -67,10 +84,10 @@ DoTimer(struct timeval *tv,LONG unit,LONG command)
|
|||||||
#if defined(__amigaos4__)
|
#if defined(__amigaos4__)
|
||||||
{
|
{
|
||||||
mp = AllocSysObjectTags(ASOT_PORT,
|
mp = AllocSysObjectTags(ASOT_PORT,
|
||||||
ASOPORT_Action, PA_SIGNAL,
|
ASOPORT_Action, PA_SIGNAL,
|
||||||
ASOPORT_AllocSig, FALSE,
|
ASOPORT_AllocSig, FALSE,
|
||||||
ASOPORT_Signal, SIGB_SINGLE,
|
ASOPORT_Signal, SIGB_SINGLE,
|
||||||
ASOPORT_Target, FindTask(NULL),
|
ASOPORT_Target, FindTask(NULL),
|
||||||
TAG_DONE);
|
TAG_DONE);
|
||||||
|
|
||||||
if(mp == NULL)
|
if(mp == NULL)
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_fastrand.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_fastrand.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_freeievents.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_freeievents.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
*
|
*
|
||||||
* $Id: amiga_hookentry.asm,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_hookentry.asm,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=8
|
* :ts=8
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_hookentry.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_hookentry.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_hotkey.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_hotkey.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_invertstring.c,v 1.3 2005-02-25 10:14:20 obarthel Exp $
|
* $Id: amiga_invertstring.c,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_newlist.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_newlist.c,v 1.4 2006-09-25 15:12:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -43,6 +43,10 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
VOID NewList(struct List *lh);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NewList(struct List *lh)
|
NewList(struct List *lh)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_rangerand.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_rangerand.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_remtof.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_remtof.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_rexxvars.c,v 1.6 2005-03-18 12:38:21 obarthel Exp $
|
* $Id: amiga_rexxvars.c,v 1.10 2006-09-25 18:19:44 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -68,6 +68,12 @@ static struct RexxSysIFace * IRexxSys;
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
BOOL CheckRexxMsg(struct RexxMsg *message);
|
||||||
|
LONG GetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR *buffer_pointer);
|
||||||
|
LONG SetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR value,ULONG length);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
CLIB_CONSTRUCTOR(rexxvars_init)
|
CLIB_CONSTRUCTOR(rexxvars_init)
|
||||||
{
|
{
|
||||||
ENTER();
|
ENTER();
|
||||||
@ -136,7 +142,7 @@ CheckRexxMsg(struct RexxMsg *message)
|
|||||||
if(message->rm_TaskBlock == NULL)
|
if(message->rm_TaskBlock == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if(NOT IsRexxMsg(message))
|
if(NOT IsRexxMsg((struct Message *)message))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
result = TRUE;
|
result = TRUE;
|
||||||
@ -154,12 +160,12 @@ CheckRexxMsg(struct RexxMsg *message)
|
|||||||
LONG
|
LONG
|
||||||
GetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR *buffer_pointer)
|
GetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR *buffer_pointer)
|
||||||
{
|
{
|
||||||
static UBYTE buffer[256];
|
static TEXT buffer[256];
|
||||||
LONG result;
|
LONG result;
|
||||||
|
|
||||||
/* The following uses a function which was added to rexxsyslib.library V45.
|
/* The following uses a function which was added to rexxsyslib.library V45.
|
||||||
We therefore have a minimum library version requirement. */
|
We therefore have a minimum library version requirement. */
|
||||||
if(RexxSysBase == NULL || RexxSysBase->lib_Version < 45 || NOT IsRexxMsg(message))
|
if(RexxSysBase == NULL || RexxSysBase->lib_Version < 45 || NOT IsRexxMsg((struct Message *)message))
|
||||||
{
|
{
|
||||||
result = ERR10_010; /* invalid message packet */
|
result = ERR10_010; /* invalid message packet */
|
||||||
goto out;
|
goto out;
|
||||||
@ -189,7 +195,7 @@ SetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR value,ULONG lengt
|
|||||||
|
|
||||||
/* The following uses a function which was added to rexxsyslib.library V45.
|
/* The following uses a function which was added to rexxsyslib.library V45.
|
||||||
We therefore have a minimum library version requirement. */
|
We therefore have a minimum library version requirement. */
|
||||||
if(RexxSysBase == NULL || RexxSysBase->lib_Version < 45 || NOT IsRexxMsg(message))
|
if(RexxSysBase == NULL || RexxSysBase->lib_Version < 45 || NOT IsRexxMsg((struct Message *)message))
|
||||||
{
|
{
|
||||||
result = ERR10_010; /* invalid message packet */
|
result = ERR10_010; /* invalid message packet */
|
||||||
goto out;
|
goto out;
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_setsuperattrs.c,v 1.4 2005-02-25 10:14:20 obarthel Exp $
|
* $Id: amiga_setsuperattrs.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_timedelay.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_timedelay.c,v 1.4 2006-04-05 06:43:56 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -39,6 +39,19 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* A quick workaround for the timeval/timerequest->TimeVal/TimeRequest
|
||||||
|
change in the recent OS4 header files. */
|
||||||
|
|
||||||
|
#if defined(__NEW_TIMEVAL_DEFINITION_USED__)
|
||||||
|
|
||||||
|
#define timeval TimeVal
|
||||||
|
#define tv_secs Seconds
|
||||||
|
#define tv_micro Microseconds
|
||||||
|
|
||||||
|
#endif /* __NEW_TIMEVAL_DEFINITION_USED__ */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
LONG
|
LONG
|
||||||
TimeDelay(LONG unit,ULONG seconds,ULONG micros)
|
TimeDelay(LONG unit,ULONG seconds,ULONG micros)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_waitbeam.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: amiga_waitbeam.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: c.lib_rev.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: c.lib_rev.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#define VERSION 1
|
#define VERSION 1
|
||||||
#define REVISION 197
|
#define REVISION 202
|
||||||
#define DATE "4.11.2005"
|
#define DATE "16.1.2007"
|
||||||
#define VERS "c.lib 1.197"
|
#define VERS "c.lib 1.202"
|
||||||
#define VSTRING "c.lib 1.197 (4.11.2005)\r\n"
|
#define VSTRING "c.lib 1.202 (16.1.2007)\r\n"
|
||||||
#define VERSTAG "\0$VER: c.lib 1.197 (4.11.2005)"
|
#define VERSTAG "\0$VER: c.lib 1.202 (16.1.2007)"
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
197
|
202
|
||||||
|
|||||||
287
library/changes
287
library/changes
@ -1,3 +1,290 @@
|
|||||||
|
c.lib 1.202 (16.1.2007)
|
||||||
|
|
||||||
|
- Added llrint() function contributed by Henning Nielsen Lund. Thank you
|
||||||
|
very much!
|
||||||
|
|
||||||
|
- <unistd.h> now also include <stdio.h>, so that the SEEK_SET, etc. macros
|
||||||
|
are defined for lseek() to use.
|
||||||
|
|
||||||
|
- Added a wrapper function which handles the thread-safe stdio stream
|
||||||
|
resolution.
|
||||||
|
|
||||||
|
- In tcflush() a break signal can no longer cause the read flush loop
|
||||||
|
to be quit with two semaphores still locked.
|
||||||
|
|
||||||
|
- In __obtain_daemon_message() the test to verify if the bsdsocket.library API
|
||||||
|
would support the server API functionality checked the wrong feature. Fixed.
|
||||||
|
|
||||||
|
- Switched over the fd->fd_DefaultFile references to fd->fd_Socket where
|
||||||
|
sockets are used rather than file handles.
|
||||||
|
|
||||||
|
- Added functions which modify the callback function and the userdata pointer
|
||||||
|
stored in a low level unbuffered file/socket data structure. These function
|
||||||
|
perform the proper locking and are thus safe to use in a thread-safe environment.
|
||||||
|
|
||||||
|
- The low level unbuffered file/socket now has a public equivalent, which
|
||||||
|
is defined (along with the typedefs and flags) in <sys/clib2_io.h>. Functions
|
||||||
|
for tinkering with it are still to come.
|
||||||
|
|
||||||
|
- The math kernel code no longer uses its own private scalbn() function.
|
||||||
|
|
||||||
|
- Added a function prototype for the _exit() function. Note that _exit() is
|
||||||
|
not an ISO 'C' function.
|
||||||
|
|
||||||
|
- Corrected the getopt() function prototype, as prompted by Henning Nielsen Lund.
|
||||||
|
|
||||||
|
- The printf() family no longer adds a 0 or 0x prefix if the alternate
|
||||||
|
conversion modifier is present for the %o and %x conversions and the
|
||||||
|
value to be converted is 0 already. Put another way, printf("%#x %#o",0,0);
|
||||||
|
now prints "0 0". This required another change so that %p always includes
|
||||||
|
the 0x prefix even if the pointer involved is a NULL pointer.
|
||||||
|
|
||||||
|
- readlink() no longer sort-of-works for files and directories. It now only
|
||||||
|
works for soft linked objects and returns an error for everything else.
|
||||||
|
This is based upon a fix by Peter Bengtsson. Thank you very much!
|
||||||
|
|
||||||
|
- Moved the lstat() local Lock() function into its own separate file.
|
||||||
|
|
||||||
|
- uname() now returns correct and robust information for OS version
|
||||||
|
numbers > 36. This integrates a fix by Peter Bengtsson. Thank you
|
||||||
|
very much!
|
||||||
|
|
||||||
|
- Moved the crtbegin.o/crtend.o files out of the link libraries. Moving
|
||||||
|
them in was intended to work as a fix for the shared library build, but
|
||||||
|
now it seems that this has to be done at the link stage through the
|
||||||
|
GCC specs file...
|
||||||
|
|
||||||
|
- Integrated a fix for __rem_pio2() which affects sin(), tan() and cos(),
|
||||||
|
contributed by Steven Solie. Thank you very much!
|
||||||
|
|
||||||
|
- The internal 'struct fd' file descriptor table entry data structure
|
||||||
|
now has a user data field entry.
|
||||||
|
|
||||||
|
- Rearranged the contents of the 'struct fd' file descriptor table entry
|
||||||
|
data structure in preparation for making it public. Also added a version
|
||||||
|
field so that user code can handle changes to it gracefully. The default
|
||||||
|
file is no longer a BCPL pointer to a file handle by default, but
|
||||||
|
both a BPTR and a socket identifier, wrapped into a union.
|
||||||
|
|
||||||
|
- Added experimental tilde expansion in Unix path names. This still needs
|
||||||
|
some more work.
|
||||||
|
|
||||||
|
- __get_default_file() called __fd_unlock() without having called
|
||||||
|
__fd_lock() first. Ouch.
|
||||||
|
|
||||||
|
- Removed an unnecessary pair of __fd_lock()..__fd_unlock() calls from
|
||||||
|
ttyname_r().
|
||||||
|
|
||||||
|
- The libunix.a unlink() function is now reentrant, or at least thread-safe.
|
||||||
|
|
||||||
|
- You can now make unlink() stop after a failed deletion attempt which
|
||||||
|
failed because the object to be deleted was reported as being "in use".
|
||||||
|
The libunix.a variant defaults to report the deletion to have succeeded
|
||||||
|
under these circumstances and later tries to delete the files marked
|
||||||
|
for deletion. See <dos.h> for a brief documentation of how to change
|
||||||
|
the behaviour.
|
||||||
|
|
||||||
|
- basename() and dirname() can no longer return NULL. They truncate the
|
||||||
|
resulting path name instead. This is done so because some code that
|
||||||
|
calls basename() or dirname() does not check if the function's return
|
||||||
|
value is NULL.
|
||||||
|
|
||||||
|
- The SetOwner() fall-back code for Kickstart 2.04 was passing the wrong
|
||||||
|
parameters to the file system. The first (dp_Arg1) should have been
|
||||||
|
zero. Ouch.
|
||||||
|
|
||||||
|
- basename() is not supposed to modify the string it is passed and should
|
||||||
|
return a pointer to a string which can be modified. Now it does. Same
|
||||||
|
thing for dirname().
|
||||||
|
|
||||||
|
- asctime_r() now returns NULL if the buffer is too short to hold even a single
|
||||||
|
byte of data.
|
||||||
|
|
||||||
|
- ttyname() now calls ttyname_r(). Also, the libunix.a version of ttyname_r()
|
||||||
|
will produce "/CONSOLE" rather than "CONSOLE:".
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.201 (21.9.2006)
|
||||||
|
|
||||||
|
- If defined, the local environment variable "DISABLE_COMMANDLINE_WILDCARD_EXPANSION"
|
||||||
|
will disable expansion of wildcard patterns passed on the command line.
|
||||||
|
Note that if the variable is not set then the global variable
|
||||||
|
'__expand_wildcard_args' will provide the defaults for the switch that
|
||||||
|
controls whether the wildcard expansion takes place. And after the
|
||||||
|
environment variable has been checked, the '__expand_wildcard_args_check'
|
||||||
|
function pointer can still be used to override the switch.
|
||||||
|
|
||||||
|
- fstat() now works with "NIL:" and "/dev/null", respectively. Not that
|
||||||
|
it returns much useful information, though.
|
||||||
|
|
||||||
|
- The _PC_MAX_INPUT query for file handles now returns the default
|
||||||
|
buffer size.
|
||||||
|
|
||||||
|
- Integrated the new OS4 build makefile collection, as contributed by
|
||||||
|
Steven Solie. Thank you very much!
|
||||||
|
|
||||||
|
- Added the missing strerror_r() function.
|
||||||
|
|
||||||
|
- fpathconf() should work with the stdio streams, even in the thread-safe
|
||||||
|
library version, again.
|
||||||
|
|
||||||
|
- Updated m68k specs file in /documentation to contain an own __CLIB2__
|
||||||
|
define so that existing m68k compilers also have this define. In addition,
|
||||||
|
the common "-noixemul" option can now also be specified but will do a NOP
|
||||||
|
so that Makefiles sharing multiple runtime lib setups work without
|
||||||
|
a warning.
|
||||||
|
|
||||||
|
- Added a new callback function which can be used in programs which want
|
||||||
|
to avoid that the command line wildcard expansion takes place.
|
||||||
|
|
||||||
|
- __get_default_file() now dynamically fills in file handles for the
|
||||||
|
stdin/stdout/stderr streams if it's part of the thread-safe library.
|
||||||
|
|
||||||
|
- fpathconf() now checks if the file descriptor is really referring to a file.
|
||||||
|
|
||||||
|
- The termios hook entry code could file descriptor's embedded file handle
|
||||||
|
rather than what the thread safe library had dynamically bound to the
|
||||||
|
stdin/stdout/stderr streams.
|
||||||
|
|
||||||
|
- execve() now finds commands in the current directory again, even if you
|
||||||
|
omit the leading "./" path name.
|
||||||
|
|
||||||
|
- The execve() code that looks for the command/script file now begins by
|
||||||
|
checking if the file name includes path separators. If it does not,
|
||||||
|
then the search for the command begins with the resident command list;
|
||||||
|
otherwise the local directories are checked. The new code also properly
|
||||||
|
cleans up after itself (a FreeDeviceProc() was missing) and the "PROGDIR:"
|
||||||
|
lock now always refers to the directory in which the command/script
|
||||||
|
file is found.
|
||||||
|
|
||||||
|
- Added the missing fdim() and fdimf() functions to the build
|
||||||
|
makefiles. The OS4 build makefile was missing lrint() and
|
||||||
|
lrintf(). Ouch.
|
||||||
|
|
||||||
|
- Added the POSIX exec() family functions, based upon code contributed
|
||||||
|
by Henning Nielsen Lund. Thank you very much!
|
||||||
|
|
||||||
|
- atoll() no longer sets 'errno' directly but now calls __set_errno()
|
||||||
|
instead.
|
||||||
|
|
||||||
|
- Added pathconf(), fpathconf(), sysinfo(), ftime(), ulimit(), getrlimit()
|
||||||
|
and setrlimit() as contributed by Peter Bengtsson. Thank you very much!
|
||||||
|
|
||||||
|
- Added the missing S_ISSOCKET() macro to <sys/stat.h>. Note that this
|
||||||
|
is not actually a POSIX feature.
|
||||||
|
|
||||||
|
- Added fmin(), fminf(), fmax() and fmaxf() to the build makefiles.
|
||||||
|
Somehow I must have forgotten about them :-(
|
||||||
|
|
||||||
|
- select() and waitselect() can now be called without any file descriptor
|
||||||
|
sets to work with, as some software does which uses select() in place
|
||||||
|
of sleep().
|
||||||
|
|
||||||
|
- The <sys/ioctl.h> header file now includes both <sys/select.h> and
|
||||||
|
<sys/filio.h> for better compatibility with the TCP/IP stack header
|
||||||
|
files.
|
||||||
|
|
||||||
|
- Added the global variable __expand_wildcard_args which can be used
|
||||||
|
to disable wildcard pattern expansion of command line parameters when
|
||||||
|
linked against "libunix.a". Note that this has no effect on the "regular"
|
||||||
|
libc.a behaviour.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.200 (17.4.2006)
|
||||||
|
|
||||||
|
- The default break signal mask (SIGBREAKF_CTRL_C) is no longer
|
||||||
|
hard-coded. You can override it at link time with a different
|
||||||
|
variable value for __break_signal_mask. This may have to be
|
||||||
|
augmented by an API for changing the value.
|
||||||
|
|
||||||
|
- Added a waitselect() function which works very much like the
|
||||||
|
bsdsocket.library/WaitSelect() function.
|
||||||
|
|
||||||
|
- Added <sys/time.h> include to <sys/socket.h> due to latest "TimeVal" change
|
||||||
|
in the OS4 SDK. Otherwise "struct timeval" will not be defined at the time
|
||||||
|
the <net/if.h> of the netincludes will be included by <proto/bsdsocket.h>.
|
||||||
|
|
||||||
|
- The strftime() hook function had the locale and character parameters
|
||||||
|
switched, which made 'setlocale(LC_ALL,""); strftime(..);' unusable.
|
||||||
|
Fixed.
|
||||||
|
|
||||||
|
- fchown() and chown() now accept owner and group ID values of -1, which
|
||||||
|
indicate that the respective information should not be changed.
|
||||||
|
|
||||||
|
- The OS4 library build now includes the crtbegin.o and crtend.o object
|
||||||
|
files in the libc.a library, which solves a problem with the thread-safe
|
||||||
|
shared library support code.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.199 (6.3.2006)
|
||||||
|
|
||||||
|
- In <stdio.h> MAXPATHLEN is now equivalent to PATH_MAX (from <limits.h>),
|
||||||
|
as suggested by Henning Nielsen Lund.
|
||||||
|
|
||||||
|
- Added lockf() support, as supplied by Henning Nielsen Lund.
|
||||||
|
Thank you very much!
|
||||||
|
|
||||||
|
- symlink() now also works for absolute and relative links, and is
|
||||||
|
part of "libunix.a". This patch was supplied by Henning Nielsen Lund.
|
||||||
|
Thank you very much!
|
||||||
|
|
||||||
|
- The __main() stub function expected by the 68k GCC build is no
|
||||||
|
longer part of "stdlib_main.c". This helps the C++ support, since the
|
||||||
|
__main symbol definition no longer clashes with the definition in
|
||||||
|
"libgcc.a".
|
||||||
|
|
||||||
|
- The printf() family stripped trailing zeroes from the integer part
|
||||||
|
of %g output. Fixed.
|
||||||
|
|
||||||
|
- Moved an allocation size roundup operation in realloc().
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.198 (11.12.2005)
|
||||||
|
|
||||||
|
- Added <fenv.h> for C99, and the (yet unimplemented) functions
|
||||||
|
feclearexcept(), fegetenv(), fegetexceptflag(), fegetround(),
|
||||||
|
feholdexcept(), feraiseexcept(), fesetenv(), fesetexceptflag(),
|
||||||
|
fetestexcept(), fetestround() and feupdateenv().
|
||||||
|
|
||||||
|
- Replaced the old pow() implementation. However, powf() may need to
|
||||||
|
be changed to set a domain error.
|
||||||
|
|
||||||
|
- In libunix.a malloc(), calloc() and realloc() no longer treat a
|
||||||
|
request to allocate 0 bytes as an error, returning NULL. They all
|
||||||
|
return a pointer sized memory chunk (= four bytes) initialized to
|
||||||
|
NULL (= 0) instead.
|
||||||
|
|
||||||
|
- The alloca() implementation which allocates memory from the system
|
||||||
|
rather than the local stack frame is thread-safe now. It also
|
||||||
|
interacts with the realloc(), calloc(), free() and malloc() functions
|
||||||
|
in that the alloca() cleanup routine is called once alloca() has
|
||||||
|
done its job. If all the memory allocated through alloca() has been
|
||||||
|
released no further calls to the cleanup function will be made.
|
||||||
|
|
||||||
|
- In the thread-safe library, realloc() permitted two different overlapping
|
||||||
|
calls to succeed in trying to reallocate the same chunk of memory due to
|
||||||
|
a race condition. Fixed.
|
||||||
|
|
||||||
|
- Added a new function __get_mem_stats() (the prototype is in <dos.h>) which
|
||||||
|
can be used to query the current and maximum memory usage, counting the
|
||||||
|
allocations performed through malloc(), free() and all other functions which
|
||||||
|
use them.
|
||||||
|
|
||||||
|
- Added another function called __reset_max_mem_stats() which will reset the
|
||||||
|
counters for "maximum amount of memory used" and "maximum number of chunks
|
||||||
|
allocated" to the current figures for these values.
|
||||||
|
|
||||||
|
- Fixed the alloca() declaration in <stdlib.h> so that software which keys
|
||||||
|
off the fact whether or not the alloca preprocessor symbol is defined
|
||||||
|
will do the right thing.
|
||||||
|
|
||||||
|
- Added an optional call-back function which can be called if alloca()
|
||||||
|
is about to return NULL, which some software does not consider.
|
||||||
|
Rather than letting such software drop into an illegal memory access
|
||||||
|
or worse, that call-back function will be invoked instead, which can
|
||||||
|
print an error message and eventually call abort().
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.197 (4.11.2005)
|
c.lib 1.197 (4.11.2005)
|
||||||
|
|
||||||
- Updated math_hypot.c to a newer (e_hypot.c 1.3 95/01/18) version from
|
- Updated math_hypot.c to a newer (e_hypot.c 1.3 95/01/18) version from
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_carg.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_carg.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_cargf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_cargf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_cargl.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_cargl.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_cimag.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_cimag.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_cimagf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_cimagf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_cimagl.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_cimagl.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_conj.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_conj.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_conjf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_conjf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_conjl.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_conjl.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_creal.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_creal.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_crealf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_crealf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_creall.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
* $Id: complex_creall.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: complex_headers.h,v 1.3 2005-05-12 14:50:06 obarthel Exp $
|
* $Id: complex_headers.h,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
3
library/contrib/README
Normal file
3
library/contrib/README
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
This directory contains contributions which have not yet been integrated
|
||||||
|
with the clib2 library build but which should be in the CVS repository
|
||||||
|
both for safekeeping and for you to look at and adapt.
|
||||||
183
library/contrib/byteswap/byteswap.h
Normal file
183
library/contrib/byteswap/byteswap.h
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
|
||||||
|
#ifndef __BYTESWAP_H
|
||||||
|
#define __BYTESWAP_H
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
#define __CONST_FUNC __attribute__((const))
|
||||||
|
#else
|
||||||
|
#define __CONST_FUNC /* Nothing */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Single value byteswap functions. */
|
||||||
|
|
||||||
|
extern __CONST_FUNC uint16_t bswap16(uint16_t);
|
||||||
|
extern __CONST_FUNC uint32_t bswap24(uint32_t);
|
||||||
|
extern __CONST_FUNC uint32_t bswap32(uint32_t);
|
||||||
|
|
||||||
|
#ifdef INT64_MIN
|
||||||
|
extern __CONST_FUNC uint64_t bswap64(uint64_t);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Block byteswap functions. The swab() function usually resides in unistd.h, so perhaps it should be moved there? */
|
||||||
|
/* NOTE: Contrary to the standard swab(), this version returns the "to" pointer and the pointers are not restrict
|
||||||
|
* qualified - so swapping buffer-contents in-place is supported.
|
||||||
|
* Also, swab24(), swab32() and swab64() are non-standard functions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern void *swab(void *from,void *to,ssize_t nbytes);
|
||||||
|
extern void *swab24(void *from,void *to,ssize_t nbytes); /* Same as swab(), but operates on 24-bit words instead. */
|
||||||
|
extern void *swab32(void *from,void *to,ssize_t nbytes); /* Same as swab(), but operates on 32-bit words instead. */
|
||||||
|
extern void *swab64(void *from,void *to,ssize_t nbytes); /* Same as swab(), but operates on 64-bit words instead. */
|
||||||
|
|
||||||
|
#define swab16(x) swab(x)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Optimized inline-versions for the single-value functions follow.
|
||||||
|
* Only GCC+PPC and GCC+m68k support for now.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
|
||||||
|
/* Select implementation. */
|
||||||
|
|
||||||
|
#define bswap16(x) (__builtin_constant_p(x))?__const_swap16(x):__swap16(x)
|
||||||
|
#define bswap24(x) (__builtin_constant_p(x))?__const_swap24(x):__swap24(x)
|
||||||
|
#define bswap32(x) (__builtin_constant_p(x))?__const_swap32(x):__swap32(x)
|
||||||
|
#define bswap64(x) (__builtin_constant_p(x))?__const_swap64(x):__swap64(x)
|
||||||
|
|
||||||
|
/* Assembler implementations */
|
||||||
|
|
||||||
|
#if defined(__PPC__)
|
||||||
|
|
||||||
|
static __inline__ __CONST_FUNC uint16_t __swap16(uint16_t u16) {
|
||||||
|
uint_fast16_t result;
|
||||||
|
__asm__("\
|
||||||
|
rlwinm %[result],%[u16],8,16,24\n\
|
||||||
|
rlwimi %[result],%[u16],24,24,31\n\
|
||||||
|
":[result]"=&r"(result):[u16]"r"(u16));
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ __CONST_FUNC uint32_t __swap24(uint32_t u32) {
|
||||||
|
uint_fast32_t result;
|
||||||
|
__asm__("\
|
||||||
|
rlwinm %[result],%[u32],16,8,31\n\
|
||||||
|
rlwimi %[result],%[u32],0,16,24\n\
|
||||||
|
":[result]"=&r"(result):[u32]"r"(u32));
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ __CONST_FUNC uint32_t __swap32(uint32_t u32) {
|
||||||
|
uint_fast32_t result;
|
||||||
|
__asm__("\
|
||||||
|
rlwinm %[result],%[u32],8,8,31\n\
|
||||||
|
rlwimi %[result],%[u32],24,0,7\n\
|
||||||
|
rlwimi %[result],%[u32],24,16,23\n\
|
||||||
|
":[result]"=&r"(result):[u32]"r"(u32));
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Note: __swap64() might perhaps be optimized a bit more by scheduling the
|
||||||
|
* instructions to alternate register-use, but this instead means there
|
||||||
|
* are two less registers free since "u64" and "result" may no longer overlap.
|
||||||
|
* Decisions, decisions....
|
||||||
|
*/
|
||||||
|
|
||||||
|
static __inline__ __CONST_FUNC uint64_t __swap64(uint64_t u64) {
|
||||||
|
uint_fast64_t result;
|
||||||
|
uint_fast32_t tmp;
|
||||||
|
__asm__("\
|
||||||
|
rlwinm %[tmp],%[u64],8,8,31\n\
|
||||||
|
rlwimi %[tmp],%[u64],24,0,7\n\
|
||||||
|
rlwimi %[tmp],%[u64],24,16,23\n\
|
||||||
|
rlwinm %[result],%L[u64],8,8,31\n\
|
||||||
|
rlwimi %[result],%L[u64],24,0,7\n\
|
||||||
|
rlwimi %[result],%L[u64],24,16,23\n\
|
||||||
|
or %L[result],%[tmp],%[tmp]\n\
|
||||||
|
":[result]"=r"(result),[tmp]"=&r"(tmp):[u64]"r"(u64));
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif defined(__mc68020__)
|
||||||
|
|
||||||
|
static __inline__ __CONST_FUNC uint16_t __swap16(uint16_t u16) {
|
||||||
|
__asm__("\
|
||||||
|
rol.w #8,%[u16]\n\
|
||||||
|
":[u16]"+d"(u16)::"cc");
|
||||||
|
return(u16);
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ __CONST_FUNC uint32_t __swap24(uint32_t u32) {
|
||||||
|
__asm__("\
|
||||||
|
rol.w #8,%[u32]\n\
|
||||||
|
swap %[u32]\n\
|
||||||
|
rol.w #8,%[u32]\n\
|
||||||
|
ror.l #8,%[u32]\n\
|
||||||
|
":[u32]"+d"(u32)::"cc");
|
||||||
|
return(u32);
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ __CONST_FUNC uint32_t __swap32(uint32_t u32) {
|
||||||
|
__asm__("\
|
||||||
|
rol.w #8,%[u32]\n\
|
||||||
|
swap %[u32]\n\
|
||||||
|
rol.w #8,%[u32]\n\
|
||||||
|
":[u32]"+d"(u32)::"cc");
|
||||||
|
return(u32);
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ __CONST_FUNC uint64_t __swap64(uint64_t u64) {
|
||||||
|
__asm__("\
|
||||||
|
rol.w #8,%[u64]\n\
|
||||||
|
rol.w #8,%L[u64]\n\
|
||||||
|
swap %[u64]\n\
|
||||||
|
swap %L[u64]\n\
|
||||||
|
rol.w #8,%[u64]\n\
|
||||||
|
rol.w #8,%L[u64]\n\
|
||||||
|
exg %[u64],L%[u64]\n\
|
||||||
|
":[u64]"+d"(u64)::"cc");
|
||||||
|
return(u64);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
/* Unknown or undefined architecture. Perhaps compiling with "-strict -ansi", but should not use this header then anyway. */
|
||||||
|
#undef bswap16
|
||||||
|
#undef bswap24
|
||||||
|
#undef bswap32
|
||||||
|
#undef bswap64
|
||||||
|
#define bswap16(x) (__builtin_constant_p(x))?__const_swap16(x):bswap16(x)
|
||||||
|
#define bswap24(x) (__builtin_constant_p(x))?__const_swap24(x):bswap24(x)
|
||||||
|
#define bswap32(x) (__builtin_constant_p(x))?__const_swap32(x):bswap32(x)
|
||||||
|
#define bswap64(x) (__builtin_constant_p(x))?__const_swap64(x):bswap64(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* C implementations for constant values */
|
||||||
|
|
||||||
|
static __inline__ uint16_t __const_swap16(uint16_t u16) {
|
||||||
|
return(u16>>8|u16<<8);
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ uint32_t __const_swap24(uint32_t u32) {
|
||||||
|
return(((u32&0xff)<<16)|((u32&0xff00))|((u32&0xff0000)>>16));
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ uint32_t __const_swap32(uint32_t u32) {
|
||||||
|
return(((u32&0xff)<<24)|((u32&0xff00)<<8)|((u32&0xff0000)>>8)|((u32&0xff000000)>>24));
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ uint64_t __const_swap64(uint64_t u64) {
|
||||||
|
return(((u64&0xffLL)<<56)|((u64&0xff00LL)<<40)|((u64&0xff0000LL)<<24)|((u64&0xff000000LL)<<8)|
|
||||||
|
((u64&0xff00000000LL)>>8)|((u64&0xff0000000000LL)>>24)|((u64&0xff000000000000LL)>>40)|((u64&0xff00000000000000LL)>>56));
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* __GNUC__ */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __BYTESWAP_H */
|
||||||
|
|
||||||
|
/* vi:set ts=3: */
|
||||||
|
|
||||||
28
library/contrib/byteswap/byteswap_bswap16.c
Normal file
28
library/contrib/byteswap/byteswap_bswap16.c
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
#if defined(__PPC__) && defined(__GNUC__)
|
||||||
|
|
||||||
|
asm("\
|
||||||
|
.text\n\
|
||||||
|
.align 2\n\
|
||||||
|
.globl bswap16\n\
|
||||||
|
.type bswap16, @function\n\
|
||||||
|
bswap16:\n\
|
||||||
|
# rlwinm %r4,%r3,8,16,24\n\
|
||||||
|
# rlwimi %r4,%r3,24,24,31\n\
|
||||||
|
# or %r3,%r4,%r4\n\
|
||||||
|
rlwimi %r3,%r3,16,8,15\n\
|
||||||
|
srwi %r3,%r3,8\n\
|
||||||
|
blr\n\
|
||||||
|
");
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
uint16_t bswap16(uint16_t u16)
|
||||||
|
{
|
||||||
|
return(u16>>8|u16<<8);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
29
library/contrib/byteswap/byteswap_bswap24.c
Normal file
29
library/contrib/byteswap/byteswap_bswap24.c
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
#if defined(__PPC__) && defined(__GNUC__)
|
||||||
|
|
||||||
|
asm(" .text\n\
|
||||||
|
.align 2\n\
|
||||||
|
.globl bswap24\n\
|
||||||
|
.type bswap24, @function\n\
|
||||||
|
bswap32:\n\
|
||||||
|
rlwinm %r4,%r3,16,8,31\n\
|
||||||
|
rlwimi %r4,%r3,0,16,24\n\
|
||||||
|
or %r3,%r4,%r4\n\
|
||||||
|
blr\n\
|
||||||
|
");
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
uint32_t bswap24(uint32_t u32)
|
||||||
|
{
|
||||||
|
return(
|
||||||
|
((u32&0xff)<<16)|
|
||||||
|
((u32&0xff00))|
|
||||||
|
((u32&0xff0000)>>16)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
31
library/contrib/byteswap/byteswap_bswap32.c
Normal file
31
library/contrib/byteswap/byteswap_bswap32.c
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
#if defined(__PPC__) && defined(__GNUC__)
|
||||||
|
|
||||||
|
asm(" .text\n\
|
||||||
|
.align 2\n\
|
||||||
|
.globl bswap32\n\
|
||||||
|
.type bswap32, @function\n\
|
||||||
|
bswap32:\n\
|
||||||
|
rlwinm %r4,%r3,8,8,31\n\
|
||||||
|
rlwimi %r4,%r3,24,0,7\n\
|
||||||
|
rlwimi %r4,%r3,24,16,23\n\
|
||||||
|
or %r3,%r4,%r4\n\
|
||||||
|
blr\n\
|
||||||
|
");
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
uint32_t bswap32(uint32_t u32)
|
||||||
|
{
|
||||||
|
return(
|
||||||
|
((u32&0xff)<<24)|
|
||||||
|
((u32&0xff00)<<8)|
|
||||||
|
((u32&0xff0000)>>8)|
|
||||||
|
((u32&0xff000000)>>24)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
48
library/contrib/byteswap/byteswap_bswap64.c
Normal file
48
library/contrib/byteswap/byteswap_bswap64.c
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
|
||||||
|
#if defined(USE_64_BIT_INTS)
|
||||||
|
|
||||||
|
#if defined(__PPC__) && defined(__GNUC__)
|
||||||
|
|
||||||
|
asm(" .text\n\
|
||||||
|
.align 2\n\
|
||||||
|
.globl bswap64\n\
|
||||||
|
.type bswap64, @function\n\
|
||||||
|
bswap64:\n\
|
||||||
|
rlwinm %r5,%r3,8,8,31\n\
|
||||||
|
rlwimi %r5,%r3,24,0,7\n\
|
||||||
|
rlwimi %r5,%r3,24,16,23\n\
|
||||||
|
rlwinm %r3,%r4,8,8,31\n\
|
||||||
|
rlwimi %r3,%r4,24,0,7\n\
|
||||||
|
rlwimi %r3,%r4,24,16,23\n\
|
||||||
|
or %r4,%r5,%r5\n\
|
||||||
|
blr\n\
|
||||||
|
");
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
uint64_t bswap64(uint64_t u64)
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
uint64_t ll;
|
||||||
|
uint32_t l[2];
|
||||||
|
} v={.ll=u64};
|
||||||
|
uint32_t tmp;
|
||||||
|
tmp=v.l[0];
|
||||||
|
v.l[0]=((v.l[1]&0xff)<<24)|
|
||||||
|
((v.l[1]&0xff00)<<8)|
|
||||||
|
((v.l[1]&0xff0000)>>8)|
|
||||||
|
((v.l[1]&0xff000000)>>24);
|
||||||
|
v.l[1]=((tmp&0xff)<<24)|
|
||||||
|
((tmp&0xff00)<<8)|
|
||||||
|
((tmp&0xff0000)>>8)|
|
||||||
|
((tmp&0xff000000)>>24);
|
||||||
|
return(v.ll);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
70
library/contrib/byteswap/byteswap_swab.c
Normal file
70
library/contrib/byteswap/byteswap_swab.c
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
|
||||||
|
#if defined(__GNUC__) && defined(__PPC__)
|
||||||
|
|
||||||
|
/* r3=from, r4=to, r5=len/count, r6=index, r7=load/store/temp */
|
||||||
|
|
||||||
|
asm("\
|
||||||
|
.text\n\
|
||||||
|
.align 2\n\
|
||||||
|
.globl swab\n\
|
||||||
|
.type swab,@function\n\
|
||||||
|
swab:\n\
|
||||||
|
dcbt 0,%r3\n\
|
||||||
|
srawi. %r5,%r5,1\n\
|
||||||
|
bc 4,gt,.exit\n\
|
||||||
|
andi. %r7,%r3,3 # Check if we start on an address evenly divisible by 4.\n\
|
||||||
|
li %r6,0\n\
|
||||||
|
bc 4,gt,.preploop\n\
|
||||||
|
lhbrx %r7,%r6,%r3 # Fix alignment if needed.\n\
|
||||||
|
sthx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,2\n\
|
||||||
|
subi %r5,%r5,1\n\
|
||||||
|
.preploop:\n\
|
||||||
|
andi. %r7,%r5,1 # Check if even or odd number of 16-bit words.\n\
|
||||||
|
srawi %r5,%r5,1 # Number of 32-bit words to half-swap.\n\
|
||||||
|
mtctr %r5\n\
|
||||||
|
bc 12,gt,.oddloop # Jump to loop for odd number of 16-bit words.\n\
|
||||||
|
.loop: # Loop is 'unrolled' by reading/writing 32-bit words.\n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
rotlwi %r7,%r7,16\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
bc 0,lt,.loop\n\
|
||||||
|
.exit:\n\
|
||||||
|
or %r3,%r4,%r4\n\
|
||||||
|
blr\n\
|
||||||
|
.oddloop:\n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
rotlwi %r7,%r7,16\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
bc 0,lt,.oddloop\n\
|
||||||
|
sub %r6,%r6,2\n\
|
||||||
|
lhbrx %r7,%r6,%r3 # Fix last 16-bit word.\n\
|
||||||
|
sthx %r7,%r6,%r4\n\
|
||||||
|
or %r3,%r4,%r4\n\
|
||||||
|
blr\n\
|
||||||
|
");
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
void *swab(void *from,void *to,ssize_t len)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
uint16_t u16,*u16in=from,*u16out=to;
|
||||||
|
|
||||||
|
for(i=0;i<(len>>1);i++) {
|
||||||
|
u16=u16in[i];
|
||||||
|
u16out[i]=u16>>8|u16<<8;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(u16out);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
91
library/contrib/byteswap/byteswap_swab24.c
Normal file
91
library/contrib/byteswap/byteswap_swab24.c
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
|
||||||
|
#if defined(__GNUC__) && defined(__PPC__)
|
||||||
|
|
||||||
|
/* r3=from, r4=to, r5=len/remaining, r6/r7=index & r7=temp, r8/r9/r10=read/write temp */
|
||||||
|
|
||||||
|
asm("\
|
||||||
|
.text\n\
|
||||||
|
.align 2\n\
|
||||||
|
.globl swab24\n\
|
||||||
|
.type swab24,@function\n\
|
||||||
|
swab24:\n\
|
||||||
|
dcbt 0,%r3\n\
|
||||||
|
li %r7,3\n\
|
||||||
|
divwu %r5,%r5,%r7\n\
|
||||||
|
andi. %r7,%r5,3\n\
|
||||||
|
srawi. %r5,%r5,2\n\
|
||||||
|
mtctr %r5\n\
|
||||||
|
or %r5,%r7,%r7\n\
|
||||||
|
li %r6,0\n\
|
||||||
|
bc 4,gt,.postfix\n\
|
||||||
|
.loop:\n\
|
||||||
|
lwbrx %r8,%r6,%r3\n\
|
||||||
|
addi %r7,%r6,4\n\
|
||||||
|
lwzx %r9,%r7,%r3\n\
|
||||||
|
addi %r7,%r6,8\n\
|
||||||
|
lwbrx %r10,%r7,%r3\n\
|
||||||
|
rotlwi %r8,%r8,8\n\
|
||||||
|
or %r7,%r9,%r9\n\
|
||||||
|
rlwimi %r9,%r8,16,8,15\n\
|
||||||
|
rlwimi %r9,%r10,8,16,23\n\
|
||||||
|
rlwimi %r8,%r7,16,24,31\n\
|
||||||
|
rotrwi %r10,%r10,8\n\
|
||||||
|
rlwimi %r10,%r7,16,0,7\n\
|
||||||
|
stwx %r8,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
stwx %r9,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
stwx %r10,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
bc 0,lt,.loop\n\
|
||||||
|
.postfix: # Fix any remaining 24-bit words (number of remaining words in r5).\n\
|
||||||
|
or. %r5,%r5,%r5\n\
|
||||||
|
bc 4,gt,.exit\n\
|
||||||
|
mtctr %r5\n\
|
||||||
|
add %r3,%r3,%r6\n\
|
||||||
|
add %r6,%r4,%r6\n\
|
||||||
|
subi %r3,%r3,1\n\
|
||||||
|
.fixloop:\n\
|
||||||
|
lbzu %r7,1(%r3)\n\
|
||||||
|
lbzu %r8,1(%r3)\n\
|
||||||
|
lbzu %r9,1(%r3)\n\
|
||||||
|
stb %r7,2(%r6)\n\
|
||||||
|
stb %r8,1(%r6)\n\
|
||||||
|
stb %r9,0(%r6)\n\
|
||||||
|
addi %r6,%r6,3\n\
|
||||||
|
bc 0,lt,.fixloop\n\
|
||||||
|
.exit:\n\
|
||||||
|
or %r3,%r4,%r4\n\
|
||||||
|
blr\n\
|
||||||
|
");
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Ugh, this is really very, very ineffiecient.
|
||||||
|
* (But simple, understandable and safe)
|
||||||
|
*/
|
||||||
|
|
||||||
|
void *swab24(void *from,void *to,ssize_t len)
|
||||||
|
{
|
||||||
|
uint8_t *src=from,B0,B1,B2,*dst=to;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for(i=0;i<len;i+=3) {
|
||||||
|
B0=src[i];
|
||||||
|
B1=src[i+1];
|
||||||
|
B2=src[i+2];
|
||||||
|
dst[i]=B2;
|
||||||
|
dst[i+1]=B1;
|
||||||
|
dst[i+2]=B0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(to);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
112
library/contrib/byteswap/byteswap_swab32.c
Normal file
112
library/contrib/byteswap/byteswap_swab32.c
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
|
||||||
|
#if defined(__GNUC__) && defined(__PPC__)
|
||||||
|
|
||||||
|
/* r3=from, r4=to, r5=len, r6=index, r7=load/store temp */
|
||||||
|
|
||||||
|
asm("\
|
||||||
|
.text\n\
|
||||||
|
.align 2\n\
|
||||||
|
.globl swab32\n\
|
||||||
|
.type swab32,@function\n\
|
||||||
|
swab32:\n\
|
||||||
|
srawi. %r5,%r5,2\n\
|
||||||
|
li %r6,0\n\
|
||||||
|
bc 4,gt,.exit\n\
|
||||||
|
mtctr %r5\n\
|
||||||
|
.loop:\n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
bc 0,lt,.loop\n\
|
||||||
|
.exit:\n\
|
||||||
|
or %r3,%r4,%r4\n\
|
||||||
|
blr\n\
|
||||||
|
");
|
||||||
|
|
||||||
|
/* r3=from, r4=to, r5=len/temp, r6=index, r7=load/store temp, r8=cache hint
|
||||||
|
*
|
||||||
|
* The unrolled, cache-hinting version appears to be about 4.5% faster, but
|
||||||
|
* in this case I opted for the smaller implementation. swab64() appears to
|
||||||
|
* gain more from cache-hinting - probably because of it using more registers
|
||||||
|
* for intermediate storage.
|
||||||
|
asm("\
|
||||||
|
.text\n\
|
||||||
|
.align 2\n\
|
||||||
|
.globl swab32\n\
|
||||||
|
.type swab32,@function\n\
|
||||||
|
swab32:\n\
|
||||||
|
dcbt 0,%r3\n\
|
||||||
|
andi. %r8,%r5,31 # The number of bytes handled in '.pre'. Used for prefetch hint.\n\
|
||||||
|
srawi %r5,%r5,2 # Convert bytes-># of 32-bit words\n\
|
||||||
|
andi. %r7,%r5,7\n\
|
||||||
|
li %r6,0\n\
|
||||||
|
bc 4,gt,.preploop\n\
|
||||||
|
mtctr %r7\n\
|
||||||
|
.pre: # One 32-bit word at a time until we have (nLeft%8)==0 \n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
bc 0,lt,.pre\n\
|
||||||
|
.preploop:\n\
|
||||||
|
srawi. %r5,%r5,3 # Divide by 8 again to get number of loops.\n\
|
||||||
|
addi %r8,%r8,32 # Start address for next loop (from r3).\n\
|
||||||
|
bc 4,gt,.exit\n\
|
||||||
|
mtctr %r5\n\
|
||||||
|
.loop: # Loop unrolled 8 times = 32 bytes = 1 cache-line (except on the 970).\n\
|
||||||
|
dcbt %r8,%r3 # Cache hint (prefetch) for the next loop\n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
lwbrx %r7,%r6,%r3\n\
|
||||||
|
stwx %r7,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,4\n\
|
||||||
|
addi %r8,%r8,32 # Update cache-hint offset\n\
|
||||||
|
bc 0,lt,.loop\n\
|
||||||
|
.exit:\n\
|
||||||
|
or %r3,%r4,%r4\n\
|
||||||
|
blr\n\
|
||||||
|
");
|
||||||
|
*/
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
void *swab32(void *from,void *to,ssize_t len)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
uint32_t *u32in=from,*u32out=to,tmp;
|
||||||
|
|
||||||
|
for(i=0;i<(len>>2);i++) {
|
||||||
|
tmp=u32in[i];
|
||||||
|
u32out[i]=((tmp&0xff)<<24)|
|
||||||
|
((tmp&0xff00)<<8)|
|
||||||
|
((tmp&0xff0000)>>8)|
|
||||||
|
((tmp&0xff000000)>>24);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(to);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
101
library/contrib/byteswap/byteswap_swab64.c
Normal file
101
library/contrib/byteswap/byteswap_swab64.c
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
|
||||||
|
#if defined(__GNUC__) && defined(__PPC__)
|
||||||
|
|
||||||
|
/* r3=from, r4=to, r5=len/temp, r6/r7=index, r8/r9=load/store temp, r10=cache hint */
|
||||||
|
|
||||||
|
/* This version is unrolled and uses cache-hinting. It appears to gain about 10%
|
||||||
|
* over a non-unrolled, non-hinting version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
asm("\
|
||||||
|
.text\n\
|
||||||
|
.align 2\n\
|
||||||
|
.globl swab64\n\
|
||||||
|
.type swab64,@function\n\
|
||||||
|
swab64:\n\
|
||||||
|
dcbt 0,%r3\n\
|
||||||
|
andi. %r10,%r5,31 # The number of bytes handled in '.pre'. Used for prefetch hint.\n\
|
||||||
|
srawi %r5,%r5,3 # Convert bytes-># of 64-bit words\n\
|
||||||
|
andi. %r7,%r5,3\n\
|
||||||
|
li %r6,0\n\
|
||||||
|
bc 4,gt,.preploop\n\
|
||||||
|
mtctr %r7\n\
|
||||||
|
.pre: # One 64-bit word at a time until we have (nLeft%4)==0 \n\
|
||||||
|
lwbrx %r8,%r6,%r3\n\
|
||||||
|
addi %r7,%r6,4\n\
|
||||||
|
lwbrx %r9,%r7,%r3\n\
|
||||||
|
stwx %r8,%r7,%r4\n\
|
||||||
|
stwx %r9,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,8\n\
|
||||||
|
bc 0,lt,.pre\n\
|
||||||
|
.preploop:\n\
|
||||||
|
srawi. %r5,%r5,2 # Divide by 4 again to get number of loops.\n\
|
||||||
|
addi %r10,%r10,32 # Start address for next loop.\n\
|
||||||
|
bc 4,gt,.exit\n\
|
||||||
|
mtctr %r5\n\
|
||||||
|
.loop: # Loop unrolled 4 times = 32 bytes = 1 cache-line (except on the 970).\n\
|
||||||
|
dcbt %r10,%r3 # Cache hint (prefetch) for the next iteration\n\
|
||||||
|
lwbrx %r8,%r6,%r3\n\
|
||||||
|
addi %r7,%r6,4\n\
|
||||||
|
lwbrx %r9,%r7,%r3\n\
|
||||||
|
stwx %r8,%r7,%r4\n\
|
||||||
|
stwx %r9,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,8\n\
|
||||||
|
lwbrx %r8,%r6,%r3\n\
|
||||||
|
addi %r7,%r6,4\n\
|
||||||
|
lwbrx %r9,%r7,%r3\n\
|
||||||
|
stwx %r8,%r7,%r4\n\
|
||||||
|
stwx %r9,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,8\n\
|
||||||
|
lwbrx %r8,%r6,%r3\n\
|
||||||
|
addi %r7,%r6,4\n\
|
||||||
|
lwbrx %r9,%r7,%r3\n\
|
||||||
|
stwx %r8,%r7,%r4\n\
|
||||||
|
stwx %r9,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,8\n\
|
||||||
|
lwbrx %r8,%r6,%r3\n\
|
||||||
|
addi %r7,%r6,4\n\
|
||||||
|
lwbrx %r9,%r7,%r3\n\
|
||||||
|
stwx %r8,%r7,%r4\n\
|
||||||
|
stwx %r9,%r6,%r4\n\
|
||||||
|
addi %r6,%r6,8\n\
|
||||||
|
addi %r10,%r10,32 # Update cache-hint offset\n\
|
||||||
|
bc 0,lt,.loop\n\
|
||||||
|
.exit:\n\
|
||||||
|
or %r3,%r4,%r4\n\
|
||||||
|
blr\n\
|
||||||
|
");
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
void *swab64(void *from,void *to,ssize_t len)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
struct {
|
||||||
|
uint32_t u32[2];
|
||||||
|
} *u64in=from,*u64out=to;
|
||||||
|
uint32_t tmp1,tmp2;
|
||||||
|
|
||||||
|
for(i=0;i<(len>>3);i++) {
|
||||||
|
tmp1=u64in[i].u32[0];
|
||||||
|
tmp2=u64in[i].u32[1];
|
||||||
|
u64out[i].u32[0]=((tmp2&0xff)<<24)|
|
||||||
|
((tmp2&0xff00)<<8)|
|
||||||
|
((tmp2&0xff0000)>>8)|
|
||||||
|
((tmp2&0xff000000)>>24);
|
||||||
|
u64out[i].u32[1]=((tmp1&0xff)<<24)|
|
||||||
|
((tmp1&0xff00)<<8)|
|
||||||
|
((tmp1&0xff0000)>>8)|
|
||||||
|
((tmp1&0xff000000)>>24);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(to);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* vi:set ts=3: */
|
||||||
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: crtbegin.c,v 1.10 2005-03-18 12:38:22 obarthel Exp $
|
* $Id: crtbegin.c,v 1.11 2006-09-22 09:02:51 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
@ -27,6 +27,11 @@ static void (*__DTOR_LIST__[1]) (void) __attribute__(( used, section(".dtors"),
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
void _init(void);
|
||||||
|
void _fini(void);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
void
|
void
|
||||||
_init(void)
|
_init(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_headers.h,v 1.5 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_headers.h,v 1.6 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isalnum.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_isalnum.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isalpha.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_isalpha.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isascii.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
* $Id: ctype_isascii.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isblank.c,v 1.2 2005-05-29 08:19:36 obarthel Exp $
|
* $Id: ctype_isblank.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_iscntrl.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_iscntrl.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isdigit.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_isdigit.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isgraph.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_isgraph.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_islower.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_islower.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isprint.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_isprint.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_ispunct.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_ispunct.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isspace.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_isspace.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isupper.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_isupper.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isxdigit.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_isxdigit.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_table.c,v 1.3 2005-01-09 15:20:31 obarthel Exp $
|
* $Id: ctype_table.c,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_tolower.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_tolower.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_toupper.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
* $Id: ctype_toupper.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user