/*
 * 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
void		 CopyMem(APTR, APTR, ULONG);
void		 Forbid(void);
void		 Permit(void);

#  ifdef EXEC_PORTS_H
struct MsgPort	*CreatePort(char *, LONG);
struct MsgPort	*FindPort(char *);
struct Message	*GetMsg(struct MsgPort *);
void		 PutMsg(struct MsgPort *, struct Message *);
void		 ReplyMsg(struct Message *);
struct Message	*WaitPort(struct MsgPort *);
#  endif

#  ifdef EXEC_TASKS_H
struct Task	*FindTask(char *);
#  endif

#  ifdef EXEC_MEMORY_H
void		*AllocMem(ULONG, ULONG);
void		 FreeMem(void *, ULONG);
#  endif
#  ifdef EXEC_LIBRARIES_H
struct Library	*OpenLibrary(char *, ULONG);
void		 CloseLibrary(struct Library *);
#  endif
#  ifdef EXEC_ALERTS_H
void		 Alert(ULONG, APTR);
#  endif
#endif

/* dos.library */
#ifdef LIBRARIES_DOS_H
void		 Close(BPTR);
BPTR		 CurrentDir(BPTR);
void		 Delay(ULONG);
BOOL		 DeleteFile(char *);
struct DateStamp *DateStamp(struct DateStamp *);
BPTR		 DupLock(BPTR);
BPTR		 Input(void);
LONG		 IoErr(void);
BOOL		 IsInteractive(BPTR);
BPTR		 LoadSeg(char *);
BPTR		 Lock(char *, LONG);
BPTR		 Open(char *, LONG);
BPTR		 Output(void);
BPTR		 ParentDir(BPTR);
LONG		 Read(BPTR, void *, LONG);
BOOL		 Rename(char *, char *);
LONG		 Seek(BPTR, LONG, LONG);
LONG		 SetSignal(ULONG, ULONG);
BOOL		 UnLoadSeg(BPTR);
void		 UnLock(BPTR);
LONG		 Write(BPTR, void *, LONG);
BOOL		 Examine(BPTR, struct FileInfoBlock *);
BOOL		 ExNext(BPTR, struct FileInfoBlock *);
#endif

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