/*EASE$$$ READ ONLY COPY of file Òtask.hÓ ** 1.2 CCH 11/ 9/1988 Fixed header. ** 1.1 CCH 11/ 9/1988 Fixed headers and removed projector resource. ** 1.0 CCH 11/ 9/1988 Adding to EASE. ** END EASE MODIFICATION HISTORY */ /* * Task.h -- Interface to the Twitcher tasking routines. * * C Interface to the Macintosh Libraries * Copyright Apple Computer,Inc. 1985,1986 * All rights reserved. * * (C) Copyright Apple Computer, Inc. 1986 * * Written by Erich Ringewald * * 26 Nov 86 New Today. * */ #ifndef __KERNEL__ #include #endif #ifndef __TASK__ #define __TASK__ /*__________________________________________________________________*/ /* Task Manager */ /*__________________________________________________________________*/ struct procinfo { short p_state; /* process state */ short p_mypid; /* the process id */ long p_type; /* type of task (usually APPL) */ long p_signature; /* signature of task */ long p_version; /* version of task */ THz p_zone; /* pointer to minor zone */ unsigned long p_taskmode; /* tasks created mode */ Boolean p_needsuspresevts; /* whether or not the process expects suspend and resume events */ Boolean p_back; /* can accept background time */ Boolean p_activateonresume; /* whether the app will activate and deactivate on susppend/resume */ short p_dad; /* process id of my dad */ unsigned long p_size; /* size of his world */ unsigned long p_ssize; /* size of his stack */ unsigned long p_slices; /* # of times process has CPU */ unsigned long p_freemem; /* amount of free memory in heap */ Str31 p_name; /* name of backing app */ short p_vrefnum /* vrefnum of app res file as passed to _TWLaunch */ }; /* Constants for printer type calls */ #define PRTYPE_CHANGESTATUS_SAME (-1) #define PRTYPE_CHANGESTATUS_DISABLED (0) #define PRTYPE_CHANGESTATUS_ENABLED (1) /* * mask constants for the longword bitmap of taskmode given to the * launch command. */ #define MULTILAUNCH (0x00010000) #define SAVESCREEN (0x00008000) #define GETSUSPRESEVENTS (0x00004000) #define OPTIONKEYDISABLE (0x00002000) #define GETBACKTIME (0x00001000) #define ACTIVATEONRESUME (0x00000800) #define ONLYBACKGROUND (0x00000400) /*__________________________________________________________________*/ /* Task call MACRO definitions */ /*__________________________________________________________________*/ #define TWLaunch(name, size, vrefnum, taskmode, stack) \ _TWLaunch((name), (size), (vrefnum), (taskmode), (stack), TWLAUNCHID) #define TWFGSwitch(pid) \ _TWFGSwitch((pid), TWFGSWITCHID) #define TWKill(pid) \ _TWKill((pid), TWKILLID) #define TWGetPID() \ _TWGetPID(TWGETPIDID) #define TWSetDeskRgn(deskrgn) \ _TWSetDeskRgn((deskrgn), TWSETDESKRGNID) #define TWMaxMem(grow) \ _TWMaxMem((grow), TWMAXMEMID) #define TWMemTop() \ _TWMemTop(TWMEMTOPID) #define TWGetProcInfo(pid, inforec) \ _TWGetProcInfo((pid), (inforec), TWGETPROCINFOID) #define TWFreeMem() \ _TWFreeMem(TWFREEMEMID) #define TWDontSwitch() \ _TWDontSwitch(TWDONTSWITCHID) #define TWDoSwitch() \ _TWDoSwitch(TWDOSWITCHID) #define TWPostPseudoEvent(pid, theevent, priority) \ _TWPostPseudoEvent((pid), (theevent), (priority), TWPOSTPSEUDOID) #define TWPostAllPseudoEvent(signature, type, theevent, priority) \ _TWPostAllPseudoEvent((signature), (type), (theevent), (priority), TWPOSTALLPSEUDOID) #define TWSleep(time) \ _TWSleep((time), TWSLEEPID) #define TWTempNewHandle(logicalSize, resultCode) \ _TWTempNewHandle((logicalSize), (resultCode), TWTEMPNEWHANDLEID) #define TWTempHLock(h, resultCode) \ _TWTempHLock((h), (resultCode), TWTEMPHLOCKID) #define TWTempHUnLock(h, resultCode) \ _TWTempHUnLock((h), (resultCode), TWTEMPHUNLOCKID) #define TWTempDisposHandle(h, resultCode) \ _TWTempDisposHandle((h), (resultCode), TWTEMPDISPOSHANDLEID) #define TWSetStdFileDir(pid, sfSaveDisk, curDirID) \ _TWSetStdFileDir(pid, sfSaveDisk, curDirID, TWSETSTDFILEDIRID) #define TWGetPrTypeStrings(pLocalStrPtr, pGlobalStrPtr) \ _TWGetPrTypeStrings(pLocalStrPtr, pGlobalStrPtr, TWGETPRTYPESTRINGSID) #define TWSetPrTypeStrings(localStrPtr, globalStrPtr, enablePrTypeChanges) \ _TWSetPrTypeStrings(localStrPtr, globalStrPtr, enablePrTypeChanges, TWSETPRTYPESTRINGSID) #define TWBackgroundNotify(msgStringPtr) \ _TWBackgroundNotify(msgStringPtr, TWBACKGROUNDNOTIFYID) pascal short _TWLaunch(name, size, vrefnum, taskmode, stack, dispatch) char *name; unsigned long size, stack; short vrefnum; unsigned long taskmode; short dispatch; extern KERNELDISPATCH; pascal long _TWFGSwitch(pid, dispatch) short pid; short dispatch; extern KERNELDISPATCH; pascal long _TWKill(pid, dispatch) short pid; short dispatch; extern KERNELDISPATCH; pascal short _TWGetPID(dispatch) short dispatch; extern KERNELDISPATCH; pascal void _TWSetDeskRgn(deskrgn, dispatch) RgnHandle deskrgn; short dispatch; extern KERNELDISPATCH; pascal long _TWMaxMem(grow, dispatch) long *grow; short dispatch; extern KERNELDISPATCH; pascal Ptr _TWMemTop(dispatch) short dispatch; extern KERNELDISPATCH; pascal long _TWGetProcInfo(pid, inforec, dispatch) short pid; struct procinfo *inforec; short dispatch; extern KERNELDISPATCH; pascal Size _TWFreeMem(dispatch) short dispatch; extern KERNELDISPATCH; pascal void _TWDontSwitch(dispatch) short dispatch; extern KERNELDISPATCH; pascal void _TWDoSwitch(dispatch) short dispatch; extern KERNELDISPATCH; pascal void _TWPostPseudoEvent(pid, theevent, priority, dispatch) short pid; Ptr theevent; unsigned short priority; short dispatch; extern KERNELDISPATCH; pascal short _TWPostAllPseudoEvent(signature, tyype, pEvent, priority, dispatch) long signature, tyype; EventRecord *pEvent; unsigned short priority; short dispatch; extern KERNELDISPATCH; pascal void _TWSleep(time, dispatch) unsigned long time; short dispatch; extern KERNELDISPATCH; pascal Handle _TWTempNewHandle(logicalSize, resultCode, dispatch) unsigned long logicalSize; short *resultCode; short dispatch; extern KERNELDISPATCH; pascal void _TWTempHLock(h, resultCode, dispatch) Handle h; short *resultCode; short dispatch; extern KERNELDISPATCH; pascal void _TWTempHUnLock(h, resultCode, dispatch) Handle h; short *resultCode; short dispatch; extern KERNELDISPATCH; pascal void _TWTempDisposHandle(h, resultCode, dispatch) Handle h; short *resultCode; short dispatch; extern KERNELDISPATCH; pascal void _TWSetStdFileDir(pid, sfSaveDisk, curDirID, dispatch) short pid; short sfSaveDisk; unsigned long curDirID; short dispatch; extern KERNELDISPATCH; pascal char _TWGetPrTypeStrings(pLocalStrPtr, pGlobalStrPtr, dispatch) StringPtr *pLocalStrPtr, *pGlobalStrPtr; short dispatch; extern KERNELDISPATCH; pascal void _TWSetPrTypeStrings(localStrPtr, globalStrPtr, enablePrTypeChanges, dispatch) StringPtr localStrPtr, globalStrPtr; char enablePrTypeChanges; short dispatch; extern KERNELDISPATCH; pascal void _TWBackgroundNotify(msgStringPtr, dispatch) StringPtr msgStringPtr; short dispatch; extern KERNELDISPATCH; #endif