home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / TRSICAT.LZX / CATS_CD2_TRSI / Inc&AD1.3 / Includes / exec / execbase.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-12  |  3.8 KB  |  145 lines

  1. #ifndef EXEC_EXECBASE_H
  2. #define EXEC_EXECBASE_H
  3. /*
  4. **    $Filename: exec/execbase.h $
  5. **    $Release: 1.3 $
  6. **
  7. **    
  8. **
  9. **    (C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. */
  12.  
  13. #ifndef EXEC_LISTS_H
  14. #include "exec/lists.h"
  15. #endif !EXEC_LISTS_H
  16.  
  17. #ifndef EXEC_INTERRUPTS_H
  18. #include "exec/interrupts.h"
  19. #endif !EXEC_INTERRUPTS_H
  20.  
  21. #ifndef EXEC_LIBRARIES_H
  22. #include "exec/libraries.h"
  23. #endif !EXEC_LIBRARIES_H
  24.  
  25. #ifndef EXEC_TASKS_H
  26. #include "exec/tasks.h"
  27. #endif !EXEC_TASKS_H
  28.  
  29.  
  30. struct ExecBase {
  31.     struct Library    LibNode;
  32.  
  33.     UWORD    SoftVer;    /* kickstart release number     */
  34.     WORD    LowMemChkSum;
  35.     ULONG    ChkBase;    /* system base pointer complement */
  36.     APTR    ColdCapture;    /* coldstart soft vector     */
  37.     APTR    CoolCapture;
  38.     APTR    WarmCapture;
  39.     APTR    SysStkUpper;    /* system stack base (upper bound) */
  40.     APTR    SysStkLower;    /* top of system stack (lower bound) */
  41.     ULONG    MaxLocMem;
  42.     APTR    DebugEntry;
  43.     APTR    DebugData;
  44.     APTR    AlertData;
  45.     APTR    MaxExtMem;    /* top of extended mem, or null if none */
  46.  
  47.     UWORD    ChkSum;
  48.  
  49. /****** Interrupt Related ***************************************/
  50.  
  51.     struct    IntVector IntVects[16];
  52.  
  53. /****** System Variables ****************************************/
  54.  
  55.     struct    Task *ThisTask; /* pointer to current task */
  56.     ULONG    IdleCount;    /* idle counter */
  57.     ULONG    DispCount;    /* dispatch counter */
  58.     UWORD    Quantum;    /* time slice quantum */
  59.     UWORD    Elapsed;    /* current quantum ticks */
  60.     UWORD    SysFlags;    /* misc system flags */
  61.     BYTE    IDNestCnt;    /* interrupt disable nesting count */
  62.     BYTE    TDNestCnt;    /* task disable nesting count */
  63.  
  64.     UWORD    AttnFlags;    /* special attention flags */
  65.     UWORD    AttnResched;    /* rescheduling attention */
  66.     APTR    ResModules;    /* resident module array pointer */
  67.  
  68.     APTR    TaskTrapCode;
  69.     APTR    TaskExceptCode;
  70.     APTR    TaskExitCode;
  71.     ULONG    TaskSigAlloc;
  72.     UWORD    TaskTrapAlloc;
  73.  
  74.  
  75. /****** System Lists ********************************************/
  76.  
  77.     struct    List MemList;
  78.     struct    List ResourceList;
  79.     struct    List DeviceList;
  80.     struct    List IntrList;
  81.     struct    List LibList;
  82.     struct    List PortList;
  83.     struct    List TaskReady;
  84.     struct    List TaskWait;
  85.  
  86.     struct    SoftIntList SoftInts[5];
  87.  
  88. /****** Other Globals *******************************************/
  89.  
  90.     LONG    LastAlert[4];
  91.  
  92.  
  93.  
  94.     /* these next two variables are provided to allow
  95.     ** system developers to have a rough idea of the
  96.     ** period of two externally controlled signals --
  97.     ** the time between vertical blank interrupts and the
  98.     ** external line rate (which is counted by CIA A's
  99.     ** "time of day" clock).  In general these values
  100.     ** will be 50 or 60, and may or may not track each
  101.     ** other.  These values replace the obsolete AFB_PAL
  102.     ** and AFB_50HZ flags.
  103.     */
  104.     UBYTE    VBlankFrequency;
  105.     UBYTE    PowerSupplyFrequency;
  106.  
  107.     struct    List SemaphoreList;
  108.  
  109.     /* these next two are to be able to kickstart into user ram.
  110.     ** KickMemPtr holds a singly linked list of MemLists which
  111.     ** will be removed from the memory list via AllocAbs.  If
  112.     ** all the AllocAbs's succeeded, then the KickTagPtr will
  113.     ** be added to the rom tag list.
  114.     */
  115.     APTR    KickMemPtr;    /* ptr to queue of mem lists */
  116.     APTR    KickTagPtr;    /* ptr to rom tag queue */
  117.     APTR    KickCheckSum;    /* checksum for mem and tags */
  118.  
  119.     UBYTE    ExecBaseReserved[10];
  120.     UBYTE    ExecBaseNewReserved[20];
  121. };
  122.  
  123. #define SYSBASESIZE  sizeof(struct ExecBase)
  124.  
  125. /******* AttnFlags */
  126. /*  Processors and Co-processors: */
  127. #define AFB_68010    0    /* also set for 68020 */
  128. #define AFB_68020    1
  129. #define AFB_68881    4
  130.  
  131. #define AFF_68010    (1<<0)
  132. #define AFF_68020    (1<<1)
  133. #define AFF_68881    (1<<4)
  134.  
  135. /* These two bits used to be AFB_PAL and AFB_50HZ.  After some soul
  136. ** searching we realized that they were misnomers, and the information
  137. ** is now kept in VBlankFrequency and PowerSupplyFrequency above.
  138. ** To find out what sort of video conversion is done, look in the
  139. ** graphics subsytem.
  140. */
  141. #define AFB_RESERVED8    8
  142. #define AFB_RESERVED9    9
  143.  
  144. #endif    /* EXEC_EXECBASE_H */
  145.