
/* This file was generated by mkinline version 1.0. */

extern const long __DOSBase __asm__ ("_DOSBase");
extern const long __SysBase __asm__ ("_SysBase");

/*
 * Libraries and headers for PDC release 3.3 (C) 1989 Lionel Hummel.
 * PDC Software Distribution (C) 1989 Lionel Hummel and Paul Petersen.
 *
 * This code is freely redistributable upon the conditions that this
 * notice remains intact and that modified versions of this file not
 * be included as part of the PDC Software Distribution without the
 * express consent of the copyright holders.  No warrantee of any
 * kind is provided with this code.  For further information, contact:
 *
 *  PDC Software Distribution    Internet:                     BIX:
 *  P.O. Box 4006             or hummel@cs.uiuc.edu            lhummel
 *  Urbana, IL  61801-8801       petersen@uicsrd.csrd.uiuc.edu
 */

/* functions.h - Prototypes for Amiga library functions.
 *
 * Honestly, I think these should be provided in the Amiga header files.
 *
 * This list is not yet complete.
 */

/* This file contains prototypes for most of the commonly used functions
   in the exec.library and dos.library of Workbench Release 1.3.  This file
   should be included after the Amiga include files.  All of the Amiga library
   functions used in the C library code should be prototyped here. -ryb */


/* exec.library */
#ifdef EXEC_TYPES_H
__inline__ static void
CopyMem (APTR a0, APTR a1, ULONG a2)
{
  register long p __asm__ ("a6");
  register APTR b0 __asm__ ("a0");
  register APTR b1 __asm__ ("a1");
  register ULONG b2 __asm__ ("d0");
  p = __SysBase;
  b0 = a0;
  b1 = a1;
  b2 = a2;
  __asm__ volatile ("jbsr a6@(-624)" : : "r" (p), "r" (b0), "r" (b1), "r" (b2) : "d0", "d1", "a0", "a1");
}

__inline__ static void
Forbid (void)
{
  register long p __asm__ ("a6");
  p = __SysBase;
  __asm__ volatile ("jbsr a6@(-132)" : : "r" (p) : "d0", "d1", "a0", "a1");
}

__inline__ static void
Permit (void)
{
  register long p __asm__ ("a6");
  p = __SysBase;
  __asm__ volatile ("jbsr a6@(-138)" : : "r" (p) : "d0", "d1", "a0", "a1");
}


#  ifdef EXEC_PORTS_H
struct MsgPort	*CreatePort(char *, LONG);
__inline__ static struct MsgPort *
FindPort (char *a0)
{
  register long p __asm__ ("a6");
  register char *b0 __asm__ ("a1");
  register struct MsgPort *z __asm__ ("d0");
  p = __SysBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-390)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static struct Message *
GetMsg (struct MsgPort *a0)
{
  register long p __asm__ ("a6");
  register struct MsgPort *b0 __asm__ ("a0");
  register struct Message *z __asm__ ("d0");
  p = __SysBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-372)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static void
PutMsg (struct MsgPort *a0, struct Message *a1)
{
  register long p __asm__ ("a6");
  register struct MsgPort *b0 __asm__ ("a0");
  register struct Message *b1 __asm__ ("a1");
  p = __SysBase;
  b0 = a0;
  b1 = a1;
  __asm__ volatile ("jbsr a6@(-366)" : : "r" (p), "r" (b0), "r" (b1) : "d0", "d1", "a0", "a1");
}

__inline__ static void
ReplyMsg (struct Message *a0)
{
  register long p __asm__ ("a6");
  register struct Message *b0 __asm__ ("a1");
  p = __SysBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-378)" : : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
}

__inline__ static struct Message *
WaitPort (struct MsgPort *a0)
{
  register long p __asm__ ("a6");
  register struct MsgPort *b0 __asm__ ("a0");
  register struct Message *z __asm__ ("d0");
  p = __SysBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-384)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

#  endif

#  ifdef EXEC_TASKS_H
__inline__ static struct Task *
FindTask (char *a0)
{
  register long p __asm__ ("a6");
  register char *b0 __asm__ ("a1");
  register struct Task *z __asm__ ("d0");
  p = __SysBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-294)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

