[Contents] [Index] [Help] [Retrace] [browse <] [Browse >]

        IFND    EXEC_EXECBASE_I
EXEC_EXECBASE_I SET     1
**
**      $Filename: exec/execbase.i $
**      $Release: 2.04 Includes, V37.4 $
**      $Revision: 36.16 $
**      $Date: 91/10/10 $
**
**      Definition of the exec.library base structure.
**
**      (C) Copyright 1985-1999 Amiga, Inc.
**          All Rights Reserved
**

    IFND EXEC_TYPES_I
    INCLUDE "exec/types.i"
    ENDC        ; EXEC_TYPES_I

    IFND EXEC_LISTS_I
    INCLUDE "exec/lists.i"
    ENDC        ; EXEC_LISTS_I

    IFND EXEC_INTERRUPTS_I
    INCLUDE "exec/interrupts.i"
    ENDC        ; EXEC_INTERRUPTS_I

    IFND EXEC_LIBRARIES_I
    INCLUDE "exec/libraries.i"
    ENDC        ; EXEC_LIBRARIES_I



** Definition of the Exec library base structure (pointed to by location 4).
** Most fields are not to be viewed or modified by user programs.  Use
** extreme caution.
**
 STRUCTURE  ExecBase,LIB_SIZE           ; Standard library node

******* Static System Variables *********************************************

            UWORD       SoftVer ; kickstart release number (obs.)
            WORD        LowMemChkSum    ; checksum of 68000 trap vectors
            ULONG       ChkBase ; system base pointer complement
            APTR        ColdCapture     ; coldstart soft capture vector
            APTR        CoolCapture     ; coolstart soft capture vector
            APTR        WarmCapture     ; warmstart soft capture vector
            APTR        SysStkUpper     ; system stack base   (upper bound)
            APTR        SysStkLower     ; top of system stack (lower bound)
            ULONG       MaxLocMem       ; top of chip memory
            APTR        DebugEntry      ; global debugger entry point
            APTR        DebugData       ; global debugger data segment
            APTR        AlertData       ; alert data segment
            APTR        MaxExtMem       ; top of extended mem, or null if none

            WORD        ChkSum          ; for all of the above (minus 2)


******* Interrupt Related ********************************************

            LABEL       IntVects
            STRUCT      IVTBE,IV_SIZE
            STRUCT      IVDSKBLK,IV_SIZE
            STRUCT      IVSOFTINT,IV_SIZE
            STRUCT      IVPORTS,IV_SIZE
            STRUCT      IVCOPER,IV_SIZE
            STRUCT      IVVERTB,IV_SIZE
            STRUCT      IVBLIT,IV_SIZE
            STRUCT      IVAUD0,IV_SIZE
            STRUCT      IVAUD1,IV_SIZE
            STRUCT      IVAUD2,IV_SIZE
            STRUCT      IVAUD3,IV_SIZE
            STRUCT      IVRBF,IV_SIZE
            STRUCT      IVDSKSYNC,IV_SIZE
            STRUCT      IVEXTER,IV_SIZE
            STRUCT      IVINTEN,IV_SIZE
            STRUCT      IVNMI,IV_SIZE


******* Dynamic System Variables *************************************

            APTR        ThisTask        ; pointer to current task (readable)

            ULONG       IdleCount       ; idle counter
            ULONG       DispCount       ; dispatch counter
            UWORD       Quantum ; time slice quantum
            UWORD       Elapsed ; current quantum ticks
            UWORD       SysFlags        ; misc internal system flags
            BYTE        IDNestCnt       ; interrupt disable nesting count
            BYTE        TDNestCnt       ; task disable nesting count

            UWORD       AttnFlags       ; special attention flags (readable)

            UWORD       AttnResched     ; rescheduling attention
            APTR        ResModules      ; pointer to resident module array
            APTR        TaskTrapCode    ; default task trap routine
            APTR        TaskExceptCode  ; default task exception code
            APTR        TaskExitCode    ; default task exit code
            ULONG       TaskSigAlloc    ; preallocated signal mask
            UWORD       TaskTrapAlloc   ; preallocated trap mask


******* System List Headers (private!) ********************************

            STRUCT      MemList,LH_SIZE
            STRUCT      ResourceList,LH_SIZE
            STRUCT      DeviceList,LH_SIZE
            STRUCT      IntrList,LH_SIZE
            STRUCT      LibList,LH_SIZE
            STRUCT      PortList,LH_SIZE
            STRUCT      TaskReady,LH_SIZE
            STRUCT      TaskWait,LH_SIZE

            STRUCT      SoftInts,SH_SIZE*5


