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