added concrete implementations of putc(), getc(), getchar() and gets()
[tangerine.git] / compiler / c_lib / ReadMe.AROS
bloba6723986f520dcae96b66e72a03a5df24f1d43ea
1 In 1997 the CLib37x package was imported in the AROS source tree and
2 therefore these files are under the AROS Public License. A more recent
3 version of the files of the original package can be found in the
4 CLib37x.lha package on aminet.
6 Other AROS notes:
7 -----------------
8 [Andreas R. Kleinert <Andreas_Kleinert@t-online.de]
10  - made some changes to Aaron's sources to get
11    them compiled with SAS/C 6.58
13 [Aaron Digulla <digulla@fh-konstanz.de> ]
16 I have ported this source to AROS on Linux.
18 It works with AROS V1.11+. Eventually, it will become part of
19 the AROS Library Generation Tools.
21 Some of this problems are announced to be fixed with gcc V2.8.0 .
23 The size of the library is 852 bytes code and 188 bytes data. The file
24 size is 80935 including full debug infos.
27 I made the following changes:
29 makefile.aros:
30   added
32 Startup.c:
33 SampleFuncs.h:
34 LibInit.c:
35 SampleFuncs.c:
36     AROS has it's own way to define functions which belong into a library.
37     A library function is declared like this:
39         AROS_LH1 (ULONG, foo,
40             AROS_LHA (APTR, bar, D0),
41             struct LibBase *, LibBase, 7, Demo
42         )
44     This creates a function which is called "foo" for the library "Demo".
45     The function returns ULONG and gets a single parameter bar which is
46     an APTR in D0 (if D0 is available; on systems where there are no
47     registers, for example in intel CPUs, the arguments will be passed
48     on the stack). The function will get a hidden parameter called "LibBase"
49     in A6 or on the stack. The type of "LibBase" is "struct LibBase *".
50     The function is the 7th (counting begins by 0 which is LibInit; 1 is
51     LibOpen, 2 is LibClose, 3 is LibExpunge, 4 is LibFuncExt, 5 is the
52     first library specific function). Macros are available for upto 15
53     parameters.
55     If you replace AROS_LH1 by AROS_LC1, then you can call a function of
56     a library.
58     This special format is used by a couple of tools which generate
59     all header files (proto, pragma, clib, etc) and the autodocs from
60     the source.
62 proto/example.h
63     Include the AROS headers for libraries.
65 defines/example.h
66     Added this file. It contains macros which are expanded into AROS_LCx
67     macros which call the actual function.
69 Have fun.