/*
** $PROJECT: binary.datatype
**
** $VER: classbase.h 39.2 (30.11.94)
**
** by
**
** Stefan Ruppert , Windthorststraße 5 , 65439 Flörsheim , GERMANY
**
** (C) Copyright 1994
** All Rights Reserved !
**
** $HISTORY:
**
** 30.11.94 : 039.002 : SuperClassBase removed
** 14.11.94 : 039.001 :  initial
*/

/* ------------------------------- includes ------------------------------- */

#include <dos/dos.h>
#include <dos/dosextens.h>
#include <exec/types.h>
#include <exec/ports.h>
#include <exec/memory.h>
#include <exec/lists.h>
#include <exec/semaphores.h>
#include <exec/execbase.h>
#include <intuition/classes.h>
#include <intuition/classusr.h>
#include <intuition/cghooks.h>
#include <intuition/gadgetclass.h>
#include <intuition/imageclass.h>
#include <graphics/gfxbase.h>
#include <graphics/gfx.h>
#include <graphics/text.h>
#include <libraries/iffparse.h>
#include <datatypes/datatypes.h>
#include <datatypes/datatypesclass.h>
#include <datatypes/textclass.h>
#include <clib/alib_protos.h>
#include <clib/alib_stdio_protos.h>
#include <string.h>
#include <dos.h>

#include <clib/macros.h>
#include <clib/dos_protos.h>
#include <clib/exec_protos.h>
#include <clib/intuition_protos.h>
#include <clib/iffparse_protos.h>
#include <clib/graphics_protos.h>
#include <clib/utility_protos.h>
#include <clib/datatypes_protos.h>
#include <clib/dtclass_protos.h>

#include <pragmas/dos_pragmas.h>
#include <pragmas/exec_pragmas.h>
#include <pragmas/intuition_pragmas.h>
#include <pragmas/iffparse_pragmas.h>
#include <pragmas/graphics_pragmas.h>
#include <pragmas/utility_pragmas.h>
#include <pragmas/datatypes_pragmas.h>
#include <pragmas/dtclass_pragmas.h>

#include "register.h"
#include "debug.h"

#define ClassCall    LibCall

#include "protos.h"

#include "/include/datatypes/binaryclass.h"

/* ------------------------- ClassBase structure -------------------------- */

struct ClassBase
{
    struct Library               cb_Lib;
    UWORD                        cb_UsageCnt;
    struct Library              *cb_SysBase;
    struct Library              *cb_DOSBase;
    struct Library              *cb_IntuitionBase;
    struct Library              *cb_GfxBase;
    struct Library              *cb_UtilityBase;
    struct Library              *cb_IFFParseBase;
    struct Library              *cb_DataTypesBase;
    BPTR                         cb_SegList;

    struct SignalSemaphore       cb_Lock;               /* Access lock */
    Class                       *cb_Class;
};

/* ---------------------------- library bases ----------------------------- */

#define SysBase                 cb->cb_SysBase
#define DOSBase                 cb->cb_DOSBase
#define UtilityBase             cb->cb_UtilityBase
#define IntuitionBase           cb->cb_IntuitionBase
#define IFFParseBase            cb->cb_IFFParseBase
#define GfxBase                 cb->cb_GfxBase
#define DataTypesBase           cb->cb_DataTypesBase
#define SuperClassBase          cb->cb_SuperClassBase

