#ifndef _FUNCTIONS_H
#define _FUNCTIONS_H 1

/****************************************************************************
*
*	Manx "functions.h", updated for Kick 1.3
*
*	Spelling mistakes (such as "struct Font *" or "struct Lock *")
*	removed 29-Apr-89 by Olaf Barthel of ED Electronic Design Hannover.
*
*	The function results were taken from the Amiga ROM Kernel
*	Reference Manual: Includes & Autodocs. If there is still
*	anything wrong, change it and send me a copy of this file.
*
*	There are still some definitions which I expect to be obsolete,
*	for example the CList functions.
*	
*	This file updated by:	Olaf Barthel
*				Brabeckstrasse 35
*				D-3000 Hannover 71
*
*				Federal Republic of Germany
*
****************************************************************************/

extern int Enable_Abort;

long				AbleICR();
char	 			AbortIO();
long				ActivateGadget();
void				ActivateWindow();
void				AddAnimOb();
void				AddBob();
void				AddConfigDev();
void				AddDevice();
char				AddDosNode();
void				AddFont();
long				AddFreeList();
unsigned long			AddGadget();
unsigned long			AddGList();
void				AddHead();
struct Interrupt *		AddICRVector();
void				AddIntServer();
void				AddLibrary();
void				AddMemList();
void				AddPort();
void				AddResource();
void				AddSemaphore();
void				AddTail();
void				AddTask();
void				AddTime();		/* timer.device */
void				AddVSprite();
void				Alert();
void *				Allocate();
void *				AllocAbs();
long				AllocBoardMem();
long				AllocCList();
struct ConfigDev *		AllocConfigDev();
struct MemList *		AllocEntry();
long				AllocExpansionMem();
void *				AllocMem();
long				AllocPotBits();
unsigned char *			AllocRaster();
unsigned long			AllocRemember();
char				AllocSignal();
long				AllocTrap();
struct WBObject *		AllocWBObject();
void				AlohaWorkbench();
void				AndRectRegion();
long				AndRegionRegion();
void				Animate();
long				AreaDraw();
long				AreaEllipse();
long				AreaEnd();
long				AreaMove();
void				AskFont();
unsigned long			AskSoftStyle();
long				AttemptLockLayerRom();
long				AttemptSemaphore();
long				AutoRequest();
long				AvailFonts();
unsigned long			AvailMem();

void				BeginIO();
void				BeginRefresh();
long				BeginUpdate();
long				BehindLayer();
unsigned long			BltBitMap();
long				BltBitMapRastPort();
void				BltClear();
void				BltMaskBitMapRastPort();
void				BltPattern();
void				BltTemplate();
struct Window *			BuildSysRequest();
char *				BumpRevision();

void				Cause();
void				CBump();
struct InputEvent *		CDInputHandler();	/* console.device */
void				ChangeSprite();
struct IORequest *		CheckIO();
long				ClearDMRequest();
void				ClearEOL();
void				ClearMenuStrip();
void				ClearPointer();
long				ClearRectRegion();
void				ClearRegion();
void				ClearScreen();
void				ClipBit();
void				Close();
void				CloseDevice();
void				CloseFont();
void				CloseLibrary();
void				CloseScreen();
void				CloseWindow();
long				CloseWorkBench();
void				CMove();
long				CmpTime();		/* timer.device */
long				ConcatCList();
long				ConfigBoard();
long				ConfigChain();
long				CopperListInit();
long				CopyCList();
void				CopyMem();
void				CopyMemQuick();
void				CopySBitMap();
struct Layer *			CreateBehindLayer();
struct FileLock *		CreateDir();
struct IORequest *		CreateExtIO();
struct MsgPort *		CreatePort();
struct Process *		CreateProc();
struct IOStdReq *		CreateStdIO();
struct Task *			CreateTask();
struct Layer *			CreateUpfrontLayer();
struct FileLock *		CurrentDir();
void				CurrentTime();
void				CWait();

