/*********************************** * * * Janus.h aus Amiga INTERN * * * ***********************************/ #ifndef JANUS #define JANUS #define RPTR SHORT #include #include struct JanusRemember { RPTR NextRemember; RPTR Offset; USHORT Size; USHORT Type; }; #define MEM_TYPEMASK 0x00FF #define MEMF_PARAMETER 1 #define MEMF_BUFFER 2 #define MEM_ACCESSMASK 0x3000 #define MEM_BYTEACCESS 0x0000 #define MEM_WORDACCESS 0x1000 #define MEM_GRAPHICACCESS 0x2000 #define MEM_IOACCESS 0x3000 extern SHORT AddService(struct ServiceData **data, ULONG appID, USHORT locID, USHORT size, USHORT type, SHORT sigNr, USHORT flags); extern void CallService(struct ServiceData *data); extern void DeleteService(struct ServiceData *data); extern SHORT GetService(struct ServiceData **data, ULONG appID, USHORT locID, SHORT sigNr, USHORT flags); extern void ReleaseService(struct ServiceData *data); extern void UnlockServiceData(struct ServiceData *data); extern void LockServiceData(struct ServiceData *data); extern APTR AllocJanusMem(ULONG size, ULONG type); extern APTR AllocJRemember(struct JanusRemember **jrememberkey, USHORT size, USHORT type); extern APTR AllocServiceMem(struct ServiceData *data, USHORT size, USHORT type); extern void AttachRemember(struct JanusRemember **tokey, struct JanusRemember **fromkey); extern void FreeJanusMem(APTR ptr, ULONG size); extern void FreeJRemember(struct JanusRemember **jrememberkey, BOOL reallyforget); extern void FreeServiceMem(struct ServiceData *data, APTR ptr); extern APTR GetJanusStart(void); extern APTR JanusMemBase(ULONG type); extern USHORT JanusMemToOffset(APTR ptr); extern ULONG JanusMemType(APTR ptr); extern APTR JanusOffsetToMem(USHORT offset, USHORT type); extern void JBCopy(APTR source, APTR dest, ULONG len); extern void JanusLock(UBYTE *byteptr); extern BOOL JanusLockAttempt(UBYTE *byteptr); extern void JanusUnlock(UBYTE *byteptr); extern BYTE * MakeBytePtr(APTR ptr); extern BYTE * MakeWordPtr(APTR ptr); extern APTR TranslateJanusPtr(APTR ptr, USHORT type); extern ULONG CheckJanusInt(ULONG janusintnr); extern void CleanupJanusSig(struct SetupSig *setupsig); extern SHORT GetParamOffset(ULONG janusintnr); extern void SendJanusInt(ULONG janusintnr); extern ULONG SetJanusEnable(ULONG janusintnr, ULONG enable); extern APTR SetJanusHandler(ULONG janusintnr, APTR inthandler); extern ULONG SetJanusRequest(ULONG janusintnr, ULONG request); extern USHORT SetParamOffset(ULONG janusintnr, USHORT offset); extern struct SetupSig * SetupJanusSig(USHORT janusintnr, USHORT signr, ULONG size, ULONG type); #endif