#  endif

#  ifdef EXEC_MEMORY_H
__inline__ static void *
AllocMem (ULONG a0, ULONG a1)
{
  register long p __asm__ ("a6");
  register ULONG b0 __asm__ ("d0");
  register ULONG b1 __asm__ ("d1");
  register void *z __asm__ ("d0");
  p = __SysBase;
  b0 = a0;
  b1 = a1;
  __asm__ volatile ("jbsr a6@(-198)" : "=r" (z) : "r" (p), "r" (b0), "r" (b1) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static void
FreeMem (void *a0, ULONG a1)
{
  register long p __asm__ ("a6");
  register void *b0 __asm__ ("a1");
  register ULONG b1 __asm__ ("d0");
  p = __SysBase;
  b0 = a0;
  b1 = a1;
  __asm__ volatile ("jbsr a6@(-210)" : : "r" (p), "r" (b0), "r" (b1) : "d0", "d1", "a0", "a1");
}

#  endif
#  ifdef EXEC_LIBRARIES_H
__inline__ static struct Library *
OpenLibrary (char *a0, ULONG a1)
{
  register long p __asm__ ("a6");
  register char *b0 __asm__ ("a1");
  register ULONG b1 __asm__ ("d0");
  register struct Library *z __asm__ ("d0");
  p = __SysBase;
  b0 = a0;
  b1 = a1;
  __asm__ volatile ("jbsr a6@(-552)" : "=r" (z) : "r" (p), "r" (b0), "r" (b1) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static void
CloseLibrary (struct Library *a0)
{
  register long p __asm__ ("a6");
  register struct Library *b0 __asm__ ("a1");
  p = __SysBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-414)" : : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
}

#  endif
#  ifdef EXEC_ALERTS_H
__inline__ static void
Alert (ULONG a0, APTR a1)
{
  register long p __asm__ ("a6");
  register ULONG b0 __asm__ ("d7");
  register APTR b1 __asm__ ("a5");
  p = __SysBase;
  b0 = a0;
  b1 = a1;
  __asm__ volatile ("jbsr a6@(-108)" : : "r" (p), "r" (b0), "r" (b1) : "d0", "d1", "a0", "a1");
}

#  endif
#endif

/* dos.library */
#ifdef LIBRARIES_DOS_H
__inline__ static void
Close (BPTR a0)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  p = __DOSBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-36)" : : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
}

__inline__ static BPTR
CurrentDir (BPTR a0)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  register BPTR z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-126)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static void
Delay (ULONG a0)
{
  register long p __asm__ ("a6");
  register ULONG b0 __asm__ ("d1");
  p = __DOSBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-198)" : : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
}

__inline__ static BOOL
DeleteFile (char *a0)
{
  register long p __asm__ ("a6");
  register char *b0 __asm__ ("d1");
  register BOOL z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-72)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static struct DateStamp *
DateStamp (struct DateStamp *a0)
{
  register long p __asm__ ("a6");
  register struct DateStamp *b0 __asm__ ("d1");
  register struct DateStamp *z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-192)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BPTR
