sys7.1-doc-wip/Toolbox/NotificationMgr/task.h
2019-07-27 22:37:48 +08:00

272 lines
7.1 KiB
C

/*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 <kernel.h>
#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