IFND POWERPC_TASKSPPC_I POWERPC_TASKSPPC_I SET 1 ** ** $VER: tasksPPC.i 15.0 (13.3.99) ** ** structures related to WarpOS task handling ** IFND EXEC_TYPES_I include exec/types.i ENDC IFND EXEC_NODES_I include exec/nodes.i ENDC IFND EXEC_TASKS_I include exec/tasks.i ENDC IFND UTILITY_TAGITEM_I include utility/tagitem.i ENDC IFND POWERPCLIB_V7 ;only for V8+ **** private structure used in the main task structure STRUCTURE TASKLINK,MLN_SIZE APTR TASKLINK_TASK ULONG TASKLINK_SIG UWORD TASKLINK_USED LABEL TASKLINK_SIZE **** task structure PPC STRUCTURE TASKPPC,TC_SIZE ULONG TASKPPC_STACKSIZE ;read only APTR TASKPPC_STACKMEM ;private APTR TASKPPC_CONTEXTMEM ;private APTR TASKPPC_TASKPTR ;private ULONG TASKPPC_FLAGS ;read only STRUCT TASKPPC_LINK,TASKLINK_SIZE ;private APTR TASKPPC_BATSTORAGE ;private ULONG TASKPPC_CORE ;private STRUCT TASKPPC_TABLELINK,MLN_SIZE ;private APTR TASKPPC_TABLE ;read only ULONG TASKPPC_DEBUGDATA ;free space for debugger UWORD TASKPPC_PAD ULONG TASKPPC_TIMESTAMP ;private ULONG TASKPPC_TIMESTAMP2 ; " ULONG TASKPPC_ELAPSED ; " ULONG TASKPPC_ELAPSED2 ; " ULONG TASKPPC_TOTALELAPSED ; " ULONG TASKPPC_QUANTUM ; " ULONG TASKPPC_PRIORITY ; " ULONG TASKPPC_PRIOFFSET ; " APTR TASKPPC_POWERPCBASE ; " ULONG TASKPPC_DESIRED ; " ULONG TASKPPC_CPUUSAGE ;cpu usage (x100) (read only) ULONG TASKPPC_BUSY ;task busy time (x100) (read only) ULONG TASKPPC_ACTIVITY ;task activity (x100) (read only) ULONG TASKPPC_ID ;task ID (read only) ULONG TASKPPC_NICE ;NICE value (read only) APTR TASKPPC_MSGPORT ;MsgPort (read only) STRUCT TASKPPC_TASKPOOLS,LH_SIZE ;private: for V15-MM LABEL TASKPPC_SIZE ;don't depend on this size **** LN_TYPE field for PPC tasks NT_PPCTASK = 100 **** tc_state (one additional task state) TS_CHANGING = 7 ;task is soon changing from ;running to waiting state **** taskppc_flags BITDEF TASKPPC,SYSTEM,0 ;it's a system task BITDEF TASKPPC,BAT,1 ;the task runs under BAT setup BITDEF TASKPPC,THROW,2 ;cause exception BITDEF TASKPPC,CHOWN,3 ;PRIVATE BITDEF TASKPPC,EMULATOR,4 ;PRIVATE BITDEF TASKPPC,ATOMIC,5 ;noninterruptable task **** special signal definitions BITDEF SIG,TIME,10 ;internal **** tags passed to CreateTaskPPC ENUM TAG_USER+$100000 EITEM TASKATTR_CODE ;entry code EITEM TASKATTR_EXITCODE ;exit code EITEM TASKATTR_NAME ;task name EITEM TASKATTR_PRI ;task priority EITEM TASKATTR_STACKSIZE ;task stacksize EITEM TASKATTR_R2 ;smalldata/TOC base EITEM TASKATTR_R3 ;first parameter EITEM TASKATTR_R4 EITEM TASKATTR_R5 EITEM TASKATTR_R6 EITEM TASKATTR_R7 EITEM TASKATTR_R8 EITEM TASKATTR_R9 EITEM TASKATTR_R10 ;last parameter EITEM TASKATTR_SYSTEM ;private EITEM TASKATTR_MOTHERPRI ;inherit mother's pri (boolean) EITEM TASKATTR_BAT ;BAT MMU setup (boolean) EITEM TASKATTR_PRIVATE EITEM TASKATTR_NICE ;NICE value (V14+) EITEM TASKATTR_INHERITR2 ;inherit r2 from parent task ;(overrides TASKATTR_R2) (V15+) EITEM TASKATTR_ATOMIC ;noninterruptable task (V15+) EITEM TASKATTR_NOTIFYMSG ; notification upon task death (V16+) **** taskptr structure (returned by LockTaskList) STRUCTURE TASKPTR,LN_SIZE APTR TASKPTR_TASK ;ptr to task LABEL TASKPTR_SIZE **** return values of ChangeStack CHSTACK_SUCCESS = -1 CHSTACK_NOMEM = 0 **** input parameter of ChangeMMU CHMMU_STANDARD = 1 ;standard paged MMU setup CHMMU_BAT = 2 ;BAT MMU setup **** tags passed to SnoopTask ENUM TAG_USER+$103000 EITEM SNOOP_CODE ;-> callback function EITEM SNOOP_DATA ;custom data EITEM SNOOP_TYPE ;entry or exit code **** possible types for SNOOP_TYPE SNOOP_START = 1 ;monitor task start SNOOP_EXIT = 2 ;monitor task end **** possible values for the CreatorCPU parameter of the callback function CREATOR_PPC = 1 CREATOR_68K = 2 ENDC ;POWERPCLIB_V7 ENDC ;TASKSPPC_I