[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