/***********************************
*                                  *
* Services.h aus Amiga INTERN      *
*                                  *
***********************************/

#define	JSERV_MINT		 0
#define	JSERV_GINT		 1
#define	JSERV_CRT1INT		 2
#define	JSERV_CRT2INT		 3
#define	JSERV_ENBKB		 4
#define	JSERV_LPT1INT		 5
#define	JSERV_COM2INT		 6
#define	JSERV_PCBOOTED		 7
#define	JSERV_SCROLL		 8
#define	JSERV_HARDDISK		 9
#define	JSERV_READAmiga		10
#define	JSERV_READPC		11
#define	JSERV_AmigaCALL		12
#define	JSERV_PCCALL		13
#define	JSERV_AmigaSERVICE	14
#define	JSERV_PCSERVICE		15

struct ServiceData
{
	ULONG	ApplicationID;
	USHORT	LocalID;
	USHORT	Flags;
#define SERVICE_DELETED   1
#define EXPUNGE_SERVICE   2
#define SERVICE_AmigaSIDE 4
#define Amiga_MEMPTR      0x0100
#define PC_MEMPTR         0x0200
	UBYTE	ServiceDataLock;
	UBYTE	UserCount;
	USHORT	MemSize;
	USHORT	MemType;
	RPTR	MemOffset;
	APTR	AmigaMemPtr;
	APTR	PCMemPtr;
	RPTR	JRememberKey;
	RPTR	NextServiceData;
	APTR	FirstPCCustomer;
	APTR	FirstAmigaCustomer;
	ULONG	ZaphodReserved[4];
	};

#define	ADDS_EXCLUSIVE		0x0001
#define	ADDS_TOPC_ONLY		0x0002
#define	ADDS_FROMPC_ONLY	0x0004
#define	ADDS_TOAmiga_ONLY	0x0008
#define	ADDS_FROMAmiga_ONLY	0x0010
#define	ADDS_LOCKDATA		0x0020
#define	SD_CREATED		0x0100

#define	GETS_WAIT		0x0001
#define	GETS_TOPC_ONLY		0x0002
#define	GETS_FROMPC_ONLY	0x0004
#define	GETS_TOAmiga_ONLY	0x0008
#define	GETS_FROMAmiga_ONLY	0x0010
#define	GETS_EXCLUSIVE		0x0020
#define	GETS_ALOAD_A		0x0040
#define	GETS_ALOAD_PC		0x0080

#define	JSERV_OK		0
#define	JSERV_NOJANUSMEM	1
#define	JSERV_NOAmigaMEM	2
#define	JSERV_NOPCMEM		3
#define	JSERV_NOSERVICE		4
#define	JSERV_DUPSERVICE	5