long *				DateStamp();
void				Deallocate();
void				Debug();
void				Delay();
long				DeleteFile();
long				DeleteLayer();
void				DeletePort();
void				DeleteStdIO();
void				DeleteTask();
struct MsgPort *		DeviceProc();
void				Disable();
void				DisownBlitter();
long				DisplayAlert();
void				DisplayBeep();
void				DisposeRegion();
void				DisposeLayerInfo();
void				DisposeFontContents();
void				DoCollision();
char				DoIO();
long				DoubleClick();
void				Draw();
void				DrawBorder();
void				DrawEllipse();
void				DrawGList();
void				DrawImage();
struct FileLock *		DupLock();

void				Enable();
void				EndRefresh();
void				EndRequest();
void				EndUpdate();
void				Enqueue();
long				ExNext();
long				Examine();
long				Execute();
void				Exit();

struct ConfigDev *		FindConfigDev();
struct Node *			FindName();
struct MsgPort *		FindPort();
struct Resident *		FindResident();
struct SignalSemaphore *	FindSemaphore();
struct Task *			FindTask();
char *				FindToolType();
long				Flood();
void				FlushCList();
void				Forbid();
void				FreeBoardMem();
void				FreeCList();
void				FreeColorMap();
void				FreeConfigDev();
void				FreeCopList();
void				FreeCprList();
void				FreeDiskObject();
void				FreeEntry();
void				FreeExpansionMem();
void				FreeFreeList();
void				FreeGBuffers();
void				FreeMem();
void				FreePotBits();
void				FreeRaster();
void				FreeRemember();
void				FreeSignal();
void				FreeSprite();
void				FreeSysRequest();
void				FreeTrap();
void				FreeVPortCopLists();
void				FreeWBObject();

unsigned short			GetCC();
long				GetCLBuf();
long				GetCLChar();
long				GetCLWord();
struct ColorMap *		GetColorMap();
long				GetCurrentBinding();
struct Preferences *		GetDefPrefs();
struct DiskObject *		GetDiskObject();
long				GetGBuffers();
long				GetIcon();
struct Message *		GetMsg();
struct Preferences *		GetPrefs();
unsigned long			GetRGB4();
long				GetScreenData();
long				GetSprite();
struct WBObject *		GetWBObject();

long				IncrCLMark();
long				Info();
void				InitArea();
void				InitBitMap();
long				InitCLPool();
void				InitCode();
void				InitGMasks();
void				InitGels();
void				InitMasks();
void				InitRastPort();
void				InitRequester();
void				InitResident();
void				InitSemaphore();
void				InitStruct();
void				InitTmpRas();
void				InitView();
void				InitVPort();
struct FileHandle *		Input();
void				Insert();
struct Region *			InstallClipRegion();
long				IntuiTextLength();
struct InputEvent *		Intuition();
long				IoErr();
long				IsInteractive();
unsigned char *			ItemAddress();

unsigned long			LockIBase();
void				LoadRGB4();
struct Segment *		LoadSeg();
void				LoadView();
struct FileLock *		Lock();
void				LockLayer();
void				LockLayerInfo();
void				LockLayerRom();
void				LockLayers();

struct DeviceNode *		MakeDosNode();
unsigned long			MakeFunctions();
struct Library *		MakeLibrary();
void				MakeScreen();
void				MakeVPort();
long				MarkCList();
long				MatchToolValue();
void				ModifyIDCMP();
void				ModifyProp();
void				Move();
long				MoveLayer();
long				MoveLayerInFrontOf();
void				MoveScreen();
void				MoveSprite();
void				MoveWindow();
void				MrgCop();

struct FontContentsHeader *	NewFontContents();
void				NewList();
void				NewModifyProp();
struct Region *			NewRegion();
struct Layer *			NewLayerInfo();

void				ObtainConfigBinding();
void				ObtainSemaphore();
void				ObtainSemaphoreList();
void				OffGadget();
void				OffMenu();
void				OnGadget();
void				OnMenu();
struct FileHandle *		Open();
char				OpenDevice();
struct TextFont *		OpenDiskFont();
struct TextFont *		OpenFont();
void				OpenIntuition();
struct Library *		OpenLibrary();
unsigned char *			OpenResource();
struct Screen *			OpenScreen();
struct Window *			OpenWindow();
struct Screen *			OpenWorkBench();
long				OrRectRegion();
long				OrRegionRegion();
struct FileHandle *		Output();
void				OwnBlitter();

