amos-professional/includes/exec/tasks.i
2020-04-26 02:58:13 +02:00

91 lines
2.2 KiB
OpenEdge ABL

IFND EXEC_TASKS_I
EXEC_TASKS_I SET 1
**
** $Filename: exec/tasks.i $
** $Release: 1.3 $
**
**
**
** (C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc.
** All Rights Reserved
**
IFND EXEC_NODES_I
INCLUDE "exec/nodes.i"
ENDC ; EXEC_NODES_I
IFND EXEC_LISTS_I
INCLUDE "exec/lists.i"
ENDC ; EXEC_LISTS_I
*----------------------------------------------------------------
*
* Task Control Structure
*
*----------------------------------------------------------------
STRUCTURE TC,LN_SIZE
UBYTE TC_FLAGS
UBYTE TC_STATE
BYTE TC_IDNESTCNT * intr disabled nesting
BYTE TC_TDNESTCNT * task disabled nesting
ULONG TC_SIGALLOC * sigs allocated
ULONG TC_SIGWAIT * sigs we are waiting for
ULONG TC_SIGRECVD * sigs we have received
ULONG TC_SIGEXCEPT * sigs we take as exceptions
UWORD TC_TRAPALLOC * traps allocated
UWORD TC_TRAPABLE * traps enabled
APTR TC_EXCEPTDATA * data for except proc
APTR TC_EXCEPTCODE * exception procedure
APTR TC_TRAPDATA * data for proc trap proc
APTR TC_TRAPCODE * proc trap procedure
APTR TC_SPREG * stack pointer
APTR TC_SPLOWER * stack lower bound
APTR TC_SPUPPER * stack upper bound + 2
APTR TC_SWITCH * task losing CPU
APTR TC_LAUNCH * task getting CPU
STRUCT TC_MEMENTRY,LH_SIZE * allocated memory
APTR TC_Userdata
LABEL TC_SIZE
*------ Flag Bits:
BITDEF T,PROCTIME,0
BITDEF T,STACKCHK,4
BITDEF T,EXCEPT,5
BITDEF T,SWITCH,6
BITDEF T,LAUNCH,7
*------ Task States:
TS_INVALID EQU 0
TS_ADDED EQU TS_INVALID+1
TS_RUN EQU TS_ADDED+1
TS_READY EQU TS_RUN+1
TS_WAIT EQU TS_READY+1
TS_EXCEPT EQU TS_WAIT+1
TS_REMOVED EQU TS_EXCEPT+1
*------ System Task Signals:
SIGF_ABORT EQU $0001
SIGF_CHILD EQU $0002
SIGF_BLIT EQU $0010
SIGF_SINGLE EQU $0010
SIGF_DOS EQU $0100
SIGB_ABORT EQU 0
SIGB_CHILD EQU 1
SIGB_BLIT EQU 4
SIGB_SINGLE EQU 4
SIGB_DOS EQU 8
SYS_SIGALLOC EQU $0FFFF ; pre-allocated signals
SYS_TRAPALLOC EQU $08000 ; pre-allocated traps
ENDC ; EXEC_TASKS_I