******* Other Globals ******************************************************

            STRUCT      LastAlert,4*4

            ;------ these next two variables are provided to allow
            ;------ system developers to have a rough idea of the
            ;------ period of two externally controlled signals --
            ;------ the time between vertical blank interrupts and the
            ;------ external line rate (which is counted by CIA A's
            ;------ "time of day" clock).  In general these values
            ;------ will be 50 or 60, and may or may not track each
            ;------ other.  These values replace the obsolete AFB_PAL
            ;------ and AFB_50HZ flags.
            UBYTE       VBlankFrequency         ;(readable)
            UBYTE       PowerSupplyFrequency    ;(readable)

            STRUCT      SemaphoreList,LH_SIZE

            ;------ these next two are to be able to kickstart into user ram.
            ;------ KickMemPtr holds a singly linked list of MemLists which
            ;------ will be removed from the memory list via AllocAbs.  If
            ;------ all the AllocAbs's succeeded, then the KickTagPtr will
            ;------ be added to the rom tag list.
            APTR        KickMemPtr      ; ptr to queue of mem lists
            APTR        KickTagPtr      ; ptr to rom tag queue
            APTR        KickCheckSum    ; checksum for mem and tags


******* V36 Exec additions start here ***************************************

            UWORD       ex_Pad0
            ULONG       ex_LaunchPoint  ; Private to Launch/Switch
            APTR        ex_RamLibPrivate
            ;* The next ULONG contains the system "E" clock frequency,
            ;* expressed in Hertz.  The E clock is used as a timebase for
            ;* the Amiga's 8520 I/O chips. (E is connected to "02").
            ;* Typical values are 715909 for NTSC, or 709379 for PAL.
            ;*
            ULONG       ex_EClockFrequency ;(readable)
            ULONG       ex_CacheControl    ;Private to the CacheControl call
            ULONG       ex_TaskID          ;Next available task ID

            ULONG       ex_PuddleSize
            ULONG       ex_PoolThreshold
            STRUCT      ex_PublicPool,MLN_SIZE

            APTR        ex_MMULock         ;Private

            STRUCT      ex_Reserved,12

            LABEL       SYSBASESIZE


******* Bit defines for AttnFlags (see above) *******************************

*  Processors and Co-processors:
        BITDEF  AF,68010,0      ; also set for 68020
        BITDEF  AF,68020,1      ; also set for 68030
        BITDEF  AF,68030,2      ; also set for 68040
        BITDEF  AF,68040,3
        BITDEF  AF,68881,4      ; also set for 68882
        BITDEF  AF,68882,5
        BITDEF  AF,FPU40,6      ; Set if 68040 FPU
;
; The AFB_FPU40 bit is set when a working 68040 FPU
; is in the system.  If this bit is set and both the
; AFB_68881 and AFB_68882 bits are not set, then the 68040
; math emulation code has not been loaded and only 68040
; FPU instructions are available.  This bit is valid *ONLY*
; if the AFB_68040 bit is set.
;
;       BITDEF  AF,RESERVED8,8
;       BITDEF  AF,RESERVED9,9
        BITDEF  AF,PRIVATE,15   ; Just what it says


******* Selected bit definitions for Cache manipulation calls **************

        BITDEF  CACR,EnableI,0          ;Enable instruction cache
        BITDEF  CACR,FreezeI,1          ;Freeze instruction cache
        BITDEF  CACR,ClearI,3           ;Clear instruction cache
        BITDEF  CACR,IBE,4              ;Instruction burst enable
        BITDEF  CACR,EnableD,8          ;68030 Enable data cache
        BITDEF  CACR,FreezeD,9          ;68030 Freeze data cache
        BITDEF  CACR,ClearD,11          ;68030 Clear data cache
        BITDEF  CACR,DBE,12             ;68030 Data burst enable
        BITDEF  CACR,WriteAllocate,13   ;68030 Write-Allocate mode (must
                                        ;always be set)
        BITDEF  CACR,CopyBack,31        ;Master enable for copyback caches


        BITDEF  DMA,Continue,1          ;Continuation flag for CachePreDMA
        BITDEF  DMA,NoModify,2          ;Set if DMA does not update memory

        ENDC    ; EXEC_EXECBASE_I