mirror of
https://github.com/adtools/clib2.git
synced 2025-12-08 14:59:05 +00:00
Compare commits
366 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2c1084a975 | ||
|
|
f727c0f4c4 | ||
|
|
6a149abc57 | ||
|
|
e3bde26409 | ||
|
|
bbc98790fe | ||
|
|
e7258bf939 | ||
|
|
4444438e8f | ||
|
|
6c50657673 | ||
|
|
7dcc410d0c | ||
|
|
f0503cd915 | ||
|
|
ca20eeab97 | ||
|
|
6148d06dca | ||
|
|
6578b303f7 | ||
|
|
6801a4fcf0 | ||
|
|
fa4223c544 | ||
|
|
91ccaa5ba9 | ||
|
|
234a17cc07 | ||
|
|
a41212e575 | ||
|
|
2591e249d7 | ||
|
|
5ea68e3265 | ||
|
|
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 | ||
|
|
0f5e6747e0 | ||
|
|
a0a46206d1 | ||
|
|
c7fbdf27e1 | ||
|
|
010d4c1c06 | ||
|
|
81958fd44b | ||
|
|
937169c0ba | ||
|
|
dda36eb609 | ||
|
|
867e6d500a | ||
|
|
99e9ebfc15 | ||
|
|
63c08cfe0e | ||
|
|
b6de3e4c48 | ||
|
|
090753282b | ||
|
|
d45da0acd4 | ||
|
|
3480ec40b3 | ||
|
|
f9e782d358 | ||
|
|
44bcf889e5 | ||
|
|
257dd6af88 | ||
|
|
acafd14bc2 | ||
|
|
b63587ed80 | ||
|
|
b861ed19c4 | ||
|
|
ccfea73fc5 | ||
|
|
d74640b15b | ||
|
|
db9a1c69e5 | ||
|
|
cb1f1a4a10 | ||
|
|
bb2376a6ed | ||
|
|
159e55f1e6 | ||
|
|
4e30f5604d | ||
|
|
095a14bf1f | ||
|
|
f84fbc32cb | ||
|
|
3099f6210a | ||
|
|
378e50d2ab | ||
|
|
0d85b41a2d | ||
|
|
7a57c4d499 | ||
|
|
cef75752d9 | ||
|
|
d31a351d6c | ||
|
|
2e56caa3fb | ||
|
|
4cde124d5d | ||
|
|
1d1d340ae1 | ||
|
|
6612118e97 | ||
|
|
5acfef419b | ||
|
|
eb10d40332 | ||
|
|
6aaa439593 | ||
|
|
b76ec2c143 | ||
|
|
773035a695 | ||
|
|
79be2279ec | ||
|
|
b1f08e4123 | ||
|
|
872c9bc39c | ||
|
|
132aaa8293 | ||
|
|
882875d79a | ||
|
|
cd7b02f4d7 | ||
|
|
2ed463f8e3 | ||
|
|
acaf12ee7c | ||
|
|
fdb188da1a | ||
|
|
9d2ab96b56 | ||
|
|
6ba2f7a178 | ||
|
|
525bdde6d5 | ||
|
|
38818e6502 | ||
|
|
ebf5d63bc6 | ||
|
|
2421ffcbb9 | ||
|
|
2bdd055f4b | ||
|
|
039c805161 | ||
|
|
e19974fe47 | ||
|
|
bb41d5e549 | ||
|
|
fd163c7105 | ||
|
|
a3d61a67c8 | ||
|
|
459d57da9c | ||
|
|
3d58795d0f | ||
|
|
e293873dc7 | ||
|
|
17e3b3b0e2 | ||
|
|
ae1ac21c71 | ||
|
|
2025e39014 | ||
|
|
ea09fc96db | ||
|
|
bf0a6e0c43 | ||
|
|
cf74717ead | ||
|
|
f81dfdfca7 | ||
|
|
196ce6e140 | ||
|
|
629e40475f | ||
|
|
85e421feb8 | ||
|
|
3be260b746 | ||
|
|
b78a86774c | ||
|
|
9aba55afba | ||
|
|
426fe0cc61 | ||
|
|
6a13b08f40 | ||
|
|
59807dbff1 | ||
|
|
414e07aa20 | ||
|
|
2a22c4ff0d | ||
|
|
576660ca0a | ||
|
|
5451d3a694 | ||
|
|
c26da2c5e8 | ||
|
|
c3975b1e6e | ||
|
|
a79b05194d | ||
|
|
3975d234bd | ||
|
|
3c220c3939 | ||
|
|
49e98713d4 | ||
|
|
505c23237a | ||
|
|
ffeb475873 | ||
|
|
c3a10b88b5 | ||
|
|
2ced1d3293 | ||
|
|
fb4dae84aa | ||
|
|
a03ced93b0 | ||
|
|
a19d60f524 | ||
|
|
f6d20fee01 | ||
|
|
d4aa0b04af | ||
|
|
df05c80c57 | ||
|
|
a1ffc20864 | ||
|
|
13c857ba0a | ||
|
|
5ecfdf33c6 | ||
|
|
fa31c468dc | ||
|
|
feb29fa334 | ||
|
|
d0a4e057bc | ||
|
|
c5087c78ce | ||
|
|
c5c6492868 | ||
|
|
539cc3553d | ||
|
|
bc65dd2877 | ||
|
|
ec027fa510 | ||
|
|
65484eac3c | ||
|
|
2be60de3e7 | ||
|
|
89b568bcb8 | ||
|
|
2548af2b4b | ||
|
|
a1b39c4d01 | ||
|
|
9e32991a6d | ||
|
|
c8d29ea9c1 | ||
|
|
28f561c61b | ||
|
|
07056f3e26 | ||
|
|
3bd6766484 | ||
|
|
e01d58319d | ||
|
|
ec4fd3c2cb | ||
|
|
df89c636db | ||
|
|
90a192134e | ||
|
|
3660b26c9f | ||
|
|
9f3d5e50b4 | ||
|
|
876039440f | ||
|
|
0c553faff1 | ||
|
|
1d611fefbe | ||
|
|
a50aba0b64 | ||
|
|
2e9ac7d003 | ||
|
|
0a440c8405 | ||
|
|
f63a0788d5 | ||
|
|
431dd488a1 | ||
|
|
15c16efd07 | ||
|
|
6e39efe7d7 | ||
|
|
92cc3e9a79 | ||
|
|
a18f415374 | ||
|
|
3096691d75 | ||
|
|
d5c36d66e4 | ||
|
|
7f9fbc453b | ||
|
|
6f010ddf87 | ||
|
|
09b52e077f | ||
|
|
9c2c44b008 | ||
|
|
df01f27551 | ||
|
|
58d26ce8cb | ||
|
|
b1ac45a0b9 | ||
|
|
aafda37c84 | ||
|
|
3eb15a612f | ||
|
|
590d1b8eec | ||
|
|
1fbe4bd0a5 | ||
|
|
8edfcc3f86 | ||
|
|
a6daababe7 | ||
|
|
5695784272 | ||
|
|
5eefcf4555 | ||
|
|
d85d6648ea | ||
|
|
c471c50784 | ||
|
|
cd10dc9a1a | ||
|
|
7d3ea7fae6 | ||
|
|
ead29c1850 | ||
|
|
f492e6a6c0 | ||
|
|
dc80018239 | ||
|
|
966851e8bd | ||
|
|
a60623bbc6 | ||
|
|
d8bf652ae6 | ||
|
|
b048323196 | ||
|
|
08cc54d3fa | ||
|
|
419172fb0e | ||
|
|
f289140266 | ||
|
|
86b7e5c429 | ||
|
|
42963b39c4 | ||
|
|
678cab02fb | ||
|
|
59d7f8d07f | ||
|
|
9a7c8a8705 | ||
|
|
96e74015f0 | ||
|
|
db8710d2ae | ||
|
|
91f12dd8f0 | ||
|
|
d2f157b0a1 | ||
|
|
e3e82b3657 | ||
|
|
4d3dc4a77f | ||
|
|
ee556fcb35 | ||
|
|
cc8a8e42c0 | ||
|
|
0fad53e56e | ||
|
|
d33e3e909e | ||
|
|
ef43011783 | ||
|
|
a9c8cdc554 | ||
|
|
d370bd123b | ||
|
|
6931123dc1 | ||
|
|
b2ddf28fa7 | ||
|
|
1bc19a04d3 | ||
|
|
1a0999bc1c | ||
|
|
1bf430d1d6 | ||
|
|
f2d1a3238d | ||
|
|
2c3bd39f71 | ||
|
|
0deb0e3e2d | ||
|
|
dd380f8479 | ||
|
|
ec3d921f7b | ||
|
|
ebd6cc3639 | ||
|
|
7690bb8399 | ||
|
|
2aba208878 | ||
|
|
593caccb38 | ||
|
|
ac0cc97924 | ||
|
|
ef44c75126 | ||
|
|
9a8fe330a9 | ||
|
|
17d81c12c0 | ||
|
|
c799b17bb9 | ||
|
|
1df294c07e | ||
|
|
f51faeb168 | ||
|
|
c0c70bfd99 | ||
|
|
b10d1ad38c | ||
|
|
1550c6fef3 | ||
|
|
53d99ac7a2 | ||
|
|
c4c25649f2 | ||
|
|
18f1f75479 | ||
|
|
410833d2ed | ||
|
|
cfa6f566db | ||
|
|
99547756fe | ||
|
|
ea638f0970 | ||
|
|
4aa85e1d12 | ||
|
|
fcb8cfc0dc | ||
|
|
a626336b7b | ||
|
|
07d09bb185 | ||
|
|
6ad88ff97f | ||
|
|
2ddfeab0cf | ||
|
|
91028c63bc | ||
|
|
209884bd1f | ||
|
|
3548d3cf7e | ||
|
|
50b8b623cc | ||
|
|
49bc1d6b13 | ||
|
|
fce21e21d6 | ||
|
|
f8b1e7516f |
@@ -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,19 +0,0 @@
|
|||||||
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 "netinclude" which has to sit in the same directory as
|
|
||||||
the source code and the "include" 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.
|
|
||||||
|
|
||||||
The SAS/C flavour (smakefile) 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 (startup.o) and doesn't tinker with A4 relative data
|
|
||||||
addressing (and how this may be set up).
|
|
||||||
|
|
||||||
There are two makefiles for GCC, each a different flavour. There is "GNUmakefile.68k",
|
|
||||||
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 ("GNUmakefile.os4"). 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.
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
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 "specs" 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.
|
|
||||||
|
|
||||||
Please read the following description before you follow the instructions. The
|
|
||||||
changes suggested may have unexpected side-effects!
|
|
||||||
|
|
||||||
I have provided a working "specs" file with this documentation file. To switch
|
|
||||||
over an existing Amiga 68k port of GCC to use clib2, you would proceed as
|
|
||||||
follows:
|
|
||||||
|
|
||||||
- Locate the directory within which GCC is installed. For example, this
|
|
||||||
could be within a directory to which the name "ADE:", "GG:" or "GCC:"
|
|
||||||
is assigned. For the sake of simplicity, the following notes assume
|
|
||||||
that the assignment name is "GCC:"
|
|
||||||
|
|
||||||
- Make backup copies of the following directories and files:
|
|
||||||
|
|
||||||
GCC:lib/gcc-lib/amigaos/2.95.3/specs
|
|
||||||
|
|
||||||
(NOTE: Check the directory called "GCC:lib/gcc-lib/amigaos"
|
|
||||||
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!)
|
|
||||||
|
|
||||||
GCC:include
|
|
||||||
GCC:lib
|
|
||||||
|
|
||||||
- Now you can proceed to install clib2; just copy the "include" and "lib"
|
|
||||||
directories over, like this:
|
|
||||||
|
|
||||||
Copy include GCC:include all quiet
|
|
||||||
Copy lib GCC:lib all quiet
|
|
||||||
|
|
||||||
- Finally, replace the "specs" file with the one provided:
|
|
||||||
|
|
||||||
Copy specs GCC:lib/gcc-lib/amigaos/2.95.3/specs
|
|
||||||
|
|
||||||
(NOTE: Check the directory called "GCC:lib/gcc-lib/amigaos"
|
|
||||||
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!)
|
|
||||||
|
|
||||||
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!
|
|
||||||
@@ -1,235 +0,0 @@
|
|||||||
An ISO 'C' (1994) compliant runtime library for the Amiga
|
|
||||||
=========================================================
|
|
||||||
|
|
||||||
1. What is this?
|
|
||||||
|
|
||||||
This is my attempt to get Samba 2.2.x ported to the Amiga. My first Amiga
|
|
||||||
port required SAS/C and a number of strange tricks had to be pulled to get
|
|
||||||
it to support the kind of environment Samba needed. But with the
|
|
||||||
introduction of Samba 2.2.x many of those tricks did not work any more,
|
|
||||||
which is why I decided to attack the problem at the root, namely the
|
|
||||||
runtime library.
|
|
||||||
|
|
||||||
Because it was no longer possible to build Samba with SAS/C on the new
|
|
||||||
Amiga platform, the idea came up to move development to the GNU 'C'
|
|
||||||
compiler. This turned out to be a challenge due to its somewhat
|
|
||||||
underdeveloped runtime library and header files. Eventually, I decided to
|
|
||||||
rewrite that library from scratch.
|
|
||||||
|
|
||||||
|
|
||||||
2. What does it do?
|
|
||||||
|
|
||||||
Using "'C' - A reference manual" as a reference I wrote a set of header
|
|
||||||
files, then proceeded to implement each single function referenced in them.
|
|
||||||
With few exceptions in the area of wide character support, the result
|
|
||||||
should be a feature complete implementation of the ISO 'C' (1994) runtime
|
|
||||||
library.
|
|
||||||
|
|
||||||
Because Samba needs a few POSIX-like routines to be supported, the library
|
|
||||||
functionality is complemented by a set of routines described in "Advanced
|
|
||||||
programming in the Unix environent". This set is not complete, however. It
|
|
||||||
will have to grow even further to accomodate for Samba's needs, but this is
|
|
||||||
a good start. I specifically added hooks for integrating socket I/O at a
|
|
||||||
later point of time.
|
|
||||||
|
|
||||||
This is not a portable implementation of the library in the sense that you
|
|
||||||
could move it from one 'C' compiler on one operating system to another.
|
|
||||||
This is an Amiga specific implementation.
|
|
||||||
|
|
||||||
The library supports floating point math, which is limited to IEEE single
|
|
||||||
and double precision or M68881 inline math. There is no support for the
|
|
||||||
fast floating point (FFP) format or exclusive IEEE single precision. You
|
|
||||||
either get double precision (IEEE math) or extended precision (M68881
|
|
||||||
inline math). What it is that you get is determined at compile time. Use
|
|
||||||
the IEEE_FLOATING_POINT_SUPPORT preprocessor symbol to activate IEEE math
|
|
||||||
code and the M68881_FLOATING_POINT_SUPPORT symbol for M68881 inline math.
|
|
||||||
|
|
||||||
Not unlike SAS/C, you can configure a minimum stack size the program is to
|
|
||||||
use when it starts up. This is controlled via the '__stack_size' variable
|
|
||||||
(see "stdlib_main.c").
|
|
||||||
|
|
||||||
I added some amiga.lib and debug.lib functionality to the library, but
|
|
||||||
don't count on it to be complete.
|
|
||||||
|
|
||||||
|
|
||||||
3. What does it not do?
|
|
||||||
|
|
||||||
This library is a departure from the typical 'C' runtime environments of
|
|
||||||
the past which had to run on all AmigaOS releases, down to Kickstart 1.1.
|
|
||||||
This very library was designed to take advantage of the routines available
|
|
||||||
since Kickstart 2.04 was introduced and virtually nobody ever put to use.
|
|
||||||
This helps to cut the code size, and it also helps to keep bugs out of the
|
|
||||||
library by falling back onto well-tested implementations. However, the
|
|
||||||
catch is that the code won't run under Kickstart 1.3 and below. But then
|
|
||||||
these operating system releases have been obsolete for more than a decade,
|
|
||||||
and you can always go back to a compiler environment which supports them.
|
|
||||||
|
|
||||||
Practically all library routines are implemented in a sort of naïve
|
|
||||||
fashion. That is, they contain virtually no optimizations whatsoever. This
|
|
||||||
is particularly apparent in workhorses such as memset() or memmove(). But
|
|
||||||
then, the issue is easy testability and Amiga platform portability.
|
|
||||||
|
|
||||||
There is very little support for amiga.lib functionality. There is
|
|
||||||
NewList(), HookEntry(), CallHook(), CallHookA(), the DoMethod() family, the
|
|
||||||
RexxVars family, but that's all. If you need more, you would have to
|
|
||||||
implement it yourself. Put another way, if you absolutely need
|
|
||||||
functionality that is only found in amiga.lib, you really shouldn't need in
|
|
||||||
in the first place.
|
|
||||||
|
|
||||||
|
|
||||||
4. Where does the source code come from?
|
|
||||||
|
|
||||||
I originally thought that it might be helpful to piece this library
|
|
||||||
together from various sources, such as the BSD libc. Turned out that this
|
|
||||||
code was so 'portable' that it became much more complex than it ought to
|
|
||||||
be. Also, some side-effects were present which considerably changed the
|
|
||||||
behaviour of the library. For example, the BSD libc uses bcopy() as an
|
|
||||||
alias for memcpy(), and unlike memcpy() is documented to, bcopy() supports
|
|
||||||
overlapping copies.
|
|
||||||
|
|
||||||
Eventually, I wrote virtually all the code myself, borrowing algorithmic
|
|
||||||
ideas from the BSD libc and the Manx Aztec 'C' runtime library. Because I
|
|
||||||
don't know much about the environment GCC expects, I borrowed code snippets
|
|
||||||
from libnix, which was written by Matthias Fleischer and Gunther Nikl. This
|
|
||||||
in particular concerns the integer and floating point math support, the
|
|
||||||
setjmp/longjmp routines and the startup code. The M68881 inline math code
|
|
||||||
comes from the <math-68881.h> file written by Matthew Self
|
|
||||||
(self@bayes.arc.nasa.gov).
|
|
||||||
|
|
||||||
|
|
||||||
5. Limitations and caveats
|
|
||||||
|
|
||||||
There is hardly any documentation on the code I wrote. In part this is due
|
|
||||||
to the fact that the code itself is very simple in design. It should speak
|
|
||||||
for itself. However, to make a usable runtime library you have to have a
|
|
||||||
user documentation as in man pages or autodocs. We will eventually have to
|
|
||||||
have autodocs for this library.
|
|
||||||
|
|
||||||
The code is currently plastered with assertions and debug code. It is
|
|
||||||
therefore much larger than it ought to be and runs much slower than it
|
|
||||||
ought to be. For example, the malloc() routine will set the contents of the
|
|
||||||
memory allocated to a 'dirty' bit pattern which is likely to break software
|
|
||||||
which makes assumptions about its contents. Likewise, the free() routine
|
|
||||||
will trash the memory to deallocate with a different 'dirty' bit pattern to
|
|
||||||
turn up reuse of memory after deallocation. All these debugging features
|
|
||||||
can be disabled by defining the NDEBUG preprocessor symbol at compile time
|
|
||||||
(see <assert.h>).
|
|
||||||
|
|
||||||
The exception handling in the math code is not particularly effective. For
|
|
||||||
one part this is due to the fact that there is no exception handler
|
|
||||||
installed by the runtime library when it starts up which could catch and
|
|
||||||
process the error conditions the CPU or FPU generates. The idea was to
|
|
||||||
provide for a portable runtime library with little to no assembly language
|
|
||||||
involved. To make the exception handling complete, such code would be
|
|
||||||
necessary.
|
|
||||||
|
|
||||||
The library currently builds under SAS/C, but because the 'normal' program
|
|
||||||
startup code is not utilized, the base relative (A4) addressing does not
|
|
||||||
work. If you are going to test it, use the data=faronly option to compile
|
|
||||||
the library and the programs.
|
|
||||||
|
|
||||||
If you are going to rebuild the library with SAS/C you will need to
|
|
||||||
reassign INCLUDE: to point to the local 'include' directory or things won't
|
|
||||||
work.
|
|
||||||
|
|
||||||
|
|
||||||
6. Conventions and design issues
|
|
||||||
|
|
||||||
You will have noticed the 330+ files in this directory. This is not the
|
|
||||||
best way to organize a runtime library, but at least all the bits and
|
|
||||||
pieces are in plain sight. Each file stands for the one or two routines it
|
|
||||||
contains. The name indicates what routine(s) that might be. Each file name
|
|
||||||
is prefixed by the name of the header file in which the corresponding
|
|
||||||
routine is defined. So, for example, you will find that "unistd_lchown.c"
|
|
||||||
contains the definition of the lchown() routine, which has its prototype
|
|
||||||
defined in the <unistd.h> header file.
|
|
||||||
|
|
||||||
Internal function and variable names are prefixed with two underscores, as
|
|
||||||
in '__stdio_init()'.
|
|
||||||
|
|
||||||
All routines attempt to do error checking on their parameters. They will
|
|
||||||
either drop into an assert() or set an errno value and refuse to go any
|
|
||||||
further. This cuts performance but should help to catch the simple bugs
|
|
||||||
quite easily (NULL pointers).
|
|
||||||
|
|
||||||
Just like any halfway sane Amiga 'C' runtime library, this one performs its
|
|
||||||
^C checking in the I/O routines. Typically once upon entry and in every
|
|
||||||
iteration of the loop there might be it will quickly poll the ^C signal and
|
|
||||||
drop into raise(SIGINT) in case the signal is set. This is just about the
|
|
||||||
safest method to solve the problem and should be much more robust than the
|
|
||||||
ixemul approach of 'interrupt anywhere - crash anywhere' using the task
|
|
||||||
switch/launch hooks to test for signals.
|
|
||||||
|
|
||||||
By default all library routines follow the ISO 'C' conventions in that
|
|
||||||
where implementation defined behaviour is permitted, the AmigaOS rules are
|
|
||||||
followed. For example, unlink() will by default operate like DeleteFile()
|
|
||||||
and rename() will return with an error code set if the name of the
|
|
||||||
file/directory to be renamed would collide with an existing directory
|
|
||||||
entry. However, your program can set a global variable '__unix_semantics'
|
|
||||||
which will cause some routines to perform like their Unix counterparts.
|
|
||||||
This is necessary for Samba to work but not a generally desirable feature.
|
|
||||||
You have some Unix-like behaviour, but the environment itself is not
|
|
||||||
completely Unix- or POSIX-compliant. And it shouldn't be. Don't make the
|
|
||||||
mistake of trying to mold the environment into a POSIX emulation. It
|
|
||||||
doesn't work; AmigaOS is not Unix.
|
|
||||||
|
|
||||||
|
|
||||||
7. The startup code
|
|
||||||
|
|
||||||
There are three program startup files provided. The most simplistic is in
|
|
||||||
'startup.c' which I use for SAS/C. It just invokes the setup routine which
|
|
||||||
eventually calls main() and drops straight into exit().
|
|
||||||
|
|
||||||
The ncrt0.S file was adapted from the libnix startup code which sets up the
|
|
||||||
base relative data area, if necessary (the SMALL_DATA preprocessor symbol
|
|
||||||
must be defined).
|
|
||||||
|
|
||||||
The nrcrt0.S file was adapted from libnix startup code, too, and sets up
|
|
||||||
the base relative data area for programs to be made resident. Note that the
|
|
||||||
geta4() stub is missing here; it wouldn't work in a resident program
|
|
||||||
anyway.
|
|
||||||
|
|
||||||
The ncrt0.S and nrcrt0.S files are considerably smaller and less complex
|
|
||||||
than the libnix code they are based on. This is because in this library
|
|
||||||
design all the more complex tasks are performed in the stdlib_main.c file
|
|
||||||
rather than in assembly language.
|
|
||||||
|
|
||||||
|
|
||||||
8. Documentation
|
|
||||||
|
|
||||||
Well, you're reading it. There isn't anything much yet. You can consult the book
|
|
||||||
"'C' - A reference manual" and you could look at the Open Group's Single Unix
|
|
||||||
Specification at <http://www.opengroup.org/onlinepubs/007904975>.
|
|
||||||
|
|
||||||
|
|
||||||
9. Legal status
|
|
||||||
|
|
||||||
Because this library is in part based upon free software it would be uncourteous
|
|
||||||
not to make it free software itself. The BSD license would probably be
|
|
||||||
appropriate here.
|
|
||||||
|
|
||||||
The PowerPC math library is based in part on work by Sun Microsystems:
|
|
||||||
|
|
||||||
====================================================
|
|
||||||
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
|
||||||
|
|
||||||
Developed at SunPro, a Sun Microsystems, Inc. business.
|
|
||||||
Permission to use, copy, modify, and distribute this
|
|
||||||
software is freely granted, provided that this notice
|
|
||||||
is preserved.
|
|
||||||
====================================================
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
10. Contacting the author
|
|
||||||
|
|
||||||
The basic work was done by Olaf Barthel during two weeks in July 2002. You
|
|
||||||
can reach me at:
|
|
||||||
|
|
||||||
Olaf Barthel
|
|
||||||
Gneisenaustr. 43
|
|
||||||
D-31275 Lehrte
|
|
||||||
|
|
||||||
Or via e-mail:
|
|
||||||
|
|
||||||
olsen@sourcery.han.de
|
|
||||||
@@ -1,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} %{m68881:-fl libm881}
|
|
||||||
|
|
||||||
*lib:
|
|
||||||
%{mstackextend:-lstack} -lc -lamiga -ldebug -lgcc -lc
|
|
||||||
|
|
||||||
*libgcc:
|
|
||||||
|
|
||||||
|
|
||||||
*startfile:
|
|
||||||
%{resident32:nr32crt0.o%s mainb32.o%s}%{!resident32:%{fbaserel32:nb32crt0.o%s mainb32.o%s}%{!fbaserel32:%{resident:nrcrt0.o%s mainb.o%s}%{!resident:%{fbaserel:nbcrt0.o%s mainb.o%s}%{!fbaserel:ncrt0.o%s mainnb.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,18 +1,36 @@
|
|||||||
#
|
#
|
||||||
# $Id: GNUmakefile.68k,v 1.23 2005-01-29 18:05:13 obarthel Exp $
|
# $Id: GNUmakefile.68k,v 1.106 2008-04-16 07:38:10 obarthel Exp $
|
||||||
#
|
#
|
||||||
# :ts=8
|
# :ts=8
|
||||||
#
|
#
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
############################################
|
||||||
|
# find out the HOST operating system
|
||||||
|
# on which this makefile is run (default to AmigaOS)
|
||||||
|
HOST ?= $(shell uname)
|
||||||
|
ifeq ($(HOST),)
|
||||||
|
HOST = AmigaOS
|
||||||
|
endif
|
||||||
|
|
||||||
CC = gcc
|
CC = gcc
|
||||||
AR = ar -q
|
AR = ar -q
|
||||||
RANLIB = ranlib
|
RANLIB = ranlib
|
||||||
COPY = copy clone buf=0
|
COPY = copy clone buf=0
|
||||||
DELETE = delete all quiet
|
DELETE = delete all quiet
|
||||||
MAKEDIR = makedir
|
MAKEDIR = makedir
|
||||||
MAKE = make -f GNUmakefile.68k
|
MAKE = $(MAKE_COMMAND) -f GNUmakefile.68k
|
||||||
|
|
||||||
|
# override certain things for non-native builds
|
||||||
|
ifneq ($(HOST), AmigaOS)
|
||||||
|
CC = m68k-amigaos-gcc
|
||||||
|
AR = m68k-amigaos-ar -q
|
||||||
|
RANLIB = m68k-amigaos-ranlib
|
||||||
|
COPY = cp
|
||||||
|
DELETE = rm -rf
|
||||||
|
MAKEDIR = mkdir -p
|
||||||
|
endif
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@@ -21,7 +39,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 +47,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
|
||||||
@@ -52,15 +68,11 @@ $(LIBUNIX_OBJS)/%.o : %.c
|
|||||||
|
|
||||||
$(LIBM_OBJS)/%.o : %.c
|
$(LIBM_OBJS)/%.o : %.c
|
||||||
@echo "Compiling $< [$(TYPE):m]"
|
@echo "Compiling $< [$(TYPE):m]"
|
||||||
@$(CC) -o $(LIBM_OBJS)/$*.o -c $(CFLAGS) -DIEEE_FLOATING_POINT_SUPPORT $<
|
@$(CC) -o $(LIBM_OBJS)/$*.o -c $(CFLAGS) -msoft-float -DIEEE_FLOATING_POINT_SUPPORT $<
|
||||||
|
|
||||||
$(LIBM881_OBJS)/%.o : %.c
|
$(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) -m68881 -DM68881_FLOATING_POINT_SUPPORT $<
|
||||||
|
|
||||||
$(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]"
|
||||||
@@ -77,42 +89,52 @@ $(LIBAMIGA_OBJS)/%.o : %.c
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
ifeq (small_data_020,$(TYPE))
|
ifeq (small_data_020,$(TYPE))
|
||||||
CODE_TYPE := -fbaserel -DSMALL_DATA -m68020-60 -DM68020
|
CODE_TYPE := -m68020-60
|
||||||
|
CODE_FLAGS := -fbaserel -DSMALL_DATA -DM68020 -DUSE_64_BIT_INTS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (small_data,$(TYPE))
|
ifeq (small_data,$(TYPE))
|
||||||
CODE_TYPE := -fbaserel -DSMALL_DATA -m68000
|
CODE_TYPE := -m68000
|
||||||
|
CODE_FLAGS := -fbaserel -DSMALL_DATA
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (small_data32,$(TYPE))
|
ifeq (small_data32,$(TYPE))
|
||||||
CODE_TYPE := -fbaserel32 -DSMALL_DATA32 -m68020-60 -DM68020
|
CODE_TYPE := -m68020-60
|
||||||
|
CODE_FLAGS := -fbaserel32 -DSMALL_DATA32 -DM68020 -DUSE_64_BIT_INTS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (large_data_020,$(TYPE))
|
ifeq (large_data_020,$(TYPE))
|
||||||
CODE_TYPE := -m68020-60 -DM68020
|
CODE_TYPE := -m68020-60
|
||||||
|
CODE_FLAGS := -DM68020 -DUSE_64_BIT_INTS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (large_data,$(TYPE))
|
ifeq (large_data,$(TYPE))
|
||||||
CODE_TYPE := -m68000
|
CODE_TYPE := -m68000
|
||||||
|
CODE_FLAGS :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
WARNINGS = \
|
WARNINGS = \
|
||||||
-Wall -W -Wpointer-arith -Wsign-compare -Wmissing-prototypes \
|
-Wall -W -Wpointer-arith -Wsign-compare -Wmissing-prototypes \
|
||||||
-Wundef -Wbad-function-cast -Wmissing-declarations
|
-Wundef -Wbad-function-cast -Wmissing-declarations -Wunused
|
||||||
|
|
||||||
# -Wconversion -Wshadow
|
# -Wconversion -Wshadow
|
||||||
|
|
||||||
INCLUDES = -Iinclude -I. -Inetinclude
|
INCLUDES = -Iinclude -I. -Inetinclude
|
||||||
OPTIONS = -DNDEBUG -fno-builtin
|
#OPTIONS = -fno-builtin -fno-common -DDEBUG
|
||||||
#OPTIONS = -D__MEM_DEBUG -fno-builtin
|
OPTIONS = -fno-builtin -fno-common -DNDEBUG
|
||||||
#OPTIONS = -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG -fno-builtin
|
#OPTIONS = -fno-builtin -fno-common -DNDEBUG -D__THREAD_SAFE
|
||||||
#OPTIMIZE = -O -fomit-frame-pointer -fstrength-reduce -finline-functions
|
#OPTIONS = -fno-builtin -fno-common -D__MEM_DEBUG
|
||||||
|
#OPTIONS = -fno-builtin -fno-common -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG
|
||||||
|
#OPTIMIZE = -O3 -fomit-frame-pointer -funroll-loops -finline-functions
|
||||||
|
OPTIMIZE = -O -fomit-frame-pointer -fstrength-reduce -finline-functions
|
||||||
#OPTIMIZE = -O2 -fomit-frame-pointer
|
#OPTIMIZE = -O2 -fomit-frame-pointer
|
||||||
#DEBUG = -g2
|
#DEBUG = -g
|
||||||
|
|
||||||
CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_TYPE) $(INCLUDES)
|
CFLAGS = \
|
||||||
|
$(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) \
|
||||||
|
$(CODE_FLAGS) $(INCLUDES) $(CODE_TYPE)
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@@ -121,6 +143,7 @@ C_LIB = \
|
|||||||
ctype_isalnum.o \
|
ctype_isalnum.o \
|
||||||
ctype_isalpha.o \
|
ctype_isalpha.o \
|
||||||
ctype_isascii.o \
|
ctype_isascii.o \
|
||||||
|
ctype_isblank.o \
|
||||||
ctype_iscntrl.o \
|
ctype_iscntrl.o \
|
||||||
ctype_isdigit.o \
|
ctype_isdigit.o \
|
||||||
ctype_isgraph.o \
|
ctype_isgraph.o \
|
||||||
@@ -130,27 +153,34 @@ C_LIB = \
|
|||||||
ctype_isspace.o \
|
ctype_isspace.o \
|
||||||
ctype_isupper.o \
|
ctype_isupper.o \
|
||||||
ctype_isxdigit.o \
|
ctype_isxdigit.o \
|
||||||
|
ctype_table.o \
|
||||||
ctype_tolower.o \
|
ctype_tolower.o \
|
||||||
ctype_toupper.o \
|
ctype_toupper.o \
|
||||||
ctype_table.o \
|
|
||||||
dirent_closedir.o \
|
dirent_closedir.o \
|
||||||
dirent_data.o \
|
|
||||||
dirent_rewinddir.o \
|
|
||||||
dirent_opendir.o \
|
dirent_opendir.o \
|
||||||
dirent_readdir.o \
|
dirent_readdir.o \
|
||||||
|
dirent_rewinddir.o \
|
||||||
errno_data.o \
|
errno_data.o \
|
||||||
fcntl_close.o \
|
fcntl_close.o \
|
||||||
fcntl_creat.o \
|
fcntl_creat.o \
|
||||||
fcntl_fcntl.o \
|
fcntl_fcntl.o \
|
||||||
|
fcntl_get_default_file.o \
|
||||||
|
fcntl_lock.o \
|
||||||
fcntl_lseek.o \
|
fcntl_lseek.o \
|
||||||
fcntl_open.o \
|
fcntl_open.o \
|
||||||
fcntl_read.o \
|
fcntl_read.o \
|
||||||
fcntl_write.o \
|
fcntl_write.o \
|
||||||
fcntl_get_default_file.o \
|
ftw_ftw.o \
|
||||||
|
ftw_nftw.o \
|
||||||
|
inttypes_imaxdiv.o \
|
||||||
|
inttypes_imaxabs.o \
|
||||||
|
inttypes_strtoimax.o \
|
||||||
|
inttypes_strtoumax.o \
|
||||||
libgen_basename.o \
|
libgen_basename.o \
|
||||||
libgen_dirname.o \
|
libgen_dirname.o \
|
||||||
locale_init_exit.o \
|
locale_init_exit.o \
|
||||||
locale_localeconv.o \
|
locale_localeconv.o \
|
||||||
|
locale_open_locale.o \
|
||||||
locale_setlocale.o \
|
locale_setlocale.o \
|
||||||
mount_convertinfo.o \
|
mount_convertinfo.o \
|
||||||
mount_fstatfs.o \
|
mount_fstatfs.o \
|
||||||
@@ -158,6 +188,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 \
|
||||||
@@ -168,31 +199,35 @@ C_LIB = \
|
|||||||
signal_sigsetmask.o \
|
signal_sigsetmask.o \
|
||||||
stat_chmod.o \
|
stat_chmod.o \
|
||||||
stat_convertfileinfo.o \
|
stat_convertfileinfo.o \
|
||||||
stat_data.o \
|
|
||||||
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_data.o \
|
|
||||||
stdio_dropiobreadbuffer.o \
|
stdio_dropiobreadbuffer.o \
|
||||||
stdio_duplicate_fd.o \
|
stdio_duplicate_fd.o \
|
||||||
|
stdio_examine_fh.o \
|
||||||
stdio_fclose.o \
|
stdio_fclose.o \
|
||||||
stdio_fdhookentry.o \
|
stdio_fdhookentry.o \
|
||||||
stdio_feof.o \
|
stdio_feof.o \
|
||||||
stdio_ferror.o \
|
stdio_ferror.o \
|
||||||
stdio_fflush.o \
|
stdio_fflush.o \
|
||||||
stdio_flush.o \
|
|
||||||
stdio_fgetc.o \
|
stdio_fgetc.o \
|
||||||
stdio_fgetpos.o \
|
stdio_fgetpos.o \
|
||||||
stdio_fgets.o \
|
stdio_fgets.o \
|
||||||
stdio_filliobreadbuffer.o \
|
stdio_filliobreadbuffer.o \
|
||||||
stdio_findvacantfdentry.o \
|
stdio_findvacantfdentry.o \
|
||||||
stdio_findvacantiobentry.o \
|
stdio_findvacantiobentry.o \
|
||||||
|
stdio_flockfile.o \
|
||||||
|
stdio_flush.o \
|
||||||
|
stdio_flush_all_files.o \
|
||||||
stdio_flushiobwritebuffer.o \
|
stdio_flushiobwritebuffer.o \
|
||||||
stdio_fopen.o \
|
stdio_fopen.o \
|
||||||
stdio_fprintf.o \
|
stdio_fprintf.o \
|
||||||
@@ -202,30 +237,45 @@ C_LIB = \
|
|||||||
stdio_freopen.o \
|
stdio_freopen.o \
|
||||||
stdio_fscanf.o \
|
stdio_fscanf.o \
|
||||||
stdio_fseek.o \
|
stdio_fseek.o \
|
||||||
|
stdio_fseeko.o \
|
||||||
stdio_fsetpos.o \
|
stdio_fsetpos.o \
|
||||||
stdio_ftell.o \
|
stdio_ftell.o \
|
||||||
|
stdio_ftello.o \
|
||||||
|
stdio_ftrylockfile.o \
|
||||||
|
stdio_funlockfile.o \
|
||||||
stdio_fwrite.o \
|
stdio_fwrite.o \
|
||||||
stdio_getc.o \
|
stdio_getc.o \
|
||||||
|
stdio_getc_unlocked.o \
|
||||||
stdio_getchar.o \
|
stdio_getchar.o \
|
||||||
stdio_get_file_descriptor.o \
|
stdio_getchar_unlocked.o \
|
||||||
stdio_gets.o \
|
stdio_gets.o \
|
||||||
|
stdio_get_fd.o \
|
||||||
|
stdio_get_file_descriptor.o \
|
||||||
stdio_growfdtable.o \
|
stdio_growfdtable.o \
|
||||||
stdio_growiobtable.o \
|
stdio_growiobtable.o \
|
||||||
|
stdio_grow_file.o \
|
||||||
stdio_initializefd.o \
|
stdio_initializefd.o \
|
||||||
stdio_initializeiob.o \
|
stdio_initializeiob.o \
|
||||||
stdio_init_exit.o \
|
stdio_init_exit.o \
|
||||||
|
stdio_file_init.o \
|
||||||
stdio_iobhookentry.o \
|
stdio_iobhookentry.o \
|
||||||
|
stdio_lock.o \
|
||||||
stdio_locksemaphorename.o \
|
stdio_locksemaphorename.o \
|
||||||
stdio_nostdio.o \
|
stdio_nostdio.o \
|
||||||
stdio_openiob.o \
|
stdio_openiob.o \
|
||||||
|
stdio_parent_of_fh.o \
|
||||||
stdio_perror.o \
|
stdio_perror.o \
|
||||||
stdio_popen.o \
|
stdio_popen.o \
|
||||||
stdio_printf.o \
|
stdio_printf.o \
|
||||||
stdio_putc.o \
|
stdio_putc.o \
|
||||||
|
stdio_putc_unlocked.o \
|
||||||
stdio_putchar.o \
|
stdio_putchar.o \
|
||||||
|
stdio_putchar_unlocked.o \
|
||||||
stdio_puts.o \
|
stdio_puts.o \
|
||||||
stdio_remove.o \
|
stdio_remove.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 \
|
||||||
@@ -238,6 +288,7 @@ C_LIB = \
|
|||||||
stdio_tmpnam.o \
|
stdio_tmpnam.o \
|
||||||
stdio_translateioerror.o \
|
stdio_translateioerror.o \
|
||||||
stdio_ungetc.o \
|
stdio_ungetc.o \
|
||||||
|
stdio_unlockfile.o \
|
||||||
stdio_vasprintf.o \
|
stdio_vasprintf.o \
|
||||||
stdio_vasprintf_hook_entry.o \
|
stdio_vasprintf_hook_entry.o \
|
||||||
stdio_vfprintf.o \
|
stdio_vfprintf.o \
|
||||||
@@ -247,20 +298,23 @@ C_LIB = \
|
|||||||
stdio_vsnprintf_hook_entry.o \
|
stdio_vsnprintf_hook_entry.o \
|
||||||
stdio_vsprintf.o \
|
stdio_vsprintf.o \
|
||||||
stdio_vsprintf_hook_entry.o \
|
stdio_vsprintf_hook_entry.o \
|
||||||
|
stdio_vsscanf.o \
|
||||||
|
stdio_vscanf.o \
|
||||||
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 \
|
||||||
stdlib_atol.o \
|
stdlib_atol.o \
|
||||||
|
stdlib_atoll.o \
|
||||||
stdlib_bsearch.o \
|
stdlib_bsearch.o \
|
||||||
stdlib_calloc.o \
|
stdlib_calloc.o \
|
||||||
stdlib_checkdetach.o \
|
stdlib_checkdetach.o \
|
||||||
stdlib_constructor.o \
|
stdlib_constructor.o \
|
||||||
stdlib_constructor_begin.o \
|
stdlib_constructor_begin.o \
|
||||||
stdlib_constructor_end.o \
|
|
||||||
stdlib_data.o \
|
|
||||||
stdlib_default_pool_size.o \
|
stdlib_default_pool_size.o \
|
||||||
stdlib_default_puddle_size.o \
|
stdlib_default_puddle_size.o \
|
||||||
stdlib_destructor.o \
|
stdlib_destructor.o \
|
||||||
@@ -274,12 +328,19 @@ 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_init_exit.o \
|
stdlib_get_errno.o \
|
||||||
stdlib_isresident.o \
|
stdlib_isresident.o \
|
||||||
stdlib_labs.o \
|
stdlib_labs.o \
|
||||||
|
stdlib_llabs.o \
|
||||||
stdlib_ldiv.o \
|
stdlib_ldiv.o \
|
||||||
|
stdlib_lldiv.o \
|
||||||
|
stdlib_lib_main.o \
|
||||||
|
stdlib_lib_startup.o \
|
||||||
stdlib_machine_test.o \
|
stdlib_machine_test.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 \
|
||||||
@@ -292,17 +353,21 @@ C_LIB = \
|
|||||||
stdlib_oslibversion.o \
|
stdlib_oslibversion.o \
|
||||||
stdlib_priority.o \
|
stdlib_priority.o \
|
||||||
stdlib_process_name.o \
|
stdlib_process_name.o \
|
||||||
|
stdlib_program_name.o \
|
||||||
stdlib_putenv.o \
|
stdlib_putenv.o \
|
||||||
stdlib_qsort.o \
|
stdlib_qsort.o \
|
||||||
stdlib_rand.o \
|
stdlib_rand.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_setenv.o \
|
stdlib_setenv.o \
|
||||||
stdlib_setjmp.o \
|
stdlib_setjmp.o \
|
||||||
|
stdlib_set_errno.o \
|
||||||
stdlib_set_process_window.o \
|
stdlib_set_process_window.o \
|
||||||
stdlib_shell_escape.o \
|
stdlib_shell_escape.o \
|
||||||
stdlib_showerror.o \
|
stdlib_showerror.o \
|
||||||
stdlib_socket.o \
|
|
||||||
stdlib_srand.o \
|
stdlib_srand.o \
|
||||||
stdlib_stackargbytes.o \
|
stdlib_stackargbytes.o \
|
||||||
stdlib_stackcheck.o \
|
stdlib_stackcheck.o \
|
||||||
@@ -310,22 +375,23 @@ C_LIB = \
|
|||||||
stdlib_stacksafezone.o \
|
stdlib_stacksafezone.o \
|
||||||
stdlib_stacksize.o \
|
stdlib_stacksize.o \
|
||||||
stdlib_stack_usage.o \
|
stdlib_stack_usage.o \
|
||||||
stdlib_startup.o \
|
stdlib_arg.o \
|
||||||
|
stdlib_stdio_window_spec.o \
|
||||||
stdlib_strtol.o \
|
stdlib_strtol.o \
|
||||||
stdlib_strtoul.o \
|
|
||||||
stdlib_strtoll.o \
|
stdlib_strtoll.o \
|
||||||
|
stdlib_strtoul.o \
|
||||||
stdlib_strtoull.o \
|
stdlib_strtoull.o \
|
||||||
stdlib_swapstack.o \
|
stdlib_swapstack.o \
|
||||||
stdlib_sysbase.o \
|
stdlib_sysbase.o \
|
||||||
stdlib_system.o \
|
stdlib_system.o \
|
||||||
stdlib_termination_message.o \
|
stdlib_termination_message.o \
|
||||||
stdlib_threshold.o \
|
stdlib_threshold.o \
|
||||||
|
stdlib_utilitybase.o \
|
||||||
stdlib_udivsi3.o \
|
stdlib_udivsi3.o \
|
||||||
stdlib_udivsi4.o \
|
stdlib_udivsi4.o \
|
||||||
stdlib_umodsi3.o \
|
stdlib_umodsi3.o \
|
||||||
stdlib_unsetenv.o \
|
stdlib_unsetenv.o \
|
||||||
stdlib_wildcard_expand.o \
|
strings_ffs.o \
|
||||||
stdlib_stdio_window_spec.o \
|
|
||||||
strings_strcasecmp.o \
|
strings_strcasecmp.o \
|
||||||
strings_strncasecmp.o \
|
strings_strncasecmp.o \
|
||||||
string_bcmp.o \
|
string_bcmp.o \
|
||||||
@@ -346,6 +412,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 \
|
||||||
@@ -379,6 +446,9 @@ C_LIB = \
|
|||||||
time_strftime.o \
|
time_strftime.o \
|
||||||
time_time.o \
|
time_time.o \
|
||||||
time_weekday.o \
|
time_weekday.o \
|
||||||
|
uio_readv.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 \
|
||||||
@@ -387,8 +457,10 @@ C_LIB = \
|
|||||||
unistd_dup.o \
|
unistd_dup.o \
|
||||||
unistd_dup2.o \
|
unistd_dup2.o \
|
||||||
unistd_fchown.o \
|
unistd_fchown.o \
|
||||||
|
unistd_fdatasync.o \
|
||||||
unistd_fdopen.o \
|
unistd_fdopen.o \
|
||||||
unistd_fileno.o \
|
unistd_fileno.o \
|
||||||
|
unistd_fsync.o \
|
||||||
unistd_ftruncate.o \
|
unistd_ftruncate.o \
|
||||||
unistd_getcwd.o \
|
unistd_getcwd.o \
|
||||||
unistd_getopt.o \
|
unistd_getopt.o \
|
||||||
@@ -397,21 +469,24 @@ 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 \
|
||||||
unistd_symlink.o \
|
unistd_symlink.o \
|
||||||
|
unistd_sync_fd.o \
|
||||||
unistd_timer.o \
|
unistd_timer.o \
|
||||||
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
|
||||||
|
|
||||||
UNIX_LIB = \
|
UNIX_LIB = \
|
||||||
unix.lib_rev.o \
|
unix.lib_rev.o \
|
||||||
dirent_closedir.o \
|
dirent_closedir.o \
|
||||||
dirent_data.o \
|
|
||||||
dirent_rewinddir.o \
|
dirent_rewinddir.o \
|
||||||
dirent_opendir.o \
|
dirent_opendir.o \
|
||||||
dirent_readdir.o \
|
dirent_readdir.o \
|
||||||
@@ -419,81 +494,249 @@ UNIX_LIB = \
|
|||||||
fcntl_fcntl.o \
|
fcntl_fcntl.o \
|
||||||
fcntl_open.o \
|
fcntl_open.o \
|
||||||
fcntl_get_default_file.o \
|
fcntl_get_default_file.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 \
|
||||||
|
stdio_ctermid.o \
|
||||||
stdio_fdhookentry.o \
|
stdio_fdhookentry.o \
|
||||||
stdio_fflush.o \
|
stdio_fflush.o \
|
||||||
stdio_fopen.o \
|
stdio_fopen.o \
|
||||||
stdio_init_exit.o \
|
stdio_init_exit.o \
|
||||||
|
stdio_file_init.o \
|
||||||
stdio_locksemaphorename.o \
|
stdio_locksemaphorename.o \
|
||||||
stdio_openiob.o \
|
stdio_openiob.o \
|
||||||
stdio_popen.o \
|
stdio_popen.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_expand_wildcard.o \
|
||||||
|
stdlib_expand_wildcard_check.o \
|
||||||
|
stdlib_getmemstats.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_cfgetospeed.o \
|
||||||
|
termios_cfmakeraw.o \
|
||||||
|
termios_cfsetispeed.o \
|
||||||
|
termios_cfsetospeed.o \
|
||||||
|
termios_console_fdhookentry.o \
|
||||||
|
termios_tcdrain.o \
|
||||||
|
termios_tcflow.o \
|
||||||
|
termios_tcflush.o \
|
||||||
|
termios_tcgetattr.o \
|
||||||
|
termios_tcsendbreak.o \
|
||||||
|
termios_tcsetattr.o \
|
||||||
|
timeb_ftime.o \
|
||||||
|
uio_readv.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 \
|
||||||
unistd_truncate.o \
|
unistd_truncate.o \
|
||||||
|
unistd_ttyname.o \
|
||||||
|
unistd_ttyname_r.o \
|
||||||
unistd_unix_path_semantics.o \
|
unistd_unix_path_semantics.o \
|
||||||
unistd_unlink.o \
|
unistd_unlink.o \
|
||||||
unistd_wildcard_expand.o \
|
unistd_wildcard_expand.o \
|
||||||
utime_utime.o
|
utime_utime.o
|
||||||
|
|
||||||
MATH_LIB = \
|
MATH_LIB = \
|
||||||
|
complex_carg.o \
|
||||||
|
complex_cargf.o \
|
||||||
|
complex_cargl.o \
|
||||||
|
complex_cimag.o \
|
||||||
|
complex_cimagf.o \
|
||||||
|
complex_cimagl.o \
|
||||||
|
complex_conj.o \
|
||||||
|
complex_conjf.o \
|
||||||
|
complex_conjl.o \
|
||||||
|
complex_creal.o \
|
||||||
|
complex_crealf.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_acosh.o \
|
||||||
|
math_acoshf.o \
|
||||||
math_asin.o \
|
math_asin.o \
|
||||||
|
math_asinf.o \
|
||||||
|
math_asinh.o \
|
||||||
|
math_asinhf.o \
|
||||||
math_atan.o \
|
math_atan.o \
|
||||||
math_atan2.o \
|
math_atan2.o \
|
||||||
|
math_atan2f.o \
|
||||||
|
math_atanf.o \
|
||||||
|
math_atanh.o \
|
||||||
|
math_atanhf.o \
|
||||||
|
math_cbrt.o \
|
||||||
|
math_cbrtf.o \
|
||||||
math_ceil.o \
|
math_ceil.o \
|
||||||
|
math_ceilf.o \
|
||||||
|
math_copysign.o \
|
||||||
|
math_copysignf.o \
|
||||||
math_cos.o \
|
math_cos.o \
|
||||||
|
math_cosf.o \
|
||||||
math_cosh.o \
|
math_cosh.o \
|
||||||
math_data.o \
|
math_coshf.o \
|
||||||
|
math_erf.o \
|
||||||
|
math_erfc.o \
|
||||||
|
math_erfcf.o \
|
||||||
|
math_erff.o \
|
||||||
math_exp.o \
|
math_exp.o \
|
||||||
|
math_exp2.o \
|
||||||
|
math_exp2f.o \
|
||||||
|
math_expf.o \
|
||||||
|
math_expm1.o \
|
||||||
|
math_expm1f.o \
|
||||||
math_fabs.o \
|
math_fabs.o \
|
||||||
|
math_fabsf.o \
|
||||||
|
math_fdim.o \
|
||||||
|
math_fdimf.o \
|
||||||
math_floor.o \
|
math_floor.o \
|
||||||
|
math_floorf.o \
|
||||||
|
math_fma.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_fpclassify.o \
|
||||||
math_frexp.o \
|
math_frexp.o \
|
||||||
|
math_frexpf.o \
|
||||||
|
math_huge_val.o \
|
||||||
|
math_huge_valf.o \
|
||||||
math_hypot.o \
|
math_hypot.o \
|
||||||
|
math_hypotf.o \
|
||||||
|
math_ilogb.o \
|
||||||
|
math_ilogbf.o \
|
||||||
|
math_inf.o \
|
||||||
|
math_inff.o \
|
||||||
math_init_exit.o \
|
math_init_exit.o \
|
||||||
math_isinf.o \
|
math_isfinite.o \
|
||||||
math_isnan.o \
|
math_isunordered.o \
|
||||||
|
math_kernel_cosf.o \
|
||||||
|
math_kernel_sinf.o \
|
||||||
|
math_kernel_tanf.o \
|
||||||
math_ldexp.o \
|
math_ldexp.o \
|
||||||
|
math_ldexpf.o \
|
||||||
|
math_lgamma.o \
|
||||||
|
math_lgammaf.o \
|
||||||
|
math_llrint.o \
|
||||||
math_log.o \
|
math_log.o \
|
||||||
math_log10.o \
|
math_log10.o \
|
||||||
|
math_log10f.o \
|
||||||
|
math_log1p.o \
|
||||||
|
math_log1pf.o \
|
||||||
|
math_log2.o \
|
||||||
|
math_log2f.o \
|
||||||
math_logb.o \
|
math_logb.o \
|
||||||
|
math_logbf.o \
|
||||||
|
math_logf.o \
|
||||||
|
math_lrint.o \
|
||||||
|
math_lrintf.o \
|
||||||
|
math_lround.o \
|
||||||
|
math_lroundf.o \
|
||||||
math_modf.o \
|
math_modf.o \
|
||||||
|
math_modff.o \
|
||||||
|
math_nan.o \
|
||||||
|
math_nanf.o \
|
||||||
|
math_nearbyint.o \
|
||||||
|
math_nearbyintf.o \
|
||||||
|
math_nextafter.o \
|
||||||
|
math_nextafterf.o \
|
||||||
math_pow.o \
|
math_pow.o \
|
||||||
|
math_powf.o \
|
||||||
|
math_remainder.o \
|
||||||
|
math_remainderf.o \
|
||||||
|
math_remquo.o \
|
||||||
|
math_remquof.o \
|
||||||
|
math_rem_pio2f.o \
|
||||||
math_rint.o \
|
math_rint.o \
|
||||||
math_rintf.o \
|
math_rintf.o \
|
||||||
|
math_round.o \
|
||||||
|
math_roundf.o \
|
||||||
|
math_scalbn.o \
|
||||||
|
math_scalbnf.o \
|
||||||
|
math_signbit.o \
|
||||||
math_sin.o \
|
math_sin.o \
|
||||||
|
math_sinf.o \
|
||||||
math_sinh.o \
|
math_sinh.o \
|
||||||
|
math_sinhf.o \
|
||||||
math_sqrt.o \
|
math_sqrt.o \
|
||||||
|
math_sqrtf.o \
|
||||||
math_tan.o \
|
math_tan.o \
|
||||||
|
math_tanf.o \
|
||||||
math_tanh.o \
|
math_tanh.o \
|
||||||
|
math_tanhf.o \
|
||||||
|
math_tgamma.o \
|
||||||
|
math_tgammaf.o \
|
||||||
|
math_trunc.o \
|
||||||
|
math_truncf.o \
|
||||||
stdio_asprintf.o \
|
stdio_asprintf.o \
|
||||||
stdio_flush.o \
|
stdio_flush.o \
|
||||||
|
stdio_flush_all_files.o \
|
||||||
stdio_fprintf.o \
|
stdio_fprintf.o \
|
||||||
stdio_fscanf.o \
|
stdio_fscanf.o \
|
||||||
stdio_printf.o \
|
stdio_printf.o \
|
||||||
@@ -504,12 +747,14 @@ MATH_LIB = \
|
|||||||
stdio_vasprintf.o \
|
stdio_vasprintf.o \
|
||||||
stdio_vfprintf.o \
|
stdio_vfprintf.o \
|
||||||
stdio_vfscanf.o \
|
stdio_vfscanf.o \
|
||||||
|
stdio_vsscanf.o \
|
||||||
|
stdio_vscanf.o \
|
||||||
stdio_vprintf.o \
|
stdio_vprintf.o \
|
||||||
stdio_vsnprintf.o \
|
stdio_vsnprintf.o \
|
||||||
stdio_vsprintf.o \
|
stdio_vsprintf.o \
|
||||||
stdlib_atof.o \
|
stdlib_atof.o \
|
||||||
stdlib_machine_test.o \
|
|
||||||
stdlib_strtod.o \
|
stdlib_strtod.o \
|
||||||
|
stdlib_strtof.o \
|
||||||
time_difftime.o
|
time_difftime.o
|
||||||
|
|
||||||
MATH_LIB_881 = \
|
MATH_LIB_881 = \
|
||||||
@@ -550,20 +795,12 @@ 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 \
|
||||||
socket_bind.o \
|
socket_bind.o \
|
||||||
|
socket_check_daemon.o \
|
||||||
socket_connect.o \
|
socket_connect.o \
|
||||||
socket_data.o \
|
|
||||||
socket_gethostbyaddr.o \
|
socket_gethostbyaddr.o \
|
||||||
socket_gethostbyname.o \
|
socket_gethostbyname.o \
|
||||||
socket_gethostid.o \
|
socket_gethostid.o \
|
||||||
@@ -589,10 +826,13 @@ NET_LIB = \
|
|||||||
socket_ioctl.o \
|
socket_ioctl.o \
|
||||||
socket_isdaemon.o \
|
socket_isdaemon.o \
|
||||||
socket_listen.o \
|
socket_listen.o \
|
||||||
|
socket_obtain_daemon.o \
|
||||||
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 \
|
||||||
@@ -601,7 +841,10 @@ NET_LIB = \
|
|||||||
socket_socket.o \
|
socket_socket.o \
|
||||||
socket_hook_entry.o \
|
socket_hook_entry.o \
|
||||||
socket_hstrerror.o \
|
socket_hstrerror.o \
|
||||||
|
socket_get_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 \
|
||||||
@@ -630,7 +873,8 @@ NET_LIB = \
|
|||||||
usergroup_setregid.o \
|
usergroup_setregid.o \
|
||||||
usergroup_setreuid.o \
|
usergroup_setreuid.o \
|
||||||
usergroup_setsid.o \
|
usergroup_setsid.o \
|
||||||
usergroup_setuid.o
|
usergroup_setuid.o \
|
||||||
|
utsname_uname.o
|
||||||
|
|
||||||
DEBUG_LIB = \
|
DEBUG_LIB = \
|
||||||
debug.lib_rev.o \
|
debug.lib_rev.o \
|
||||||
@@ -712,7 +956,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)
|
||||||
@@ -720,7 +964,7 @@ LIBS_020 := $(LIBM881_OBJS)/libm881.a $(LIBS_68K)
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
# The 881 math library won't build in plain 68k mode
|
# The 881 math library won't build in plain 68k mode
|
||||||
ifneq (,$(findstring 68020,$(CODE_TYPE)))
|
ifneq (,$(findstring 68020,$(CODE_FLAGS)))
|
||||||
LIBS := $(LIBS_020)
|
LIBS := $(LIBS_020)
|
||||||
else
|
else
|
||||||
LIBS := $(LIBS_68K)
|
LIBS := $(LIBS_68K)
|
||||||
@@ -728,7 +972,7 @@ endif
|
|||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
STARTUPS := nrcrt0.o nbcrt0.o nr32crt0.o nb32crt0.o ncrt0.o mainnb.o mainb.o mainb32.o
|
STARTUPS := nrcrt0.o nbcrt0.o nr32crt0.o nb32crt0.o ncrt0.o
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@@ -738,9 +982,6 @@ all: \
|
|||||||
lib/ncrt0.o \
|
lib/ncrt0.o \
|
||||||
lib/n32bcrt0.o \
|
lib/n32bcrt0.o \
|
||||||
lib/n32rcrt0.o \
|
lib/n32rcrt0.o \
|
||||||
lib/mainnb.o \
|
|
||||||
lib/mainb.o \
|
|
||||||
lib/mainb32.o \
|
|
||||||
lib/libm020/libm.a \
|
lib/libm020/libm.a \
|
||||||
lib/libm.a \
|
lib/libm.a \
|
||||||
lib/libb/libm.a \
|
lib/libb/libm.a \
|
||||||
@@ -752,7 +993,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:
|
||||||
@@ -768,7 +1009,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
|
||||||
@@ -776,7 +1016,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
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -817,47 +1056,38 @@ lib/libm020 : lib
|
|||||||
|
|
||||||
lib/libb/libm020/libm.a: lib lib/libb/libm020
|
lib/libb/libm020/libm.a: lib lib/libb/libm020
|
||||||
$(MAKE) TYPE=small_data_020 kitchen_sink
|
$(MAKE) TYPE=small_data_020 kitchen_sink
|
||||||
$(COPY) $(foreach file,$(LIBS_020),small_data_020/$(file)) lib/libb/libm020
|
@$(COPY) $(foreach file,$(LIBS_020),small_data_020/$(file)) lib/libb/libm020
|
||||||
|
|
||||||
lib/libb/libm.a: lib lib/libb
|
lib/libb/libm.a: lib lib/libb
|
||||||
$(MAKE) TYPE=small_data kitchen_sink
|
$(MAKE) TYPE=small_data kitchen_sink
|
||||||
$(COPY) $(foreach file,$(LIBS_68K),small_data/$(file)) lib/libb
|
@$(COPY) $(foreach file,$(LIBS_68K),small_data/$(file)) lib/libb
|
||||||
|
|
||||||
lib/libb32/libm020/libm.a: lib lib/libb32 lib/libb32/libm020
|
lib/libb32/libm020/libm.a: lib lib/libb32 lib/libb32/libm020
|
||||||
$(MAKE) TYPE=small_data32 kitchen_sink
|
$(MAKE) TYPE=small_data32 kitchen_sink
|
||||||
$(COPY) $(foreach file,$(LIBS_020),small_data32/$(file)) lib/libb32/libm020
|
@$(COPY) $(foreach file,$(LIBS_020),small_data32/$(file)) lib/libb32/libm020
|
||||||
|
|
||||||
lib/libm020/libm.a: lib lib/libm020
|
lib/libm020/libm.a: lib lib/libm020
|
||||||
$(MAKE) TYPE=large_data_020 kitchen_sink
|
$(MAKE) TYPE=large_data_020 kitchen_sink
|
||||||
$(COPY) $(foreach file,$(LIBS_020),large_data_020/$(file)) lib/libm020
|
@$(COPY) $(foreach file,$(LIBS_020),large_data_020/$(file)) lib/libm020
|
||||||
|
|
||||||
lib/libm.a: lib
|
lib/libm.a: lib
|
||||||
$(MAKE) TYPE=large_data kitchen_sink
|
$(MAKE) TYPE=large_data kitchen_sink
|
||||||
$(COPY) $(foreach file,$(LIBS_68K),large_data/$(file)) lib
|
@$(COPY) $(foreach file,$(LIBS_68K),large_data/$(file)) lib
|
||||||
|
|
||||||
lib/nrcrt0.o : lib nrcrt0.o
|
lib/nrcrt0.o : lib nrcrt0.o
|
||||||
$(COPY) nrcrt0.o lib
|
@$(COPY) nrcrt0.o lib
|
||||||
|
|
||||||
lib/nbcrt0.o : lib nbcrt0.o
|
lib/nbcrt0.o : lib nbcrt0.o
|
||||||
$(COPY) nbcrt0.o lib
|
@$(COPY) nbcrt0.o lib
|
||||||
|
|
||||||
lib/ncrt0.o : lib ncrt0.o
|
lib/ncrt0.o : lib ncrt0.o
|
||||||
$(COPY) ncrt0.o lib
|
@$(COPY) ncrt0.o lib
|
||||||
|
|
||||||
lib/n32bcrt0.o : lib nb32crt0.o
|
lib/n32bcrt0.o : lib nb32crt0.o
|
||||||
$(COPY) nb32crt0.o lib
|
@$(COPY) nb32crt0.o lib
|
||||||
|
|
||||||
lib/n32rcrt0.o : lib nr32crt0.o
|
lib/n32rcrt0.o : lib nr32crt0.o
|
||||||
$(COPY) nr32crt0.o lib
|
@$(COPY) nr32crt0.o lib
|
||||||
|
|
||||||
lib/mainnb.o : lib mainnb.o
|
|
||||||
$(COPY) mainnb.o lib
|
|
||||||
|
|
||||||
lib/mainb.o : lib mainb.o
|
|
||||||
$(COPY) mainb.o lib
|
|
||||||
|
|
||||||
lib/mainb32.o : lib mainb32.o
|
|
||||||
$(COPY) mainb32.o lib
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@@ -869,8 +1099,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
|
||||||
@@ -881,8 +1109,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
|
||||||
@@ -893,21 +1119,46 @@ $(LIBAMIGA_OBJS)/amiga.lib_rev.o : amiga.lib_rev.c amiga.lib_rev.h
|
|||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_stacksize.o : stdlib_stacksize.c stdlib_gcc_help.h
|
$(LIBC_OBJS)/stdlib_stacksize.o : stdlib_stacksize.c stdlib_gcc_help.h
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_getdefstacksize.o : stdlib_getdefstacksize.c stdlib_gcc_help.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_shell_escape.o : stdlib_shell_escape.c stdlib_gcc_help.h
|
$(LIBC_OBJS)/stdlib_shell_escape.o : stdlib_shell_escape.c stdlib_gcc_help.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_alloca.o : stdlib_alloca.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_alloca.o : stdlib_alloca.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_calloc.o : stdlib_calloc.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_calloc.o : stdlib_calloc.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_free.o : stdlib_free.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_free.o : stdlib_free.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_init_exit.o : stdlib_init_exit.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_malloc.o : stdlib_malloc.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_malloc.o : stdlib_malloc.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_realloc.o : stdlib_realloc.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_realloc.o : stdlib_realloc.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_red_black.o : stdlib_red_black.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_red_black.o : stdlib_red_black.c stdlib_mem_debug.h
|
##############################################################################
|
||||||
|
|
||||||
|
# The -fbaserel32 option requires the CPU type to be 68020, too.
|
||||||
|
ifneq (,$(findstring fbaserel32,$(CODE_FLAGS)))
|
||||||
|
LOCAL_CODE_FLAGS := $(CODE_FLAGS) $(CODE_TYPE)
|
||||||
|
else
|
||||||
|
LOCAL_CODE_FLAGS := $(CODE_FLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(LIBM881_OBJS)/math_init_exit.o : math_init_exit.c
|
||||||
|
@echo "Compiling $< [$(TYPE):m881]"
|
||||||
|
@$(CC) -o $(LIBM881_OBJS)/math_init_exit.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) -DM68881_FLOATING_POINT_SUPPORT $(INCLUDES) $<
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_machine_test.o : stdlib_machine_test.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdlib_machine_test.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) $<
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_showerror.o : stdlib_showerror.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdlib_showerror.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) $<
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_main.o : stdlib_main.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdlib_main.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) stdlib_main.c
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@@ -997,16 +1248,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) $@
|
||||||
|
|
||||||
@@ -1038,25 +1279,49 @@ $(LIBAMIGA_OBJS)/libamiga.a : $(LIBAMIGA_OBJS) $(foreach file,$(AMIGA_LIB),$(LIB
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
nrcrt0.o : nrcrt0.S
|
nrcrt0.o : nrcrt0.S
|
||||||
$(CC) -traditional -o $@ -c nrcrt0.S
|
@echo "Assembling $< [resident]"
|
||||||
|
@$(CC) -traditional -o $@ -c nrcrt0.S
|
||||||
|
|
||||||
nr32crt0.o : nrcrt0.S
|
nr32crt0.o : nrcrt0.S
|
||||||
$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c nrcrt0.S
|
@echo "Assembling $< [resident32]"
|
||||||
|
@$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c nrcrt0.S
|
||||||
|
|
||||||
nbcrt0.o : ncrt0.S
|
nbcrt0.o : ncrt0.S
|
||||||
$(CC) -traditional -DSMALL_DATA -o $@ -c ncrt0.S
|
@echo "Assembling $< [small_data]"
|
||||||
|
@$(CC) -traditional -DSMALL_DATA -o $@ -c ncrt0.S
|
||||||
|
|
||||||
nb32crt0.o : ncrt0.S
|
nb32crt0.o : ncrt0.S
|
||||||
$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c ncrt0.S
|
@echo "Assembling $< [small_data32]"
|
||||||
|
@$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c ncrt0.S
|
||||||
|
|
||||||
ncrt0.o : ncrt0.S
|
ncrt0.o : ncrt0.S
|
||||||
$(CC) -traditional -o $@ -c ncrt0.S
|
@echo "Assembling $< [large_data]"
|
||||||
|
@$(CC) -traditional -o $@ -c ncrt0.S
|
||||||
|
|
||||||
mainb32.o : stdlib_main.c
|
##############################################################################
|
||||||
$(CC) -o mainb32.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -fbaserel32 -DSMALL_DATA32 -m68020-60 -DM68020 stdlib_main.c
|
|
||||||
|
|
||||||
mainb.o : stdlib_main.c
|
CONSTRUCTOR_FILES = \
|
||||||
$(CC) -o mainb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -fbaserel -DSMALL_DATA -m68000 stdlib_main.c
|
amiga_rexxvars.c \
|
||||||
|
dirent_closedir.c \
|
||||||
|
locale_init_exit.c \
|
||||||
|
math_init_exit.c \
|
||||||
|
sas_profile.c \
|
||||||
|
socket_init_exit.c \
|
||||||
|
stdio_file_init.c \
|
||||||
|
stdio_init_exit.c \
|
||||||
|
stdlib_alloca.c \
|
||||||
|
stdlib_arg.c \
|
||||||
|
stdlib_malloc.c \
|
||||||
|
stdlib_program_name.c \
|
||||||
|
stdlib_setenv.c \
|
||||||
|
stdlib_stackcheck.c \
|
||||||
|
stdlib_stackextension.c \
|
||||||
|
time_clock.c \
|
||||||
|
unistd_chdir_exit.c \
|
||||||
|
unistd_init_exit.c \
|
||||||
|
unistd_timer.c \
|
||||||
|
unistd_wildcard_expand.c \
|
||||||
|
usergroup_init_exit.c
|
||||||
|
|
||||||
mainnb.o : stdlib_main.c
|
touch_constructor_files:
|
||||||
$(CC) -o mainnb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -m68000 stdlib_main.c
|
touch $(CONSTRUCTOR_FILES)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
5
library/TODO
Executable file
5
library/TODO
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
C99 math functions:
|
||||||
|
|
||||||
|
fma() and fmaf() should be implemented as a true "fused" multiply
|
||||||
|
and add function rather than the sequential operation implied in the
|
||||||
|
current implementation.
|
||||||
@@ -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 187
|
#define REVISION 203
|
||||||
#define DATE "29.1.2005"
|
#define DATE "28.4.2008"
|
||||||
#define VERS "amiga.lib 1.187"
|
#define VERS "amiga.lib 1.203"
|
||||||
#define VSTRING "amiga.lib 1.187 (29.1.2005)\r\n"
|
#define VSTRING "amiga.lib 1.203 (28.4.2008)\r\n"
|
||||||
#define VERSTAG "\0$VER: amiga.lib 1.187 (29.1.2005)"
|
#define VERSTAG "\0$VER: amiga.lib 1.203 (28.4.2008)"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
187
|
203
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_acrypt.c,v 1.2 2005-01-02 09:07:06 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
|
||||||
@@ -31,10 +31,14 @@
|
|||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define ACrypt __ACrypt
|
||||||
|
|
||||||
#include <exec/types.h>
|
#include <exec/types.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <clib/alib_protos.h>
|
#include <clib/alib_protos.h>
|
||||||
|
|
||||||
|
#undef ACrypt
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
@@ -45,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.2 2005-01-02 09:07:06 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
|
||||||
@@ -57,7 +57,7 @@ typedef LONG (* CFUNC)(APTR arg);
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
static LONG INTERRUPT ASM
|
STATIC LONG INTERRUPT ASM
|
||||||
call_routine(REG(a1,struct Isrvstr *i))
|
call_routine(REG(a1,struct Isrvstr *i))
|
||||||
{
|
{
|
||||||
CFUNC p = (CFUNC)i->ccode;
|
CFUNC p = (CFUNC)i->ccode;
|
||||||
|
|||||||
@@ -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.2 2005-01-02 09:07:06 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
|
||||||
@@ -61,11 +61,11 @@ struct DiskObject * CXLIB_disko;
|
|||||||
STRPTR *
|
STRPTR *
|
||||||
ArgArrayInit(LONG argc, CONST_STRPTR * argv)
|
ArgArrayInit(LONG argc, CONST_STRPTR * argv)
|
||||||
{
|
{
|
||||||
unsigned char ** result = NULL;
|
STRPTR * result = NULL;
|
||||||
|
|
||||||
if(argc != 0) /* run from CLI */
|
if(argc != 0) /* run from CLI */
|
||||||
{
|
{
|
||||||
int i;
|
LONG i;
|
||||||
|
|
||||||
if(argc == 1)
|
if(argc == 1)
|
||||||
goto out; /* skip command name */
|
goto out; /* skip command name */
|
||||||
@@ -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.3 2005-01-02 09:07:07 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
|
||||||
@@ -46,6 +46,12 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _STDLIB_PROFILE_H
|
||||||
|
#include "stdlib_profile.h"
|
||||||
|
#endif /* _STDLIB_PROFILE_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
@@ -203,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.2 2005-01-02 09:07:07 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
|
||||||
@@ -44,11 +44,34 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _STDLIB_PROFILE_H
|
||||||
|
#include "stdlib_profile.h"
|
||||||
|
#endif /* _STDLIB_PROFILE_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* 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)
|
||||||
{
|
{
|
||||||
@@ -58,6 +81,23 @@ DoTimer(struct timeval *tv,LONG unit,LONG command)
|
|||||||
|
|
||||||
assert( tv != NULL );
|
assert( tv != NULL );
|
||||||
|
|
||||||
|
#if defined(__amigaos4__)
|
||||||
|
{
|
||||||
|
mp = AllocSysObjectTags(ASOT_PORT,
|
||||||
|
ASOPORT_Action, PA_SIGNAL,
|
||||||
|
ASOPORT_AllocSig, FALSE,
|
||||||
|
ASOPORT_Signal, SIGB_SINGLE,
|
||||||
|
ASOPORT_Target, FindTask(NULL),
|
||||||
|
TAG_DONE);
|
||||||
|
|
||||||
|
if(mp == NULL)
|
||||||
|
{
|
||||||
|
error = IOERR_OPENFAIL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
{
|
||||||
mp = AllocVec(sizeof(*mp),MEMF_ANY|MEMF_PUBLIC|MEMF_CLEAR);
|
mp = AllocVec(sizeof(*mp),MEMF_ANY|MEMF_PUBLIC|MEMF_CLEAR);
|
||||||
if(mp == NULL)
|
if(mp == NULL)
|
||||||
{
|
{
|
||||||
@@ -69,7 +109,10 @@ DoTimer(struct timeval *tv,LONG unit,LONG command)
|
|||||||
mp->mp_Flags = PA_SIGNAL;
|
mp->mp_Flags = PA_SIGNAL;
|
||||||
mp->mp_SigBit = SIGB_SINGLE;
|
mp->mp_SigBit = SIGB_SINGLE;
|
||||||
mp->mp_SigTask = FindTask(NULL);
|
mp->mp_SigTask = FindTask(NULL);
|
||||||
|
|
||||||
NewList(&mp->mp_MsgList);
|
NewList(&mp->mp_MsgList);
|
||||||
|
}
|
||||||
|
#endif /* __amigaos4__ */
|
||||||
|
|
||||||
tr = (struct timerequest *)CreateIORequest(mp,sizeof(*tr));
|
tr = (struct timerequest *)CreateIORequest(mp,sizeof(*tr));
|
||||||
if(tr == NULL)
|
if(tr == NULL)
|
||||||
@@ -88,7 +131,7 @@ DoTimer(struct timeval *tv,LONG unit,LONG command)
|
|||||||
|
|
||||||
PROFILE_OFF();
|
PROFILE_OFF();
|
||||||
|
|
||||||
SetSignal(0,SIGF_SINGLE);
|
SetSignal(0,(1UL << mp->mp_SigBit));
|
||||||
|
|
||||||
error = DoIO((struct IORequest *)tr);
|
error = DoIO((struct IORequest *)tr);
|
||||||
|
|
||||||
@@ -107,7 +150,16 @@ DoTimer(struct timeval *tv,LONG unit,LONG command)
|
|||||||
DeleteIORequest((struct IORequest *)tr);
|
DeleteIORequest((struct IORequest *)tr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(__amigaos4__)
|
||||||
|
{
|
||||||
|
if(mp != NULL)
|
||||||
|
FreeSysObject(ASOT_PORT,mp);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
{
|
||||||
FreeVec(mp);
|
FreeVec(mp);
|
||||||
|
}
|
||||||
|
#endif /* __amigaos4__ */
|
||||||
|
|
||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.2 2005-01-02 09:07:07 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
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
static int
|
STATIC int
|
||||||
do_escape(int cc)
|
do_escape(int cc)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
@@ -91,7 +91,7 @@ do_escape(int cc)
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
static ULONG
|
STATIC ULONG
|
||||||
do_angle(STRPTR * strp, struct InputEvent *ie)
|
do_angle(STRPTR * strp, struct InputEvent *ie)
|
||||||
{
|
{
|
||||||
ULONG result;
|
ULONG result;
|
||||||
|
|||||||
@@ -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.3 2005-01-09 10:10:40 obarthel Exp $
|
* $Id: amiga_rexxvars.c,v 1.19 2008-04-18 10:11:59 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
|
||||||
@@ -34,17 +34,31 @@
|
|||||||
/* We don't want to pull in <clib/alib_protos.h> */
|
/* We don't want to pull in <clib/alib_protos.h> */
|
||||||
#define CLIB_ALIB_PROTOS_H
|
#define CLIB_ALIB_PROTOS_H
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifndef _STDLIB_HEADERS_H
|
#ifndef _STDLIB_HEADERS_H
|
||||||
#include "stdlib_headers.h"
|
#include "stdlib_headers.h"
|
||||||
#endif /* _STDLIB_HEADERS_H */
|
#endif /* _STDLIB_HEADERS_H */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _STDLIB_CONSTRUCTOR_H
|
||||||
|
#include "stdlib_constructor.h"
|
||||||
|
#endif /* _STDLIB_CONSTRUCTOR_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
#include <rexx/rxslib.h>
|
#include <rexx/rxslib.h>
|
||||||
#include <rexx/errors.h>
|
#include <rexx/errors.h>
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* This is used by the stub function prototypes. The ARexx header files
|
||||||
|
do not define it, though. */
|
||||||
|
struct Environment;
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
#define __NOLIBBASE__
|
#define __NOLIBBASE__
|
||||||
#include <proto/rexxsyslib.h>
|
#include <proto/rexxsyslib.h>
|
||||||
|
|
||||||
@@ -60,7 +74,13 @@ static struct RexxSysIFace * IRexxSys;
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
CLIB_CONSTRUCTOR(__rexxvars_init)
|
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,LONG length);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
CLIB_CONSTRUCTOR(rexxvars_init)
|
||||||
{
|
{
|
||||||
ENTER();
|
ENTER();
|
||||||
|
|
||||||
@@ -80,12 +100,14 @@ CLIB_CONSTRUCTOR(__rexxvars_init)
|
|||||||
}
|
}
|
||||||
#endif /* __amigaos4__ */
|
#endif /* __amigaos4__ */
|
||||||
|
|
||||||
|
LEAVE();
|
||||||
|
|
||||||
CONSTRUCTOR_SUCCEED();
|
CONSTRUCTOR_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
CLIB_DESTRUCTOR(__rexxvars_exit)
|
CLIB_DESTRUCTOR(rexxvars_exit)
|
||||||
{
|
{
|
||||||
ENTER();
|
ENTER();
|
||||||
|
|
||||||
@@ -138,56 +160,583 @@ CheckRexxMsg(struct RexxMsg *message)
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
/* The following function works in about like the original, except that it's
|
#if defined(__amigaos4__)
|
||||||
not reentrant, does not fill in a pointer to the variable itself and
|
|
||||||
requires rexxsyslib.library V45. */
|
/****************************************************************************/
|
||||||
LONG
|
|
||||||
GetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR *buffer_pointer)
|
#include <exec/emulation.h>
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
STATIC VOID
|
||||||
|
_FreeSpace(struct Environment * env,APTR mem,LONG size)
|
||||||
{
|
{
|
||||||
static UBYTE buffer[256];
|
STATIC CONST UWORD code[] = { 0x4EAE,0xFF88,0x4E75 }; /* jsr -120(a6) ; rts */
|
||||||
|
|
||||||
|
EmulateTags(code,
|
||||||
|
ET_RegisterA0,env,
|
||||||
|
ET_RegisterA1,mem,
|
||||||
|
ET_RegisterD0,size,
|
||||||
|
ET_RegisterA6,RexxSysBase,
|
||||||
|
TAG_END);
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC APTR
|
||||||
|
_GetSpace(struct Environment * env,LONG size)
|
||||||
|
{
|
||||||
|
STATIC CONST UWORD code[] = { 0x4EAE,0xFF8E,0x4E75 }; /* jsr -114(a6) ; rts */
|
||||||
|
APTR result;
|
||||||
|
|
||||||
|
result = (APTR)EmulateTags(code,
|
||||||
|
ET_RegisterA0,env,
|
||||||
|
ET_RegisterD0,size,
|
||||||
|
ET_RegisterA6,RexxSysBase,
|
||||||
|
TAG_END);
|
||||||
|
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC LONG
|
||||||
|
_IsSymbol(STRPTR name,LONG * symbol_length_ptr)
|
||||||
|
{
|
||||||
|
STATIC CONST UWORD code[] = { 0x4EAE,0xFF9A,0x2481,0x4E75 }; /* jsr -102(a6) ; move.l d1,(a2) ; rts */
|
||||||
LONG result;
|
LONG result;
|
||||||
|
|
||||||
/* The following uses a function which was added to rexxsyslib.library V45.
|
result = (LONG)EmulateTags(code,
|
||||||
We therefore have a minimum library version requirement. */
|
ET_RegisterA0,name,
|
||||||
if(RexxSysBase == NULL || RexxSysBase->lib_Version < 45 || NOT IsRexxMsg(message))
|
ET_RegisterA2,symbol_length_ptr,
|
||||||
{
|
ET_RegisterA6,RexxSysBase,
|
||||||
result = ERR10_010; /* invalid message packet */
|
TAG_END);
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The 256 character limit isn't good. This should be done differently. */
|
return(result);
|
||||||
result = GetRexxVarFromMsg(variable_name,buffer,message);
|
}
|
||||||
if(result != 0)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
(*buffer_pointer) = buffer;
|
STATIC VOID
|
||||||
|
_CurrentEnv(struct RexxTask *task,struct Environment ** environment_ptr)
|
||||||
|
{
|
||||||
|
STATIC CONST UWORD code[] = { 0x4EAE,0xFF94,0x2488,0x4E75 }; /* jsr -108(a6) ; move.l a0,(a2) ; rts */
|
||||||
|
|
||||||
out:
|
EmulateTags(code,
|
||||||
|
ET_RegisterA0,task,
|
||||||
|
ET_RegisterA2,environment_ptr,
|
||||||
|
ET_RegisterA6,RexxSysBase,
|
||||||
|
TAG_END);
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC struct Node *
|
||||||
|
_FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound,struct Node *symbol_table_node,LONG * is_literal_ptr,struct NexxStr ** value_ptr)
|
||||||
|
{
|
||||||
|
STATIC CONST UWORD code[] = { 0x4EAE,0xFFB8,0x2488,0x2681,0x4E75 }; /* jsr -72(a6) ; move.l a0,(a2) ; move.l d1,(a3) ; rts */
|
||||||
|
struct Node * result;
|
||||||
|
|
||||||
|
result = (struct Node *)EmulateTags(code,
|
||||||
|
ET_RegisterA0,env,
|
||||||
|
ET_RegisterA1,stem,
|
||||||
|
ET_RegisterD0,compound,
|
||||||
|
ET_RegisterD1,symbol_table_node,
|
||||||
|
ET_RegisterA2,is_literal_ptr,
|
||||||
|
ET_RegisterA3,value_ptr,
|
||||||
|
ET_RegisterA6,RexxSysBase,
|
||||||
|
TAG_END);
|
||||||
|
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC struct Node *
|
||||||
|
_EnterSymbol(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound)
|
||||||
|
{
|
||||||
|
STATIC CONST UWORD code[] = { 0x4EAE,0xFFBE,0x4E75 }; /* jsr -66(a6) ; rts */
|
||||||
|
struct Node * result;
|
||||||
|
|
||||||
|
result = (struct Node *)EmulateTags(code,
|
||||||
|
ET_RegisterA0,env,
|
||||||
|
ET_RegisterA1,stem,
|
||||||
|
ET_RegisterD0,compound,
|
||||||
|
ET_RegisterA6,RexxSysBase,
|
||||||
|
TAG_END);
|
||||||
|
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC VOID
|
||||||
|
_SetValue(struct Environment * env,struct NexxStr * value,struct Node * symbol_table_node)
|
||||||
|
{
|
||||||
|
STATIC CONST UWORD code[] = { 0x4EAE,0xFFAC,0x4E75 }; /* jsr -84(a6) ; rts */
|
||||||
|
struct Node * result;
|
||||||
|
|
||||||
|
result = (struct Node *)EmulateTags(code,
|
||||||
|
ET_RegisterA0,env,
|
||||||
|
ET_RegisterA1,value,
|
||||||
|
ET_RegisterD0,symbol_table_node,
|
||||||
|
ET_RegisterA6,RexxSysBase,
|
||||||
|
TAG_END);
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC ULONG
|
||||||
|
_StrcpyN(STRPTR destination,STRPTR source,LONG length)
|
||||||
|
{
|
||||||
|
STATIC CONST UWORD code[] = { 0x4EAE,0xFEF2,0x4E75 }; /* jsr -270(a6) ; rts */
|
||||||
|
ULONG result;
|
||||||
|
|
||||||
|
result = (ULONG)EmulateTags(code,
|
||||||
|
ET_RegisterA0,destination,
|
||||||
|
ET_RegisterA1,source,
|
||||||
|
ET_RegisterD0,length,
|
||||||
|
ET_RegisterA6,RexxSysBase,
|
||||||
|
TAG_END);
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
/* The following function works in about like the original, except that it
|
#elif defined(__GNUC__) && !defined(__amigaos4__)
|
||||||
ignores the length parameter (the value needs to be a NUL-terminated string)
|
|
||||||
and requires rexxsyslib.library V45. */
|
/****************************************************************************/
|
||||||
LONG
|
|
||||||
SetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR value,ULONG length)
|
/* A selection of lovingly hand-crafted 68k stub functions which call
|
||||||
|
into rexxsyslib.library LVOs that still used to be documented back
|
||||||
|
in 1987. */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(SMALL_DATA)
|
||||||
|
#define A4(x) "a4@(" #x ":W)"
|
||||||
|
#elif defined(SMALL_DATA32)
|
||||||
|
#define A4(x) "a4@(" #x ":L)"
|
||||||
|
#else
|
||||||
|
#define A4(x) #x
|
||||||
|
#endif /* SMALL_DATA */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* struct Environment * a0,APTR block a1,LONG d0 */
|
||||||
|
asm("
|
||||||
|
|
||||||
|
.text
|
||||||
|
.even
|
||||||
|
|
||||||
|
.globl __FreeSpace
|
||||||
|
|
||||||
|
__FreeSpace:
|
||||||
|
|
||||||
|
moveal sp@(4),a0
|
||||||
|
moveal sp@(8),a1
|
||||||
|
movel sp@(12),d0
|
||||||
|
|
||||||
|
movel a6,sp@-
|
||||||
|
moveal "A4(_RexxSysBase)",a6
|
||||||
|
jsr a6@(-120)
|
||||||
|
moveal sp@+,a6
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
");
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* struct Environment * a0,LONG d0 : APTR d0 */
|
||||||
|
asm("
|
||||||
|
|
||||||
|
.text
|
||||||
|
.even
|
||||||
|
|
||||||
|
.globl __GetSpace
|
||||||
|
|
||||||
|
__GetSpace:
|
||||||
|
|
||||||
|
moveal sp@(4),a0
|
||||||
|
movel sp@(8),d0
|
||||||
|
|
||||||
|
movel a6,sp@-
|
||||||
|
moveal "A4(_RexxSysBase)",a6
|
||||||
|
jsr a6@(-114)
|
||||||
|
moveal sp@+,a6
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
");
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* STRPTR a0 : LONG d0, LONG d1 */
|
||||||
|
asm("
|
||||||
|
|
||||||
|
.text
|
||||||
|
.even
|
||||||
|
|
||||||
|
.globl __IsSymbol
|
||||||
|
|
||||||
|
__IsSymbol:
|
||||||
|
|
||||||
|
moveal sp@(4),a0
|
||||||
|
|
||||||
|
movel a6,sp@-
|
||||||
|
moveal "A4(_RexxSysBase)",a6
|
||||||
|
jsr a6@(-102)
|
||||||
|
moveal sp@+,a6
|
||||||
|
|
||||||
|
moveal sp@(8),a1
|
||||||
|
movel d1,a1@
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
");
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* struct RexxTask * a0 : struct Environment * a0 */
|
||||||
|
asm("
|
||||||
|
|
||||||
|
.text
|
||||||
|
.even
|
||||||
|
|
||||||
|
.globl __CurrentEnv
|
||||||
|
|
||||||
|
__CurrentEnv:
|
||||||
|
|
||||||
|
moveal sp@(4),a0
|
||||||
|
|
||||||
|
movel a6,sp@-
|
||||||
|
moveal "A4(_RexxSysBase)",a6
|
||||||
|
jsr a6@(-108)
|
||||||
|
moveal sp@+,a6
|
||||||
|
|
||||||
|
moveal sp@(8),a1
|
||||||
|
movel a0,a1@
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
");
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* struct Environment * a0,struct NexxStr * a1,struct NexxStr * d0,struct Node * d1 : struct NexxStr * a0, LONG d1 */
|
||||||
|
asm("
|
||||||
|
|
||||||
|
.text
|
||||||
|
.even
|
||||||
|
|
||||||
|
.globl __FetchValue
|
||||||
|
|
||||||
|
__FetchValue:
|
||||||
|
|
||||||
|
moveal sp@(4),a0
|
||||||
|
moveal sp@(8),a1
|
||||||
|
movel sp@(12),d0
|
||||||
|
movel sp@(16),d1
|
||||||
|
|
||||||
|
movel a6,sp@-
|
||||||
|
moveal "A4(_RexxSysBase)",a6
|
||||||
|
jsr a6@(-72)
|
||||||
|
moveal sp@+,a6
|
||||||
|
|
||||||
|
moveal sp@(20),a1
|
||||||
|
movel a0,a1@
|
||||||
|
moveal sp@(24),a1
|
||||||
|
movel d1,a1@
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
");
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* struct Environment a0, struct NexxStr *a1, struct NexxStr * d0 : struct Node * d0 */
|
||||||
|
asm("
|
||||||
|
|
||||||
|
.text
|
||||||
|
.even
|
||||||
|
|
||||||
|
.globl __EnterSymbol
|
||||||
|
|
||||||
|
__EnterSymbol:
|
||||||
|
|
||||||
|
moveal sp@(4),a0
|
||||||
|
moveal sp@(8),a1
|
||||||
|
movel sp@(12),d0
|
||||||
|
|
||||||
|
movel a6,sp@-
|
||||||
|
moveal "A4(_RexxSysBase)",a6
|
||||||
|
jsr a6@(-66)
|
||||||
|
moveal sp@+,a6
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
");
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* struct Environment *a0, struct NexxStr *a1, struct Node * d0 */
|
||||||
|
asm("
|
||||||
|
|
||||||
|
.text
|
||||||
|
.even
|
||||||
|
|
||||||
|
.globl __SetValue
|
||||||
|
|
||||||
|
__SetValue:
|
||||||
|
|
||||||
|
moveal sp@(4),a0
|
||||||
|
moveal sp@(8),a1
|
||||||
|
movel sp@(12),d0
|
||||||
|
|
||||||
|
movel a6,sp@-
|
||||||
|
moveal "A4(_RexxSysBase)",a6
|
||||||
|
jsr a6@(-84)
|
||||||
|
moveal sp@+,a6
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
");
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* STRPTR a0,STRPTR a1,LONG d0 : ULONG d0 */
|
||||||
|
asm("
|
||||||
|
|
||||||
|
.text
|
||||||
|
.even
|
||||||
|
|
||||||
|
.globl __StrcpyN
|
||||||
|
|
||||||
|
__StrcpyN:
|
||||||
|
|
||||||
|
moveal sp@(4),a0
|
||||||
|
moveal sp@(8),a1
|
||||||
|
movel sp@(12),d0
|
||||||
|
|
||||||
|
movel a6,sp@-
|
||||||
|
moveal "A4(_RexxSysBase)",a6
|
||||||
|
jsr a6@(-270)
|
||||||
|
moveal sp@+,a6
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
");
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* Function prototypes for the 68k stubs. */
|
||||||
|
extern VOID _FreeSpace(struct Environment * env,APTR mem,LONG size);
|
||||||
|
extern APTR _GetSpace(struct Environment * env,LONG size);
|
||||||
|
extern LONG _IsSymbol(STRPTR name,LONG * symbol_length_ptr);
|
||||||
|
extern VOID _CurrentEnv(struct RexxTask *task,struct Environment ** environment_ptr);
|
||||||
|
extern struct Node * _FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound,struct Node *symbol_table_node,LONG * is_literal_ptr,struct NexxStr ** value_ptr);
|
||||||
|
extern struct Node * _EnterSymbol(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound);
|
||||||
|
extern VOID _SetValue(struct Environment * env,struct NexxStr * value,struct Node * symbol_table_node);
|
||||||
|
extern ULONG _StrcpyN(STRPTR destination,STRPTR source,LONG length);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* __GNUC__ && !__amigaos4__ */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* Releases a string structure, if it's not owned at the time. */
|
||||||
|
STATIC VOID
|
||||||
|
FreeString(struct Environment * environment,struct NexxStr * ns)
|
||||||
{
|
{
|
||||||
LONG result;
|
/* Not currently owned? */
|
||||||
|
if(!(ns->ns_Flags & NSF_KEEP))
|
||||||
|
_FreeSpace(environment,ns,sizeof(*ns) + ns->ns_Length + 1);
|
||||||
|
}
|
||||||
|
|
||||||
/* The following uses a function which was added to rexxsyslib.library V45.
|
/****************************************************************************/
|
||||||
We therefore have a minimum library version requirement. */
|
|
||||||
if(RexxSysBase == NULL || RexxSysBase->lib_Version < 45 || NOT IsRexxMsg(message))
|
/* Allocates and initializes a string structure. */
|
||||||
{
|
STATIC struct NexxStr *
|
||||||
result = ERR10_010; /* invalid message packet */
|
MakeString(struct Environment * environment,STRPTR value,LONG length)
|
||||||
|
{
|
||||||
|
struct NexxStr * result = NULL;
|
||||||
|
struct NexxStr * ns;
|
||||||
|
|
||||||
|
/* Allocate memory for the NexxStr and the NUL-terminated string itself. */
|
||||||
|
ns = _GetSpace(environment,sizeof(*ns) + length + 1);
|
||||||
|
if(ns == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
|
||||||
|
|
||||||
result = SetRexxVarFromMsg(variable_name,value,message);
|
/* Fill in the NexxStr structure, copy the string and remember the hash value for it. */
|
||||||
|
ns->ns_Ivalue = 0;
|
||||||
|
ns->ns_Length = length;
|
||||||
|
ns->ns_Flags = NSF_STRING;
|
||||||
|
ns->ns_Hash = _StrcpyN((STRPTR)ns->ns_Buff,value,length);
|
||||||
|
|
||||||
out:
|
/* Copying the string did not NUL-terminate it. */
|
||||||
|
ns->ns_Buff[length] = '\0';
|
||||||
|
|
||||||
|
result = ns;
|
||||||
|
|
||||||
|
out:
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* Classifies a symbol and returns the stem and compound parts. */
|
||||||
|
STATIC LONG
|
||||||
|
TypeString(STRPTR variable_name,struct Environment * environment,struct NexxStr ** compound_ptr,struct NexxStr ** stem_ptr)
|
||||||
|
{
|
||||||
|
struct NexxStr * compound;
|
||||||
|
struct NexxStr * stem = NULL;
|
||||||
|
LONG error = ERR10_003; /* no memory available */
|
||||||
|
LONG stem_length;
|
||||||
|
LONG symbol_length;
|
||||||
|
STRPTR dot;
|
||||||
|
|
||||||
|
(*compound_ptr) = NULL;
|
||||||
|
(*stem_ptr) = NULL;
|
||||||
|
|
||||||
|
/* The 'compound' part is the entire variable name, including all dots and
|
||||||
|
what's in between them. */
|
||||||
|
compound = MakeString(environment,variable_name,strlen(variable_name));
|
||||||
|
if(compound == NULL)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
/* Find the first dot in the variable name. Everything in front of it
|
||||||
|
and including the dot constitutes the 'stem' part. If there is no dot
|
||||||
|
in the name, then the 'compound' and 'stem' parts are identical. */
|
||||||
|
dot = memchr(compound->ns_Buff,'.',compound->ns_Length);
|
||||||
|
if(dot != NULL)
|
||||||
|
stem_length = ((char *)dot - (char *)compound->ns_Buff) + 1;
|
||||||
|
else
|
||||||
|
stem_length = compound->ns_Length;
|
||||||
|
|
||||||
|
/* Make a copy of the 'stem' part. */
|
||||||
|
stem = MakeString(environment,variable_name,stem_length);
|
||||||
|
if(stem == NULL)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
/* Figure out if this is a symbol after all. */
|
||||||
|
_IsSymbol((STRPTR)stem->ns_Buff,&symbol_length);
|
||||||
|
|
||||||
|
/* The entire name must match the stem part. */
|
||||||
|
if(symbol_length != stem->ns_Length)
|
||||||
|
{
|
||||||
|
error = ERR10_040; /* invalid variable name */
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
(*compound_ptr) = compound;
|
||||||
|
(*stem_ptr) = stem;
|
||||||
|
|
||||||
|
error = 0;
|
||||||
|
|
||||||
|
out:
|
||||||
|
|
||||||
|
if(error != 0)
|
||||||
|
{
|
||||||
|
if(compound != NULL)
|
||||||
|
FreeString(environment,compound);
|
||||||
|
|
||||||
|
if(stem != NULL)
|
||||||
|
FreeString(environment,stem);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(error);
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* Retrieves the value of a variable from the current storage environment. */
|
||||||
|
LONG
|
||||||
|
GetRexxVar(struct RexxMsg *context,STRPTR variable_name,STRPTR * return_value)
|
||||||
|
{
|
||||||
|
struct Environment * environment;
|
||||||
|
struct NexxStr * ns;
|
||||||
|
struct NexxStr * compound_string;
|
||||||
|
struct NexxStr * stem_string;
|
||||||
|
LONG is_literal;
|
||||||
|
LONG error;
|
||||||
|
|
||||||
|
(*return_value) = NULL;
|
||||||
|
|
||||||
|
if(!CheckRexxMsg(context))
|
||||||
|
{
|
||||||
|
error = ERR10_010; /* invalid message packet */
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Find the current storage environment. */
|
||||||
|
_CurrentEnv(context->rm_TaskBlock,&environment);
|
||||||
|
|
||||||
|
/* Create the stem and component parts. */
|
||||||
|
error = TypeString(variable_name,environment,&compound_string,&stem_string);
|
||||||
|
if(error != 0)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
/* Look up the value. NOTE: _FetchValue() will free the two 'struct NexxStr *' provided. */
|
||||||
|
_FetchValue(environment,stem_string,compound_string,NULL,&is_literal,&ns);
|
||||||
|
|
||||||
|
/* If this is not a literal, return a pointer to the string. */
|
||||||
|
if(!is_literal)
|
||||||
|
(*return_value) = (STRPTR)ns->ns_Buff;
|
||||||
|
|
||||||
|
error = 0;
|
||||||
|
|
||||||
|
out:
|
||||||
|
|
||||||
|
return(error);
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/* Assigns a value to a variable in the current storage environment. */
|
||||||
|
LONG
|
||||||
|
SetRexxVar(struct RexxMsg *context,STRPTR variable_name,STRPTR value,LONG length)
|
||||||
|
{
|
||||||
|
struct Environment * environment;
|
||||||
|
struct NexxStr * compound_string;
|
||||||
|
struct NexxStr * stem_string;
|
||||||
|
struct Node * symbol_table_node;
|
||||||
|
struct NexxStr *value_string;
|
||||||
|
LONG error;
|
||||||
|
|
||||||
|
/* Make sure the value string is not too long */
|
||||||
|
if(length > 65535)
|
||||||
|
{
|
||||||
|
error = ERR10_009; /* symbol or string too long */
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!CheckRexxMsg(context))
|
||||||
|
{
|
||||||
|
error = ERR10_010; /* invalid message packet */
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Find the current storage environment. */
|
||||||
|
_CurrentEnv(context->rm_TaskBlock,&environment);
|
||||||
|
|
||||||
|
/* Create the stem and compound parts */
|
||||||
|
error = TypeString(variable_name,environment,&compound_string,&stem_string);
|
||||||
|
if(error != 0)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
/* Locate or create the symbol node. NOTE: _EnterSymbol() will put the two 'struct NexxStr *' into
|
||||||
|
the symbol table. It is not nececessary to free them. */
|
||||||
|
symbol_table_node = _EnterSymbol(environment,stem_string,compound_string);
|
||||||
|
if(symbol_table_node == NULL)
|
||||||
|
{
|
||||||
|
error = ERR10_003; /* no memory available */
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Create the value string. */
|
||||||
|
value_string = MakeString(environment,value,length);
|
||||||
|
if(value_string == NULL)
|
||||||
|
{
|
||||||
|
error = ERR10_003; /* no memory available */
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Install the value string. */
|
||||||
|
_SetValue(environment,value_string,symbol_table_node);
|
||||||
|
|
||||||
|
error = 0;
|
||||||
|
|
||||||
|
out:
|
||||||
|
|
||||||
|
return(error);
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_setsuperattrs.c,v 1.3 2005-01-09 10:10:41 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
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
static ULONG
|
STATIC ULONG
|
||||||
SetSuperAttrsA(Class * cl,Object * obj,struct TagItem * tags)
|
SetSuperAttrsA(Class * cl,Object * obj,struct TagItem * tags)
|
||||||
{
|
{
|
||||||
ULONG result = 0;
|
ULONG result = 0;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
31
library/build_archive_amiga
Executable file
31
library/build_archive_amiga
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
; Simple release archive build script for Amiga systems.
|
||||||
|
|
||||||
|
; Set the name of the archive and the directory the
|
||||||
|
; files go into
|
||||||
|
set dir_name clib2-1.`type c.lib_rev.rev`
|
||||||
|
|
||||||
|
; Start with a clean slate
|
||||||
|
delete all quiet ram:$dir_name
|
||||||
|
|
||||||
|
; Create the directory, copy all the libraries, header files
|
||||||
|
; and release note files inside.
|
||||||
|
makedir ram:$dir_name
|
||||||
|
copy lib ram:${dir_name}/lib all clone quiet
|
||||||
|
copy include ram:${dir_name}/include all clone quiet
|
||||||
|
copy changes ram:$dir_name clone
|
||||||
|
|
||||||
|
; Delete the CVS data from the include directory
|
||||||
|
delete ram:${dir_name}/include/CVS ram:${dir_name}/include/sys/CVS ram:${dir_name}/include/arpa/CVS ram:${dir_name}/include/netinet/CVS all quiet
|
||||||
|
|
||||||
|
; Finally, create an lha archive in RAM:
|
||||||
|
pushcd ram:
|
||||||
|
lha -r -x -a a ${dir_name}-gcc-68k.lha ${dir_name}
|
||||||
|
popcd
|
||||||
|
|
||||||
|
; Move the archive back to this directory
|
||||||
|
copy ram:${dir_name}-gcc-68k.lha "" clone
|
||||||
|
|
||||||
|
; Clean up...
|
||||||
|
delete ram:$dir_name all quiet
|
||||||
|
unset dir_name
|
||||||
|
|
||||||
27
library/build_archive_unix.sh
Executable file
27
library/build_archive_unix.sh
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Simple release archive build script for Unix systems.
|
||||||
|
# I typically build the library with a cross compiler.
|
||||||
|
|
||||||
|
# Set the name of the archive and the directory the
|
||||||
|
# files go into
|
||||||
|
export dir_name=clib2-1.`cat c.lib_rev.rev`
|
||||||
|
|
||||||
|
# Start with a clean slate
|
||||||
|
rm -rf $dir_name
|
||||||
|
|
||||||
|
# Create the directory, copy all the libraries, header files
|
||||||
|
# and release note files inside.
|
||||||
|
mkdir $dir_name
|
||||||
|
cp -a lib $dir_name
|
||||||
|
cp -a lib.threadsafe $dir_name
|
||||||
|
cp -a include $dir_name
|
||||||
|
cp changes $dir_name
|
||||||
|
|
||||||
|
# Delete the CVS data from the include directory
|
||||||
|
rm -rf ${dir_name}/include/CVS ${dir_name}/include/sys/CVS ${dir_name}/include/arpa/CVS ${dir_name}/include/netinet/CVS
|
||||||
|
|
||||||
|
# Finally, create an lha type 5 archive; the Amiga LhA port
|
||||||
|
# can unpack it.
|
||||||
|
lha ao5q ${dir_name}-gcc-os4.lha ${dir_name}
|
||||||
|
|
||||||
@@ -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 187
|
#define REVISION 203
|
||||||
#define DATE "29.1.2005"
|
#define DATE "28.4.2008"
|
||||||
#define VERS "c.lib 1.187"
|
#define VERS "c.lib 1.203"
|
||||||
#define VSTRING "c.lib 1.187 (29.1.2005)\r\n"
|
#define VSTRING "c.lib 1.203 (28.4.2008)\r\n"
|
||||||
#define VERSTAG "\0$VER: c.lib 1.187 (29.1.2005)"
|
#define VERSTAG "\0$VER: c.lib 1.203 (28.4.2008)"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
187
|
203
|
||||||
|
|||||||
1100
library/changes
1100
library/changes
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: stdlib_constructor_end.c,v 1.2 2005-01-02 09:07:08 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
|
||||||
@@ -31,14 +31,22 @@
|
|||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
/* End markers for the CTOR and DTOR list. */
|
#if defined(COMPLEX_SUPPORT)
|
||||||
static volatile void (*__CTOR_LIST__[1]) (void) __attribute__((section(".ctors"))) = { (void *)0 };
|
|
||||||
static volatile void (*__DTOR_LIST__[1]) (void) __attribute__((section(".dtors"))) = { (void *)0 };
|
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#endif /*__amigaos4__ */
|
double
|
||||||
|
carg(double complex z)
|
||||||
|
{
|
||||||
|
return(atan2(IMAG(z),REAL(z)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_cargf.c
Normal file
52
library/complex_cargf.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_cargf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
float
|
||||||
|
cargf(float complex z)
|
||||||
|
{
|
||||||
|
return(atan2(IMAG(z),REAL(z))); /* ZZZ this really needs to call ata2f(). */
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_cargl.c
Normal file
52
library/complex_cargl.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_cargl.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
long double
|
||||||
|
cargl(long double complex z)
|
||||||
|
{
|
||||||
|
return(atan2(IMAG(z),REAL(z))); /* ZZZ this really needs to call atan2l(). */
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_cimag.c
Normal file
52
library/complex_cimag.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_cimag.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
double
|
||||||
|
cimag(double complex z)
|
||||||
|
{
|
||||||
|
return(IMAG(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_cimagf.c
Normal file
52
library/complex_cimagf.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_cimagf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
float
|
||||||
|
cimagf(float complex z)
|
||||||
|
{
|
||||||
|
return(IMAG(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_cimagl.c
Normal file
52
library/complex_cimagl.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_cimagl.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
long double
|
||||||
|
cimagl(long double complex z)
|
||||||
|
{
|
||||||
|
return(IMAG(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_conj.c
Normal file
52
library/complex_conj.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_conj.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
double complex
|
||||||
|
conj(double complex z)
|
||||||
|
{
|
||||||
|
return(CONJ(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_conjf.c
Normal file
52
library/complex_conjf.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_conjf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
float complex
|
||||||
|
conjf(float complex z)
|
||||||
|
{
|
||||||
|
return(CONJ(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_conjl.c
Normal file
52
library/complex_conjl.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_conjl.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
long double complex
|
||||||
|
conjl(long double complex z)
|
||||||
|
{
|
||||||
|
return(CONJ(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_creal.c
Normal file
52
library/complex_creal.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_creal.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
double
|
||||||
|
creal(double complex z)
|
||||||
|
{
|
||||||
|
return(REAL(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_crealf.c
Normal file
52
library/complex_crealf.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_crealf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
float
|
||||||
|
crealf(float complex z)
|
||||||
|
{
|
||||||
|
return(REAL(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_creall.c
Normal file
52
library/complex_creall.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_creall.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
long double
|
||||||
|
creall(long double complex z)
|
||||||
|
{
|
||||||
|
return(REAL(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
68
library/complex_headers.h
Executable file
68
library/complex_headers.h
Executable file
@@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_headers.h,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#define _COMPLEX_HEADERS_H
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _MATH_FP_SUPPORT_H
|
||||||
|
#include "math_fp_support.h"
|
||||||
|
#endif /* _MATH_FP_SUPPORT_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(FLOATING_POINT_SUPPORT) && defined(__GNUC__) && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#include <complex.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#define COMPLEX_SUPPORT
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#define REAL(z) (__real__ (z))
|
||||||
|
#define IMAG(z) (__imag__ (z))
|
||||||
|
#define CONJ(z) (~(z))
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* FLOATING_POINT_SUPPORT && __GNUC__ && __STDC_VERSION__ */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
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,11 +1,12 @@
|
|||||||
//
|
//
|
||||||
// $Id: crt0.S,v 1.2 2004-11-28 12:31:27 tfrieden Exp $
|
// $Id: crt0.S,v 1.6 2005-10-11 09:28:29 obarthel Exp $
|
||||||
//
|
//
|
||||||
// :ts=4
|
// :ts=4
|
||||||
//
|
//
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
|
.globl main /* This enforces linkage against the main() function */
|
||||||
.globl _main
|
.globl _main
|
||||||
.globl _start
|
.globl _start
|
||||||
|
|
||||||
@@ -25,16 +26,3 @@ _start:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
b _main
|
b _main
|
||||||
|
|
||||||
#if defined(BASEREL_DATA)
|
|
||||||
.section .rodata
|
|
||||||
|
|
||||||
.globl __data_segment_descriptor
|
|
||||||
__data_segment_descriptor:
|
|
||||||
.long __data_start
|
|
||||||
.long __data_end
|
|
||||||
.long _DATA_BASE_
|
|
||||||
|
|
||||||
.section .dend, "wa", @nobits
|
|
||||||
.space 4
|
|
||||||
#endif
|
|
||||||
|
|||||||
@@ -1,132 +1,48 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: crtbegin.c,v 1.3 2004-09-29 16:54:54 obarthel Exp $
|
* $Id: crtbegin.c,v 1.11 2006-09-22 09:02:51 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Handles global constructors and destructors.
|
* Handles global constructors and destructors for the OS4 GCC build.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <exec/types.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <setjmp.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
#if defined(__amigaos4__)
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef EXEC_TYPES_H
|
||||||
|
#include <exec/types.h>
|
||||||
|
#endif /* EXEC_TYPES_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Dummy constructor and destructor array. The linker script will put these at the
|
* Dummy constructor and destructor array. The linker script will put these at the
|
||||||
* very beginning of section ".ctors" and ".dtors". crtend.o contains a similar entry
|
* very beginning of section ".ctors" and ".dtors". crtend.o contains a similar entry
|
||||||
* with a NULL pointer entry and is put at the end of the sections. This way, the init
|
* with a NULL pointer entry and is put at the end of the sections. This way, the init
|
||||||
* code can find the global constructor/destructor pointers
|
* code can find the global constructor/destructor pointers
|
||||||
*/
|
*/
|
||||||
static void (*__CTOR_LIST__[1]) (void) __attribute__((section(".ctors"))) = { (void *)-1 };
|
static void (*__CTOR_LIST__[1]) (void) __attribute__(( used, section(".ctors"), aligned(sizeof(void (*)(void))) ));
|
||||||
static void (*__DTOR_LIST__[1]) (void) __attribute__((section(".dtors"))) = { (void *)-1 };
|
static void (*__DTOR_LIST__[1]) (void) __attribute__(( used, section(".dtors"), aligned(sizeof(void (*)(void))) ));
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
static void
|
void _init(void);
|
||||||
_do_ctors(void)
|
void _fini(void);
|
||||||
{
|
|
||||||
void (**pFuncPtr)(void);
|
|
||||||
|
|
||||||
/* Skip the first entry in the list (it's -1 anyway) */
|
|
||||||
pFuncPtr = __CTOR_LIST__ + 1;
|
|
||||||
|
|
||||||
/* Call all constructors in forward order */
|
|
||||||
while (*pFuncPtr != NULL)
|
|
||||||
(**pFuncPtr++)();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
static void
|
|
||||||
_do_dtors(void)
|
|
||||||
{
|
|
||||||
ULONG i = (ULONG)__DTOR_LIST__[0];
|
|
||||||
void (**pFuncPtr)(void);
|
|
||||||
|
|
||||||
if (i == ~0UL)
|
|
||||||
{
|
|
||||||
/* Find the end of the destructors list */
|
|
||||||
i = 1;
|
|
||||||
|
|
||||||
while (__DTOR_LIST__[i] != NULL)
|
|
||||||
i++;
|
|
||||||
|
|
||||||
/* We're at the NULL entry now. Go back by one */
|
|
||||||
i--;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Call all destructors in reverse order */
|
|
||||||
pFuncPtr = __DTOR_LIST__ + i;
|
|
||||||
while (i-- > 0)
|
|
||||||
(**pFuncPtr--)();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
typedef void (*func_ptr)(void);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
static void
|
|
||||||
_do_ctors(void)
|
|
||||||
{
|
|
||||||
extern func_ptr __CTOR_LIST__[];
|
|
||||||
ULONG nptrs = (ULONG)__CTOR_LIST__[0];
|
|
||||||
ULONG i;
|
|
||||||
|
|
||||||
for(i = nptrs ; i > 0 ; i--)
|
|
||||||
__CTOR_LIST__[i]();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
static void
|
|
||||||
_do_dtors(void)
|
|
||||||
{
|
|
||||||
extern func_ptr __DTOR_LIST__[];
|
|
||||||
extern jmp_buf __exit_jmp_buf;
|
|
||||||
ULONG nptrs = (ULONG)__DTOR_LIST__[0];
|
|
||||||
static ULONG i;
|
|
||||||
|
|
||||||
/* If one of the destructors drops into
|
|
||||||
* exit(), processing will continue with
|
|
||||||
* the next following destructor.
|
|
||||||
*/
|
|
||||||
(void)setjmp(__exit_jmp_buf);
|
|
||||||
|
|
||||||
while(i++ < nptrs)
|
|
||||||
__DTOR_LIST__[i]();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /*__amigaos4__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* FIXME: Do we need to put these in .init/.fini sections? */
|
|
||||||
|
|
||||||
//void _init(void) __attribute__((section(".init")));
|
|
||||||
//void _fini(void) __attribute__((section(".fini")));
|
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
void
|
void
|
||||||
_init(void)
|
_init(void)
|
||||||
{
|
{
|
||||||
_do_ctors();
|
int num_ctors,i;
|
||||||
|
int j;
|
||||||
|
|
||||||
|
for(i = 1, num_ctors = 0 ; __CTOR_LIST__[i] != NULL ; i++)
|
||||||
|
num_ctors++;
|
||||||
|
|
||||||
|
for(j = 0 ; j < num_ctors ; j++)
|
||||||
|
__CTOR_LIST__[num_ctors - j]();
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
@@ -134,5 +50,16 @@ _init(void)
|
|||||||
void
|
void
|
||||||
_fini(void)
|
_fini(void)
|
||||||
{
|
{
|
||||||
_do_dtors();
|
int num_dtors,i;
|
||||||
|
static int j;
|
||||||
|
|
||||||
|
for(i = 1, num_dtors = 0 ; __DTOR_LIST__[i] != NULL ; i++)
|
||||||
|
num_dtors++;
|
||||||
|
|
||||||
|
while(j++ < num_dtors)
|
||||||
|
__DTOR_LIST__[j]();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /*__amigaos4__ */
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: crtend.c,v 1.1.1.1 2004-07-26 16:30:22 obarthel Exp $
|
* $Id: crtend.c,v 1.2 2005-03-09 21:07:25 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
@@ -10,9 +10,10 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
static volatile void (*__CTOR_LIST__[1]) (void) __attribute__((used,section(".ctors"))) = { (void *)0 };
|
static void (*__CTOR_LIST__[1]) (void) __attribute__((used, section(".ctors"), aligned(sizeof(void (*)(void))) ));
|
||||||
static volatile void (*__DTOR_LIST__[1]) (void) __attribute__((used,section(".dtors"))) = { (void *)0 };
|
static void (*__DTOR_LIST__[1]) (void) __attribute__((used, section(".dtors"), aligned(sizeof(void (*)(void))) ));
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#endif /*__amigaos4__ */
|
#endif /*__amigaos4__ */
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_headers.h,v 1.2 2005-01-02 09:07:07 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
|
||||||
@@ -42,18 +42,25 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifndef _STDLIB_LOCALE_UTILITY_H
|
#ifndef _STDLIB_LOCALEBASE_H
|
||||||
#include "stdlib_locale_utility.h"
|
#include "stdlib_localebase.h"
|
||||||
#endif /* _STDLIB_LOCALE_UTILITY_H */
|
#endif /* _STDLIB_LOCALEBASE_H */
|
||||||
|
|
||||||
|
#ifndef _STDLIB_UTILITYBASE_H
|
||||||
|
#include "stdlib_utilitybase.h"
|
||||||
|
#endif /* _STDLIB_UTILITYBASE_H */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _MACROS_H
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
|
#endif /* _MACROS_H */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <limits.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isalnum.c,v 1.2 2005-01-02 09:07:07 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
|
||||||
@@ -49,16 +49,26 @@ isalnum(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsAlNum(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsAlNum(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = isalpha(c) || isdigit(c);
|
result = isalpha(c) || isdigit(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isalpha.c,v 1.2 2005-01-02 09:07:07 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
|
||||||
@@ -47,11 +47,19 @@ isalpha(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsAlpha(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsAlpha(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -59,5 +67,7 @@ isalpha(int c)
|
|||||||
('A' <= c && c <= 'Z'));
|
('A' <= c && c <= 'Z'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
52
library/ctype_isblank.c
Normal file
52
library/ctype_isblank.c
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: ctype_isblank.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _CTYPE_HEADERS_H
|
||||||
|
#include "ctype_headers.h"
|
||||||
|
#endif /* _CTYPE_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#undef isblank
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
int
|
||||||
|
isblank(int c)
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
|
||||||
|
result = (c == '\t' || c == ' ');
|
||||||
|
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_iscntrl.c,v 1.2 2005-01-02 09:07:07 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
|
||||||
@@ -47,16 +47,26 @@ iscntrl(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsCntrl(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsCntrl(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = (('\0' <= c && c < ' ') || (c == 127));
|
result = (('\0' <= c && c < ' ') || (c == 127));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isdigit.c,v 1.2 2005-01-02 09:07:07 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
|
||||||
@@ -47,16 +47,26 @@ isdigit(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsDigit(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsDigit(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = ('0' <= c && c <= '9');
|
result = ('0' <= c && c <= '9');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isgraph.c,v 1.2 2005-01-02 09:07:07 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
|
||||||
@@ -47,16 +47,26 @@ isgraph(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsGraph(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsGraph(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = (' ' < c && c < 127);
|
result = (' ' < c && c < 127);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_islower.c,v 1.2 2005-01-02 09:07:07 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
|
||||||
@@ -47,16 +47,26 @@ islower(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsLower(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsLower(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = ('a' <= c && c <= 'z');
|
result = ('a' <= c && c <= 'z');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isprint.c,v 1.2 2005-01-02 09:07:07 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
|
||||||
@@ -47,16 +47,26 @@ isprint(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsPrint(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsPrint(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = (' ' <= c && c <= '~');
|
result = (' ' <= c && c <= '~');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_ispunct.c,v 1.2 2005-01-02 09:07:07 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
|
||||||
@@ -47,11 +47,19 @@ ispunct(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsPunct(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsPunct(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -61,5 +69,7 @@ ispunct(int c)
|
|||||||
('{' <= c && c <= '~'));
|
('{' <= c && c <= '~'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isspace.c,v 1.2 2005-01-02 09:07:07 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
|
||||||
@@ -47,11 +47,19 @@ isspace(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsSpace(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsSpace(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -63,5 +71,7 @@ isspace(int c)
|
|||||||
c == ' ');
|
c == ' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user