DupLock (BPTR a0)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  register BPTR z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-96)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BPTR
Input (void)
{
  register long p __asm__ ("a6");
  register BPTR z __asm__ ("d0");
  p = __DOSBase;
  __asm__ volatile ("jbsr a6@(-54)" : "=r" (z) : "r" (p) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static LONG
IoErr (void)
{
  register long p __asm__ ("a6");
  register LONG z __asm__ ("d0");
  p = __DOSBase;
  __asm__ volatile ("jbsr a6@(-132)" : "=r" (z) : "r" (p) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BOOL
IsInteractive (BPTR a0)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  register BOOL z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-216)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BPTR
LoadSeg (char *a0)
{
  register long p __asm__ ("a6");
  register char *b0 __asm__ ("d1");
  register BPTR z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-150)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BPTR
Lock (char *a0, LONG a1)
{
  register long p __asm__ ("a6");
  register char *b0 __asm__ ("d1");
  register LONG b1 __asm__ ("d2");
  register BPTR z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  b1 = a1;
  __asm__ volatile ("jbsr a6@(-84)" : "=r" (z) : "r" (p), "r" (b0), "r" (b1) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BPTR
Open (char *a0, LONG a1)
{
  register long p __asm__ ("a6");
  register char *b0 __asm__ ("d1");
  register LONG b1 __asm__ ("d2");
  register BPTR z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  b1 = a1;
  __asm__ volatile ("jbsr a6@(-30)" : "=r" (z) : "r" (p), "r" (b0), "r" (b1) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BPTR
Output (void)
{
  register long p __asm__ ("a6");
  register BPTR z __asm__ ("d0");
  p = __DOSBase;
  __asm__ volatile ("jbsr a6@(-60)" : "=r" (z) : "r" (p) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BPTR
ParentDir (BPTR a0)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  register BPTR z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-210)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static LONG
Read (BPTR a0, void *a1, LONG a2)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  register void *b1 __asm__ ("d2");
  register LONG b2 __asm__ ("d3");
  register LONG z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  b1 = a1;
  b2 = a2;
  __asm__ volatile ("jbsr a6@(-42)" : "=r" (z) : "r" (p), "r" (b0), "r" (b1), "r" (b2) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BOOL
Rename (char *a0, char *a1)
{
  register long p __asm__ ("a6");
  register char *b0 __asm__ ("d1");
  register char *b1 __asm__ ("d2");
  register BOOL z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  b1 = a1;
  __asm__ volatile ("jbsr a6@(-78)" : "=r" (z) : "r" (p), "r" (b0), "r" (b1) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static LONG
Seek (BPTR a0, LONG a1, LONG a2)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  register LONG b1 __asm__ ("d2");
  register LONG b2 __asm__ ("d3");
  register LONG z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  b1 = a1;
  b2 = a2;
  __asm__ volatile ("jbsr a6@(-66)" : "=r" (z) : "r" (p), "r" (b0), "r" (b1), "r" (b2) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static LONG
SetSignal (ULONG a0, ULONG a1)
{
  register long p __asm__ ("a6");
  register ULONG b0 __asm__ ("d0");
  register ULONG b1 __asm__ ("d1");
  register LONG z __asm__ ("d0");
  p = __SysBase;
  b0 = a0;
  b1 = a1;
  __asm__ volatile ("jbsr a6@(-306)" : "=r" (z) : "r" (p), "r" (b0), "r" (b1) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BOOL
UnLoadSeg (BPTR a0)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  register BOOL z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-156)" : "=r" (z) : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static void
UnLock (BPTR a0)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  p = __DOSBase;
  b0 = a0;
  __asm__ volatile ("jbsr a6@(-90)" : : "r" (p), "r" (b0) : "d0", "d1", "a0", "a1");
}

__inline__ static LONG
Write (BPTR a0, void *a1, LONG a2)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  register void *b1 __asm__ ("d2");
  register LONG b2 __asm__ ("d3");
  register LONG z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  b1 = a1;
  b2 = a2;
  __asm__ volatile ("jbsr a6@(-48)" : "=r" (z) : "r" (p), "r" (b0), "r" (b1), "r" (b2) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BOOL
Examine (BPTR a0, struct FileInfoBlock *a1)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  register struct FileInfoBlock *b1 __asm__ ("d2");
  register BOOL z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  b1 = a1;
  __asm__ volatile ("jbsr a6@(-102)" : "=r" (z) : "r" (p), "r" (b0), "r" (b1) : "d0", "d1", "a0", "a1");
  return z;
}

__inline__ static BOOL
ExNext (BPTR a0, struct FileInfoBlock *a1)
{
  register long p __asm__ ("a6");
  register BPTR b0 __asm__ ("d1");
  register struct FileInfoBlock *b1 __asm__ ("d2");
  register BOOL z __asm__ ("d0");
  p = __DOSBase;
  b0 = a0;
  b1 = a1;
  __asm__ volatile ("jbsr a6@(-108)" : "=r" (z) : "r" (p), "r" (b0), "r" (b1) : "d0", "d1", "a0", "a1");
  return z;
}

#endif

#ifdef DOS37EM
#include <dos37em.h>
#endif