struct FileLock *		ParentDir();
long				PeekCLMark();
void				Permit();
void				PolyDraw();
void				PrintIText();
char				Procure();
long				PutCLBuf();
long				PutCLChar();
long				PutCLWord();
long				PutDiskObject();
long				PutIcon();
void				PutMsg();
long				PutWBObject();

void				QBlit();
void				QBSBlit();

long				RawKeyConvert();	/* console.device */
void				RawDoFmt();
long				Read();
char				ReadExpansionByte();
long				ReadExpansionRom();
long				ReadPixel();
void				RectFill();
void				RefreshGadgets();
void				RefreshGList();
void				RefreshWindowFrame();
void				ReleaseConfigBinding();
void				ReleaseSemaphore();
void				ReleaseSemaphoreList();
void				RemBob();
void				RemConfigDev();
void				RemDevice();
void				RemFont();
struct Node *			RemHead();
void				RemIBob();
void				RemICRVector();
void				RemIntServer();
void				RemLibrary();
unsigned long			RemoveGList();
void				Remove();
void				RemPort();
void				RemResource();
void				RemSemaphore();
struct Node *			RemTail();
void				RemTask();
void				RemVSprite();
void				RemakeDisplay();
unsigned long			RemoveGadget();
long				Rename();
void				ReplyMsg();
void				ReportMouse();
long				Request();
void				RethinkDisplay();

void				ScreenToBack();
void				ScreenToFront();
void				ScrollLayer();
void				ScrollRaster();
void				ScrollVPort();
long				Seek();
void				SendIO();
void				SetAPen();
void				SetBPen();
void				SetCollision();
long				SetComment();
void				SetCurrentBinding();
long				SetDMRequest();
void				SetDRMd();
unsigned long			SetExcept();
void				SetFont();
unsigned char *			SetFunction();
long				SetICR();
struct Interrupt *		SetIntVector();
long				SetMenuStrip();
void				SetPointer();
struct Preferences *		SetPrefs();
long				SetProtection();
void				SetRast();
void				SetRGB4();
void				SetRGB4CM();
unsigned long			SetSignal();
unsigned long			SetSR();
unsigned long			SetSoftStyle();
char				SetTaskPri();
void				SetWindowTitles();
void				ShowTitle();
void				Signal();
long				SizeCList();
long				SizeLayer();
void				SizeWindow();
void				SortGList();
long				SplitCList();
long				SubCList();
void				SubTime();		/* timer.device */
void				SumKickData();
void				SumLibrary();
unsigned char *			SuperState();
void				SwapBitsRastPortClipRect();
void				SyncSBitMap();

void				Text();
long				TextLength();
long				Translate();
unsigned long			TypeOfMem();

long				UnGetCLChar();
long				UnGetCLWord();
void				UnLoadSeg();
void				UnLock();
long				UnPutCLChar();
long				UnPutCLWord();
void				UnlockLayer();
void				UnlockLayerInfo();
void				UnlockLayerRom();
void				UnlockLayers();
void				UnlockIBase();
long				UpfrontLayer();
void				UserState();

void				Vacate();
long				VBeamPos();
struct View *			ViewAddress();
struct ViewPort *		ViewPortAddress();

unsigned long			Wait();
void				WaitBlit();
void				WaitBOVP();
void				WaitTOF();
long				WaitForChar();
char				WaitIO();
struct Message *		WaitPort();
long				WBenchToBack();
long				WBenchToFront();
struct Layer *			WhichLayer();
long				WindowLimits();
void				WindowToBack();
void				WindowToFront();
long				Write();
long				WriteExpansionByte();
long				WritePixel();
void				WritePotgo();

long				XorRectRegion();
long				XorRegionRegion();

#endif _FUNCTIONS_H
