#ifndef  CLIB_DPKERNEL_PROTOS_H
#define  CLIB_DPKENREL_PROTOS_H

#ifndef  DPKERNEL_H
#include <dpkernel/dpkernel.h>
#endif

/*
**  $VER: dpkernel_protos.h V0.9B
**
**  C prototypes.
**
**  (C) Copyright 1996-1997 DreamWorld Productions.
**      All Rights Reserved.
*/

ECODE  Activate(APTR Object);
struct Event * AddSysEvent(APTR TagList);
struct Event * AddSysEventTags(ULONG tag1Type, ...);
struct SysObject * AddSysObject(WORD ID, BYTE *Name, APTR TagList);
struct SysObject * AddSysObjectTags(WORD ID, BYTE *Name, ULONG tag1Type, ...);
LONG   AddTrack(LONG Resource, LONG Data, APTR Routine);
APTR   AllocMemBlock(LONG Size, LONG MemType);
void   Armageddon(LONG Key);
LONG   Awaken(struct DPKTask *);
LONG   CallEventList(LONG ID, APTR Arg1, LONG Arg2);
LONG   Clear(APTR Object);
void   CloseDPK(void);
LONG   CopyStructure(APTR Source, APTR Destination);
LONG   Deactivate(APTR Object);
LONG   DebugActive(void);
void   DebugInactive(void);
void   DebugMessage(LONG Type, char *Text);
void   DeleteTrack(LONG Key);
LONG   Detach(APTR Object1, APTR Object2);
ECODE  Display(APTR Object);
void   DPKForbid(void);
void   DPKPermit(void);
void   DPrintF(const BYTE *, ...);
ECODE  Draw(APTR Object);
ECODE  ErrCode(LONG ErrorCode);
LONG   FastRandom(LONG Range);
struct DPKTask *   FindDPKTask(void);
struct SysObject * FindSysObject(WORD ID, struct SysObject *);
LONG   FingerOfDeath(struct DPKTask *);
void   Free(APTR Object);
void   FreeMemBlock(APTR MemBlock);
APTR   Get(LONG ID);
LONG   GetMemSize(APTR MemBlock);
LONG   GetMemType(APTR MemBlock);
void   Hide(APTR Object);
APTR   Load(APTR Source, WORD ID);
void   InitDestruct(void *DestructCode, APTR DestructStack);
APTR   Init(APTR Object, APTR Container);
APTR   InitTags(APTR Container, ULONG tag1Type, ...);
APTR   InitTagList(struct TagItem *, APTR Container);
struct Module * OpenModule(LONG ID, BYTE *Name);
ECODE  Query(APTR Object);
LONG   Read(APTR Object, APTR Buffer, LONG Length);
LONG   RemapKernel(APTR Functions);
void   RemSysEvent(struct Event *);
void   RemSysObject(struct SysObject *, APTR Tags);
void   RemSysObjectTags(struct SysObject *, ULONG tag1Type, ...);
void   SelfDestruct(void);
LONG   SlowRandom(LONG Range);
void   StepBack(void);
LONG   Stream(APTR SrcObject, APTR DestObject, LONG Length);
LONG   TagInit(APTR Structure, APTR TagList);
LONG   Write(APTR Object, APTR Buffer, LONG Length);
void   WaitTime(WORD MicroSeconds);

#endif /* CLIB_DPKERNEL_PROTOS_H */

