
/*
 *  DEFS.H
 */

#include <exec/types.h>
#include <exec/nodes.h>
#include <exec/lists.h>
#include <exec/ports.h>
#include <exec/memory.h>

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#include <libraries/dos.h>
#include <libraries/dosextens.h>
#include <libraries/filehandler.h>

/*
 *  ACTIONS which do not exist in dosextens.h but which indeed exist on
 *  the Amiga.
 */

#define ACTION_OPENAPPEND   8192
#define ACTION_OPENRW	    1004
#define ACTION_OPENOLD	    1005
#define ACTION_OPENNEW	    1006
#define ACTION_CLOSE	    1007
#define ACTION_SEEK	    1008
#define ACTION_RAWMODE	    994
#define ACTION_MORECACHE    18
#define ACTION_FLUSH	    27

#define CTOB(x) (void *)(((long)(x))>>2)    /*  BCPL conversion */
#define BTOC(x) (void *)(((long)(x))<<2)

#define DOS_FALSE   0
#define DOS_TRUE    -1

typedef unsigned char	ubyte;		    /*	unsigned quantities	    */
typedef unsigned short	uword;
typedef unsigned long	ulong;

typedef struct Interrupt	Interrupt;
typedef struct Task		Task;
typedef struct FileInfoBlock	FIB;
typedef struct DosPacket	DosPacket;
typedef struct Process		Process;
typedef struct CommandLineInterface CLI;
typedef struct DeviceNode	DeviceNode;
typedef struct DeviceList	DeviceList;
typedef struct DosInfo		DosInfo;
typedef struct RootNode 	RootNode;
typedef struct FileHandle	FileHandle;
typedef struct MsgPort		MsgPort;
typedef struct Message		Message;
typedef struct MinList		MinList;
typedef struct MinNode		MinNode;
typedef struct Node		Node;
typedef struct DateStamp	DateStamp;
typedef struct InfoData 	InfoData;
typedef struct DosLibrary	DosLibrary;

#define Prototype   extern
#define Local	    static

typedef struct XMsgPort {
    MsgPort Port;
    Process *Proc;
    char    *FileName;
    APTR    OldConsoleTask;
    long    Segment;
} XMsgPort;

Prototype void *FindTask();
Prototype void *CreatePort();
Prototype void *GetMsg();
Prototype void *FindPort();
Prototype void *AllocMem();
Prototype void *GetHead();
Prototype void *GetTail();
Prototype void *GetSucc();
Prototype void *GetPred();
Prototype void *RemHead();
Prototype void *RemTail();

static char *_File = __BASE_FILE__;


