;***************************************************** ;* ;* Process Descriptor - with the UDA associated ;* with the PD, describes the current ;* state of a Process under MP/M-86 ;* ;* +-----+-----+-----+-----+-----+-----+-----+-----+ ;* 00| link | thread |stat |prior| flag | ;* +-----+-----+-----+-----+-----+-----+-----+-----+ ;* 08| Name | ;* +-----+-----+-----+-----+-----+-----+-----+-----+ ;* 10| uda | dsk | user| ldsk|luser| mem | ;* +-----+-----+-----+-----+-----+-----+-----+-----+ ;* 18| dvract | wait | org | net | parent | ;* +-----+-----+-----+-----+-----+-----+-----+-----+ ;* 20| cns |abort| cin |cout | lst | sf3 | sf4 | sf5 | ;* +-----+-----+-----+-----+-----+-----+-----+-----+ ;* 28| reserved | pret | scratch | ;* +-----+-----+-----+-----+-----+-----+-----+-----+ ;* ;* link - Used for placement into System Lists ;* thread - link field for Thread List ;* stat - Current Process activity ;* prior - priority ;* flag - process state flags ;* name - name of process ;* uda - Segment Adress of User Data Area ;* dsk - Current default disk ;* user - Current default user number ;* ldsk - Disk program loaded from ;* luser - User number loaded from ;* mem - pointer to MD list of memory owned ;* by this process ;* dvract - bit map of currently active drives ;* wait - parameter field while on System Lists ;* org - Network node that originated this process ;* net - Network node running this process ;* parent - process that created this process ;* cns - controlling console ;* abort - abort code ;* cin - standard file #0 (console input) ;* cout - standard file #1 (console output) ;* lst - standard file #2 (list output) ;* sf3 - standard file #3 ;* sf4 - standard file #4 ;* sf5 - standard file #5 ;* reserved- not currently used ;* pret - return code at termination ;* scratch - scratch word ;* ;***************************************************** ;p_link equ word ptr 0 ;p_thread equ word ptr p_link + word ;p_stat equ byte ptr p_thread + word ;p_prior equ byte ptr p_stat + byte p_flag equ word ptr 6 p_name equ byte ptr 8 p_uda equ word ptr 10h p_dsk equ byte ptr 12h p_user equ byte ptr 13h ;p_ldsk equ byte ptr p_user + byte ;p_luser equ byte ptr p_ldsk + byte ;p_mem equ word ptr p_luser + byte p_cmod equ byte ptr 18h ;p_wait equ word ptr p_dvract + word ;p_org equ byte ptr p_wait + word ;p_net equ byte ptr p_org + byte ;p_parent equ word ptr p_net + byte p_cns equ byte ptr 20h ;p_abort equ byte ptr p_cns + byte ;p_cin equ byte ptr p_abort + byte ;p_cout equ byte ptr p_cin + byte ;p_lst equ byte ptr p_cout + byte ;p_sf3 equ byte ptr p_lst + byte ;p_sf4 equ byte ptr p_sf3 + byte ;p_sf5 equ byte ptr p_sf4 + byte ;p_reserved equ word ptr p_sf5 + byte ;p_pret equ word ptr p_reserved + (2*word) ;p_scratch equ byte ptr p_pret + word ;p_wscrtch equ word ptr p_scratch ; ; Process descriptor pd_status values ; ;ps_run equ 00 ; in ready list root ;ps_poll equ 01 ; in poll list ;ps_delay equ 02 ; in delay list ;ps_swap equ 03 ; in swap list ;ps_term equ 04 ; terminating ;ps_sleep equ 05 ; sleep processing ;ps_dq equ 06 ; in dq list ;ps_nq equ 07 ; in nq list ;ps_flagwait equ 08 ; in flag table ;ps_ciowait equ 09 ; in c_queue list ; ; Process descriptor pd_flag bit values ; ;pf_sys equ 00001h ; system process ;pf_keep equ 00002h ; do not terminate ;pf_kernal equ 00004h ; resident in kernal ;pf_pure equ 00008h ; pure memory descibed ;pf_table equ 00010h ; from pd table ;pf_resource equ 00020h ; waiting for resource ;pf_raw equ 00040h ; raw console i/o pf_ctlc equ 00080h ; abort pending ;pf_active equ 00100h ; active tty pf_tempkeep equ 00200h ; don't terminate yet... ;pf_ctld equ 00400h ; explicit detach occured ;pf_childabort equ 00800h ; child terminated abnormally