home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 6
/
Sonderheft_6-96.iso
/
pd
/
libraries
/
reqtools
/
glue
/
gcc
/
gcc_glue.lha
/
inline
/
reqtools.h
Wrap
C/C++ Source or Header
|
1993-03-14
|
10KB
|
323 lines
#ifndef _INLINE_REQTOOLS_H
#define _INLINE_REQTOOLS_H
#include <sys/cdefs.h>
#include <inline/stubs.h>
#include <intuition/intuition.h>
#include <libraries/reqtools.h>
#include <clib/reqtools_protos.h>
__BEGIN_DECLS
#ifndef BASE_EXT_DECL
#define BASE_EXT_DECL extern struct ReqToolsBase * ReqToolsBase;
#endif
#ifndef BASE_PAR_DECL
#define BASE_PAR_DECL
#define BASE_PAR_DECL0 void
#endif
#ifndef BASE_NAME
#define BASE_NAME ReqToolsBase
#endif
static __inline void
rtUnlockWindow (BASE_PAR_DECL struct Window * win, APTR winlock)
{
BASE_EXT_DECL
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register struct Window * a0 __asm("a0") = win;
register APTR a1 __asm("a1") = winlock;
__asm __volatile ("jsr a6@(-162)"
: /* no output */
: "r" (a6), "r" (a0), "r" (a1)
: "a0", "a1", "memory");
}
static __inline APTR
rtLockWindow (BASE_PAR_DECL struct Window * win)
{
BASE_EXT_DECL
register APTR _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register struct Window * a0 __asm("a0") = win;
__asm __volatile ("jsr a6@(-156)"
: "=r" (_res)
: "r" (a6), "r" (a0)
: "a0", "memory");
return _res;
}
static __inline void
rtCloseWindowSafely (BASE_PAR_DECL struct Window * win)
{
BASE_EXT_DECL
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register struct Window * a0 __asm("a0") = win;
__asm __volatile ("jsr a6@(-150)"
: /* no output */
: "r" (a6), "r" (a0)
: "a0", "memory");
}
static __inline ULONG
rtScreenModeRequestA (BASE_PAR_DECL struct rtScreenModeRequester * screenmodereq, char * title, struct TagItem * taglist)
{
BASE_EXT_DECL
register ULONG _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register struct rtScreenModeRequester * a1 __asm("a1") = screenmodereq;
register char * a3 __asm("a3") = title;
register struct TagItem * a0 __asm("a0") = taglist;
__asm __volatile ("jsr a6@(-144)"
: "=r" (_res)
: "r" (a6), "r" (a1), "r" (a3), "r" (a0)
: "a0", "a1", "a3", "memory");
return _res;
}
static __inline void
rtScreenToFrontSafely (BASE_PAR_DECL struct Screen * screen)
{
BASE_EXT_DECL
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register struct Screen * a0 __asm("a0") = screen;
__asm __volatile ("jsr a6@(-138)"
: /* no output */
: "r" (a6), "r" (a0)
: "a0", "memory");
}
static __inline void
rtSpread (BASE_PAR_DECL ULONG * posarray, ULONG * sizearray, ULONG length, ULONG min, ULONG max, ULONG num)
{
BASE_EXT_DECL
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register ULONG * a0 __asm("a0") = posarray;
register ULONG * a1 __asm("a1") = sizearray;
register ULONG d0 __asm("d0") = length;
register ULONG d1 __asm("d1") = min;
register ULONG d2 __asm("d2") = max;
register ULONG d3 __asm("d3") = num;
__asm __volatile ("jsr a6@(-132)"
: /* no output */
: "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
: "a0", "a1", "d0", "d1", "d2", "d3", "memory");
}
static __inline void
rtSetReqPosition (BASE_PAR_DECL ULONG reqpos, struct NewWindow * newwindow, struct Screen * screen, struct Window * window)
{
BASE_EXT_DECL
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register ULONG d0 __asm("d0") = reqpos;
register struct NewWindow * a0 __asm("a0") = newwindow;
register struct Screen * a1 __asm("a1") = screen;
register struct Window * a2 __asm("a2") = window;
__asm __volatile ("jsr a6@(-126)"
: /* no output */
: "r" (a6), "r" (d0), "r" (a0), "r" (a1), "r" (a2)
: "a0", "a1", "a2", "d0", "memory");
}
static __inline ULONG
rtGetVScreenSize (BASE_PAR_DECL struct Screen * screen, ULONG * widthptr, ULONG * heightptr)
{
BASE_EXT_DECL
register ULONG _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register struct Screen * a0 __asm("a0") = screen;
register ULONG * a1 __asm("a1") = widthptr;
register ULONG * a2 __asm("a2") = heightptr;
__asm __volatile ("jsr a6@(-120)"
: "=r" (_res)
: "r" (a6), "r" (a0), "r" (a1), "r" (a2)
: "a0", "a1", "a2", "memory");
return _res;
}
static __inline void
rtSetWaitPointer (BASE_PAR_DECL struct Window * window)
{
BASE_EXT_DECL
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register struct Window * a0 __asm("a0") = window;
__asm __volatile ("jsr a6@(-114)"
: /* no output */
: "r" (a6), "r" (a0)
: "a0", "memory");
}
static __inline ULONG
rtReqHandlerA (BASE_PAR_DECL struct rtHandlerInfo * handlerinfo, ULONG sigs, struct TagItem * taglist)
{
BASE_EXT_DECL
register ULONG _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register struct rtHandlerInfo * a1 __asm("a1") = handlerinfo;
register ULONG d0 __asm("d0") = sigs;
register struct TagItem * a0 __asm("a0") = taglist;
__asm __volatile ("jsr a6@(-108)"
: "=r" (_res)
: "r" (a6), "r" (a1), "r" (d0), "r" (a0)
: "a0", "a1", "d0", "memory");
return _res;
}
static __inline LONG
rtPaletteRequestA (BASE_PAR_DECL char * title, struct rtReqInfo * reqinfo, struct TagItem * taglist)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register char * a2 __asm("a2") = title;
register struct rtReqInfo * a3 __asm("a3") = reqinfo;
register struct TagItem * a0 __asm("a0") = taglist;
__asm __volatile ("jsr a6@(-102)"
: "=r" (_res)
: "r" (a6), "r" (a2), "r" (a3), "r" (a0)
: "a0", "a2", "a3", "memory");
return _res;
}
static __inline ULONG
rtFontRequestA (BASE_PAR_DECL struct rtFontRequester * fontreq, char * title, struct TagItem * taglist)
{
BASE_EXT_DECL
register ULONG _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register struct rtFontRequester * a1 __asm("a1") = fontreq;
register char * a3 __asm("a3") = title;
register struct TagItem * a0 __asm("a0") = taglist;
__asm __volatile ("jsr a6@(-96)"
: "=r" (_res)
: "r" (a6), "r" (a1), "r" (a3), "r" (a0)
: "a0", "a1", "a3", "memory");
return _res;
}
static __inline ULONG
rtGetLongA (BASE_PAR_DECL ULONG * longptr, char * title, struct rtReqInfo * reqinfo, struct TagItem * taglist)
{
BASE_EXT_DECL
register ULONG _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register ULONG * a1 __asm("a1") = longptr;
register char * a2 __asm("a2") = title;
register struct rtReqInfo * a3 __asm("a3") = reqinfo;
register struct TagItem * a0 __asm("a0") = taglist;
__asm __volatile ("jsr a6@(-78)"
: "=r" (_res)
: "r" (a6), "r" (a1), "r" (a2), "r" (a3), "r" (a0)
: "a0", "a1", "a2", "a3", "memory");
return _res;
}
static __inline ULONG
rtGetStringA (BASE_PAR_DECL UBYTE * buffer, ULONG maxchars, char * title, struct rtReqInfo * reqinfo, struct TagItem * taglist)
{
BASE_EXT_DECL
register ULONG _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register UBYTE * a1 __asm("a1") = buffer;
register ULONG d0 __asm("d0") = maxchars;
register char * a2 __asm("a2") = title;
register struct rtReqInfo * a3 __asm("a3") = reqinfo;
register struct TagItem * a0 __asm("a0") = taglist;
__asm __volatile ("jsr a6@(-72)"
: "=r" (_res)
: "r" (a6), "r" (a1), "r" (d0), "r" (a2), "r" (a3), "r" (a0)
: "a0", "a1", "a2", "a3", "d0", "memory");
return _res;
}
static __inline ULONG
rtEZRequestA (BASE_PAR_DECL char * bodyfmt, char * gadfmt, struct rtReqInfo * reqinfo, APTR argarray, struct TagItem * taglist)
{
BASE_EXT_DECL
register ULONG _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register char * a1 __asm("a1") = bodyfmt;
register char * a2 __asm("a2") = gadfmt;
register struct rtReqInfo * a3 __asm("a3") = reqinfo;
register APTR a4 __asm("a4") = argarray;
register struct TagItem * a0 __asm("a0") = taglist;
__asm __volatile ("jsr a6@(-66)"
: "=r" (_res)
: "r" (a6), "r" (a1), "r" (a2), "r" (a3), "r" (a4), "r" (a0)
: "a0", "a1", "a2", "a3", "a4", "memory");
return _res;
}
static __inline void
rtFreeFileList (BASE_PAR_DECL struct rtFileList * filelist)
{
BASE_EXT_DECL
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register struct rtFileList * a0 __asm("a0") = filelist;
__asm __volatile ("jsr a6@(-60)"
: /* no output */
: "r" (a6), "r" (a0)
: "a0", "memory");
}
static __inline APTR
rtFileRequestA (BASE_PAR_DECL struct rtFileRequester * filereq, char * file, char * title, struct TagItem * taglist)
{
BASE_EXT_DECL
register APTR _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register struct rtFileRequester * a1 __asm("a1") = filereq;
register char * a2 __asm("a2") = file;
register char * a3 __asm("a3") = title;
register struct TagItem * a0 __asm("a0") = taglist;
__asm __volatile ("jsr a6@(-54)"
: "=r" (_res)
: "r" (a6), "r" (a1), "r" (a2), "r" (a3), "r" (a0)
: "a0", "a1", "a2", "a3", "memory");
return _res;
}
static __inline LONG
rtChangeReqAttrA (BASE_PAR_DECL APTR req, struct TagItem * taglist)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register APTR a1 __asm("a1") = req;
register struct TagItem * a0 __asm("a0") = taglist;
__asm __volatile ("jsr a6@(-48)"
: "=r" (_res)
: "r" (a6), "r" (a1), "r" (a0)
: "a0", "a1", "memory");
return _res;
}
static __inline void
rtFreeReqBuffer (BASE_PAR_DECL APTR req)
{
BASE_EXT_DECL
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register APTR a1 __asm("a1") = req;
__asm __volatile ("jsr a6@(-42)"
: /* no output */
: "r" (a6), "r" (a1)
: "a1", "memory");
}
static __inline void
rtFreeRequest (BASE_PAR_DECL APTR req)
{
BASE_EXT_DECL
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register APTR a1 __asm("a1") = req;
__asm __volatile ("jsr a6@(-36)"
: /* no output */
: "r" (a6), "r" (a1)
: "a1", "memory");
}
static __inline APTR
rtAllocRequestA (BASE_PAR_DECL ULONG type, struct TagItem * taglist)
{
BASE_EXT_DECL
register APTR _res __asm("d0");
register struct ReqToolsBase * a6 __asm("a6") = BASE_NAME;
register ULONG d0 __asm("d0") = type;
register struct TagItem * a0 __asm("a0") = taglist;
__asm __volatile ("jsr a6@(-30)"
: "=r" (_res)
: "r" (a6), "r" (d0), "r" (a0)
: "a0", "d0", "memory");
return _res;
}
#undef BASE_EXT_DECL
#undef BASE_PAR_DECL
#undef BASE_PAR_DECL0
#undef BASE_NAME
__END_DECLS
#endif /* _INLINE_REQTOOLS_H */