91 lines
2.2 KiB
OpenEdge ABL
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
|