Added option to build for amiga-m68k
[AROS.git] / compiler / include / clib / arossupport_protos.h
blobfed7510dae64ccd6b2ad4c2ceab97aff05b53f44
1 #ifndef CLIB_AROSSUPPORT_PROTOS_H
2 #define CLIB_AROSSUPPORT_PROTOS_H
4 /*
5 Copyright © 1995-2012, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: Prototypes for aros.lib
9 Lang: english
12 #ifndef EXEC_TYPES_H
13 # include <exec/types.h>
14 #endif
15 #ifndef AROS_AROSSUPPORTBASE_H
16 # include <aros/arossupportbase.h>
17 #endif
18 #ifndef EXEC_EXECBASE_H
19 # include <exec/execbase.h>
20 #endif
21 #ifndef DOS_DOS_H
22 # include <dos/dos.h>
23 #endif
24 #ifndef UTILITY_HOOKS_H
25 # include <utility/hooks.h>
26 #endif
28 #ifndef PROTO_EXEC_H
29 # include <proto/exec.h>
30 #endif
32 #ifdef DEBUG_FreeMem
33 # if DEBUG_FreeMem
34 # undef FreeMem
35 # define FreeMem NastyFreeMem
36 # endif
37 #endif
39 /* for va_list in kprintf() proto */
40 #include <stdarg.h>
43 Prototypes
45 __BEGIN_DECLS
47 ULONG CalcChecksum (APTR mem, ULONG size);
48 int kprintf (const char * fmt, ...);
49 int vkprintf (const char * fmt, va_list ap);
50 int rkprintf (const STRPTR, const STRPTR, int, const UBYTE * fmt, ...);
51 void NastyFreeMem (APTR mem, IPTR size);
52 APTR RemoveSList (APTR * list, APTR node);
53 void hexdump (const void * data, IPTR offset, ULONG count);
54 int strrncasecmp (const char *, const char *, int);
55 void RawPutChars (const UBYTE * string, int len);
56 BOOL IsDosEntryA (char *Name, ULONG Flags);
58 /* dos.library-compatible data generation */
59 BSTR CreateBSTR(CONST_STRPTR src);
60 BPTR __CreateSegList(APTR function, struct ExecBase *sysBase);
61 #define CreateSegList(func) __CreateSegList(func, SysBase)
64 * Taglist parsing functions.
65 * These functions are intended for use by early startup code only
66 * (where utility.library is not available yet).
67 * Please consider using utility.library whenever possible.
69 struct TagItem *LibNextTagItem(struct TagItem **tagListPtr);
70 struct TagItem *LibFindTagItem(Tag tagValue, const struct TagItem *tagList);
71 IPTR LibGetTagData(Tag tagValue, IPTR defaultVal, const struct TagItem *tagList);
73 /* AROS enhancements */
74 BOOL ReadByte (struct Hook *, UBYTE * dataptr, void * stream);
75 BOOL ReadWord (struct Hook *, UWORD * dataptr, void * stream);
76 BOOL ReadLong (struct Hook *, ULONG * dataptr, void * stream);
77 BOOL ReadFloat (struct Hook *, FLOAT * dataptr, void * stream);
78 BOOL ReadDouble (struct Hook *, DOUBLE * dataptr, void * stream);
79 BOOL ReadString (struct Hook *, STRPTR * dataptr, void * stream);
80 BOOL ReadStruct (struct Hook *, APTR * dataptr, void * stream, const IPTR * desc);
81 BOOL WriteByte (struct Hook *, UBYTE data, void * stream);
82 BOOL WriteWord (struct Hook *, UWORD data, void * stream);
83 BOOL WriteLong (struct Hook *, ULONG data, void * stream);
84 BOOL WriteFloat (struct Hook *, FLOAT data, void * stream);
85 BOOL WriteDouble (struct Hook *, DOUBLE data, void * stream);
86 BOOL WriteString (struct Hook *, STRPTR data, void * stream);
87 BOOL WriteStruct (struct Hook *, APTR data, void * stream, const IPTR * desc);
88 void FreeStruct (APTR s, const IPTR * desc);
90 /* RastPort manipulations */
91 struct RastPort *CreateRastPort(void);
92 struct RastPort *CloneRastPort(struct RastPort *rp);
93 void DeinitRastPort(struct RastPort *rp);
94 void FreeRastPort(struct RastPort *rp);
96 __END_DECLS
98 /* don't use SysBase->kprintf on AmigaOS, or AROS m68k */
99 #if defined(__AROS__) && !defined(__mc68000)
100 # define kprintf (((struct AROSSupportBase *)(SysBase->DebugAROSBase))->kprintf)
101 # define rkprintf (((struct AROSSupportBase *)(SysBase->DebugAROSBase))->rkprintf)
102 # define vkprintf (((struct AROSSupportBase *)(SysBase->DebugAROSBase))->vkprintf)
103 #endif
105 #endif /* CLIB_AROSSUPPORT_PROTOS_H */