COMPILATION LISTING OF SEGMENT task_init_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/05/86 1104.6 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* format: style4,delnl,insnl,tree,ifthenstmt,indnoniterend */ 12 task_init_: 13 procedure options (separate_static); 14 15 dcl sys_info$max_seg_size fixed bin (19) external; 16 17 dcl define_area_ entry (ptr, fixed bin (35)); 18 dcl get_ring_ entry () returns (fixed bin (3)); 19 dcl hcs_$grow_lot entry (fixed bin (3)); 20 dcl ioa_$rsnnl entry () options (variable); 21 dcl iox_$find_iocb entry (char (*), ptr, fixed bin (35)); 22 dcl task_ctl_$death entry; 23 24 dcl foo static; 25 dcl 1 static_tasking_data aligned like tasking_data static; 26 27 dcl i fixed bin; 28 dcl code fixed bin (35); 29 dcl task_name char (13); 30 dcl old_rnt_areap ptr; 31 dcl 1 ai aligned like area_info; 32 33 dcl 1 abort_label_overlay aligned based (addr (task_data.abort)), 34 2 code_ptr ptr, 35 2 env_ptr ptr; 36 37 dcl based_ptr ptr based; 38 39 dcl rnt_areap ptr; 40 dcl rnt_area area (sys_info$max_seg_size) based (rnt_areap); 41 42 dcl (addr, addrel, pointer, size, stackbaseptr) builtin; 43 44 dcl task_error_ condition; 45 46 foo = 0; 47 sb = stackbaseptr (); 48 49 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 50 /* */ 51 /* Make sure that the LOT has been extended to its maximum size. This is because */ 52 /* grow_lot doesn't know about multiple stacks and would get confused. */ 53 /* */ 54 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 55 56 if stack_header.lot_ptr = sb then call hcs_$grow_lot (get_ring_ ()); 57 58 lotp = stack_header.lot_ptr; 59 do i = 0 to stack_header.max_lot_size; /* fault all the LOT pointers */ 60 if unspec (lot.lp (i)) = ""b then unspec (lot.lp (i)) = lot_fault; 61 end; 62 63 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 64 /* */ 65 /* Now do the same for the RNT. */ 66 /* */ 67 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 68 69 if stack_header.rnt_ptr -> rnt.rnt_area_size < sys_info$max_seg_size then do; 70 ai.version = area_info_version_1; 71 string (ai.control) = ""b; 72 ai.zero_on_free, ai.system = "1"b; 73 ai.owner = "RNT"; 74 ai.size = sys_info$max_seg_size; 75 ai.areap = null (); 76 call define_area_ (addr (ai), code); 77 if code ^= 0 then signal task_error_; 78 rnt_areap = ai.areap; 79 80 old_rnt_areap = stack_header.rnt_ptr -> rnt.areap; 81 rnt_area = old_rnt_areap -> based_rnt_area; 82 rntp = addrel (rnt_areap, binary (rel (stack_header.rnt_ptr), 18) - binary (rel (old_rnt_areap), 18)); 83 rnt.srulep = addrel (rnt_areap, binary (rel (rnt.srulep), 18) - binary (rel (old_rnt_areap), 18)); 84 rnt.areap = rnt_areap; 85 rnt.rnt_area_size = size (rnt_area); 86 stack_header.rnt_ptr = rntp; 87 free old_rnt_areap -> based_rnt_area; 88 end; 89 90 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 91 /* */ 92 /* Now fill in the task data for the root task. */ 93 /* */ 94 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 95 96 97 tasking_data_ptr_ = addr (static_tasking_data); 98 99 pointer (sb, TASK_DP) -> based_ptr, task_data_ptr = addr (tasking_data.root_task_data); 100 101 task_data.sb = sb; 102 task_data.state = READY; 103 task_data.comment = "Initial Task"; 104 task_data.mother, task_data.youngest_daughter, task_data.elder_sister, task_data.younger_sister, 105 task_data.ready_last, task_data.ready_next = null (); 106 task_data.task_id = baseno (sb); 107 abort_label_overlay.code_ptr = codeptr (task_ctl_$death); 108 abort_label_overlay.env_ptr = stack_header.stack_begin_ptr; 109 110 call ioa_$rsnnl ("^w.", task_name, (0), task_data.task_id); 111 call iox_$find_iocb (task_name || "user_input", task_data.ui_iocb, code); 112 call iox_$find_iocb (task_name || "user_output", task_data.uo_iocb, code); 113 call iox_$find_iocb (task_name || "error_output", task_data.eo_iocb, code); 114 115 tasking_data.ready_head, tasking_data.ready_tail = task_data_ptr; 116 tasking_data.valid_tasks (binary (baseno (sb), 15)) = "1"b; 117 return; 118 1 1 /* *********************************************************** 1 2* * * 1 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 1 4* * * 1 5* *********************************************************** */ 1 6 /* Begin include file tasking_data.incl.pl1 */ 1 7 1 8 dcl tasking_data_ptr_ ptr external init (null ()); 1 9 dcl 1 tasking_data aligned based (tasking_data_ptr_), 1 10 2 (ready_head, ready_tail) ptr init (null ()), 1 11 2 root_task_data like task_data, 1 12 2 overhead_meters like task_data.meters, 1 13 2 old_pu like task_data.meters, 1 14 2 flags, 1 15 3 dead_tasks bit (1) unaligned, 1 16 2 valid_tasks (0:4092) bit (1) unaligned init ((4093) (1)"0"b); 1 17 2 1 /* *********************************************************** 2 2* * * 2 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 2 4* * * 2 5* *********************************************************** */ 2 6 /* Begin include file task_data.incl.pl1 */ 2 7 2 8 declare task_data_ptr pointer automatic; 2 9 declare 1 task_data aligned based (task_data_ptr), /* information defining a task */ 2 10 2 sb pointer, /* stack base pointer */ 2 11 2 abort variable label, /* to abort task */ 2 12 2 (elder_sister, younger_sister) pointer, /* threaded list of all tasks */ 2 13 2 (youngest_daughter, mother) pointer, /* our inferiors */ 2 14 2 (ready_next, ready_last) pointer, /* list of ready tasks */ 2 15 2 task_id bit (36) aligned, 2 16 2 state fixed bin, 2 17 2 create_data like task_create_data, 2 18 2 meters, 2 19 3 (tcpu, vcpu) fixed bin (71), 2 20 3 mem fixed bin (71), 2 21 3 pf fixed bin (35), 2 22 2 (ui_iocb, uo_iocb, eo_iocb) ptr, 2 23 2 task_area_ptr ptr, 2 24 2 cl_intermediary entry, 2 25 2 ips_mask bit (36); 2 26 2 27 declare ( 2 28 TASK_DP init (56), 2 29 STOPPED init (1), 2 30 BLOCKED init (2), 2 31 READY init (3), 2 32 DEAD init (4) 2 33 ) static options (constant); 2 34 2 35 /* End include file task_data.incl.pl1 */ 1 18 3 1 /* *********************************************************** 3 2* * * 3 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 3 4* * * 3 5* *********************************************************** */ 3 6 /* Begin include file task_create_data.incl.pl1 */ 3 7 3 8 declare task_create_data_version_3 fixed bin static init (3) options (constant); 3 9 declare task_create_data_ptr pointer automatic; 3 10 declare 1 task_create_data aligned based (task_create_data_ptr), 3 11 2 version fixed bin, /* this is version 3 */ 3 12 2 overseer variable entry (pointer), 3 13 2 data_ptr pointer, /* pointer to be passed to overseer */ 3 14 2 vcpu_limit fixed bin (71), /* CPU limit if any */ 3 15 2 priority fixed bin, /* for task scheduler */ 3 16 2 comment char (64), /* for humans */ 3 17 /* end of version 2 structure */ 3 18 2 flags, 3 19 3 top_level bit (1) unaligned, /* this is an independent task */ 3 20 3 shared_static bit (1) unaligned; /* shares static with creator */ 3 21 3 22 /* End include file task_create_data.incl.pl1 */ 1 19 1 20 1 21 /* End include file tasking_data */ 119 4 1 /* BEGIN INCLUDE FILE area_info.incl.pl1 12/75 */ 4 2 4 3 dcl area_info_version_1 fixed bin static init (1) options (constant); 4 4 4 5 dcl area_infop ptr; 4 6 4 7 dcl 1 area_info aligned based (area_infop), 4 8 2 version fixed bin, /* version number for this structure is 1 */ 4 9 2 control aligned like area_control, /* control bits for the area */ 4 10 2 owner char (32) unal, /* creator of the area */ 4 11 2 n_components fixed bin, /* number of components in the area (returned only) */ 4 12 2 size fixed bin (18), /* size of the area in words */ 4 13 2 version_of_area fixed bin, /* version of area (returned only) */ 4 14 2 areap ptr, /* pointer to the area (first component on multisegment area) */ 4 15 2 allocated_blocks fixed bin, /* number of blocks allocated */ 4 16 2 free_blocks fixed bin, /* number of free blocks not in virgin */ 4 17 2 allocated_words fixed bin (30), /* number of words allocated in the area */ 4 18 2 free_words fixed bin (30); /* number of words free in area not in virgin */ 4 19 4 20 dcl 1 area_control aligned based, 4 21 2 extend bit (1) unal, /* says area is extensible */ 4 22 2 zero_on_alloc bit (1) unal, /* says block gets zerod at allocation time */ 4 23 2 zero_on_free bit (1) unal, /* says block gets zerod at free time */ 4 24 2 dont_free bit (1) unal, /* debugging aid, turns off free requests */ 4 25 2 no_freeing bit (1) unal, /* for allocation method without freeing */ 4 26 2 system bit (1) unal, /* says area is managed by system */ 4 27 2 pad bit (30) unal; 4 28 4 29 /* END INCLUDE FILE area_info.incl.pl1 */ 120 5 1 /* BEGIN INCLUDE FILE -- lot.incl.pl1 S.Webber 9/74, Modified by R. Bratt 04/76, modified by M. Weaver 7/76 */ 5 2 /* modified by M. Weaver 3/77 */ 5 3 5 4 dcl lotp ptr; 5 5 5 6 dcl 1 lot based (lotp) aligned, 5 7 2 lp (0:9999) ptr unaligned; /* array of packed pointers to linkage sections */ 5 8 5 9 dcl lot_fault bit (36) aligned static options (constant) init ("111000000000000000000000000000000000"b); 5 10 /* lot fault has fault code = 0 and offset = 0 */ 5 11 5 12 dcl isotp ptr; 5 13 dcl 1 isot based (isotp) aligned, 5 14 2 isp (0:9999) ptr unaligned; 5 15 5 16 dcl 1 isot1 (0 :9999) aligned based, 5 17 2 flags unaligned, 5 18 3 fault bit (2) unaligned, 5 19 3 system bit (1) unaligned, 5 20 3 mbz bit (6) unaligned, 5 21 2 fault_code fixed bin (8) unaligned, 5 22 2 static_offset bit (18) unaligned; 5 23 5 24 5 25 /* END INCLUDE FILE lot.incl.pl1 */ 121 6 1 /* BEGIN INCLUDE FILE RNT.INCL.PL1 - WRITTEN SEPTEMBER 1974 BY R. BRATT */ 6 2 /* modified July 1976 by R. Bratt; updated March 1977 by M. Weaver */ 6 3 /* modified November 1977 by M. Weaver to use PL/I offsets instead of pointers */ 6 4 6 5 dcl (rntp, rntep) ptr; 6 6 dcl lth fixed bin (17); 6 7 dcl based_rnt_area area based; 6 8 6 9 dcl 1 rnt aligned based (rntp), 6 10 2 areap ptr, /* pointer to area for rnte allocations */ 6 11 2 meters, 6 12 3 insert, 6 13 4 trys fixed bin (17) unaligned, 6 14 4 wins fixed bin (17) unaligned, 6 15 3 get_segno like insert, 6 16 3 get_refnames like insert, 6 17 3 delete_segno like insert, 6 18 3 delete_name like insert, 6 19 2 rnt_area_size fixed bin, 6 20 2 srulep ptr, 6 21 2 name_hash_table (0:127) offset (rnt.areap -> based_rnt_area), 6 22 2 segno_hash_table (0:127) offset (rnt.areap -> based_rnt_area); 6 23 6 24 dcl 1 rnte aligned based (rntep), 6 25 2 name_fp offset (rnt.areap -> based_rnt_area), 6 26 2 segno_fp offset (rnt.areap -> based_rnt_area), 6 27 (2 segno fixed bin (17), 6 28 2 length fixed bin (17), 6 29 2 name char (lth refer (rnte.length)))unaligned; 6 30 6 31 /* --------------------END RNT.INCL.PL1--------------------- */ 122 7 1 /* BEGIN INCLUDE FILE ... stack_header.incl.pl1 .. 3/72 Bill Silver */ 7 2 /* modified 7/76 by M. Weaver for *system links and more system use of areas */ 7 3 /* modified 3/77 by M. Weaver to add rnt_ptr */ 7 4 /* Modified April 1983 by C. Hornig for tasking */ 7 5 7 6 /****^ HISTORY COMMENTS: 7 7* 1) change(86-06-24,DGHowe), approve(86-06-24,MCR7396), 7 8* audit(86-08-05,Schroth), install(86-11-03,MR12.0-1206): 7 9* added the heap_header_ptr definition. 7 10* 2) change(86-08-12,Kissel), approve(86-08-12,MCR7473), 7 11* audit(86-10-10,Fawcett), install(86-11-03,MR12.0-1206): 7 12* Modified to support control point management. These changes were actually 7 13* made in February 1985 by G. Palter. 7 14* 3) change(86-10-22,Fawcett), approve(86-10-22,MCR7473), 7 15* audit(86-10-22,Farley), install(86-11-03,MR12.0-1206): 7 16* Remove the old_lot pointer and replace it with cpm_data_ptr. Use the 18 7 17* bit pad after cur_lot_size for the cpm_enabled. This was done to save some 7 18* space int the stack header and change the cpd_ptr unal to cpm_data_ptr 7 19* (ITS pair). 7 20* END HISTORY COMMENTS */ 7 21 7 22 /* format: style2 */ 7 23 7 24 dcl sb ptr; /* the main pointer to the stack header */ 7 25 7 26 dcl 1 stack_header based (sb) aligned, 7 27 2 pad1 (4) fixed bin, /* (0) also used as arg list by outward_call_handler */ 7 28 2 cpm_data_ptr ptr, /* (4) pointer to control point which owns this stack */ 7 29 2 combined_stat_ptr ptr, /* (6) pointer to area containing separate static */ 7 30 2 clr_ptr ptr, /* (8) pointer to area containing linkage sections */ 7 31 2 max_lot_size fixed bin (17) unal, /* (10) DU number of words allowed in lot */ 7 32 2 main_proc_invoked fixed bin (11) unal, /* (10) DL nonzero if main procedure invoked in run unit */ 7 33 2 have_static_vlas bit (1) unal, /* (10) DL "1"b if (very) large arrays are being used in static */ 7 34 2 pad4 bit (2) unal, 7 35 2 run_unit_depth fixed bin (2) unal, /* (10) DL number of active run units stacked */ 7 36 2 cur_lot_size fixed bin (17) unal, /* (11) DU number of words (entries) in lot */ 7 37 2 cpm_enabled bit (18) unal, /* (11) DL non-zero if control point management is enabled */ 7 38 2 system_free_ptr ptr, /* (12) pointer to system storage area */ 7 39 2 user_free_ptr ptr, /* (14) pointer to user storage area */ 7 40 2 null_ptr ptr, /* (16) */ 7 41 2 stack_begin_ptr ptr, /* (18) pointer to first stack frame on the stack */ 7 42 2 stack_end_ptr ptr, /* (20) pointer to next useable stack frame */ 7 43 2 lot_ptr ptr, /* (22) pointer to the lot for the current ring */ 7 44 2 signal_ptr ptr, /* (24) pointer to signal procedure for current ring */ 7 45 2 bar_mode_sp ptr, /* (26) value of sp before entering bar mode */ 7 46 2 pl1_operators_ptr ptr, /* (28) pointer to pl1_operators_$operator_table */ 7 47 2 call_op_ptr ptr, /* (30) pointer to standard call operator */ 7 48 2 push_op_ptr ptr, /* (32) pointer to standard push operator */ 7 49 2 return_op_ptr ptr, /* (34) pointer to standard return operator */ 7 50 2 return_no_pop_op_ptr 7 51 ptr, /* (36) pointer to standard return / no pop operator */ 7 52 2 entry_op_ptr ptr, /* (38) pointer to standard entry operator */ 7 53 2 trans_op_tv_ptr ptr, /* (40) pointer to translator operator ptrs */ 7 54 2 isot_ptr ptr, /* (42) pointer to ISOT */ 7 55 2 sct_ptr ptr, /* (44) pointer to System Condition Table */ 7 56 2 unwinder_ptr ptr, /* (46) pointer to unwinder for current ring */ 7 57 2 sys_link_info_ptr ptr, /* (48) pointer to *system link name table */ 7 58 2 rnt_ptr ptr, /* (50) pointer to Reference Name Table */ 7 59 2 ect_ptr ptr, /* (52) pointer to event channel table */ 7 60 2 assign_linkage_ptr ptr, /* (54) pointer to storage for (obsolete) hcs_$assign_linkage */ 7 61 2 heap_header_ptr ptr, /* (56) pointer to the heap header for this ring */ 7 62 2 trace, 7 63 3 frames, 7 64 4 count fixed bin, /* (58) number of trace frames */ 7 65 4 top_ptr ptr unal, /* (59) pointer to last trace frame */ 7 66 3 in_trace bit (36) aligned, /* (60) trace antirecursion flag */ 7 67 2 pad2 bit (36), /* (61) */ 7 68 2 pad5 pointer; /* (62) pointer to future stuff */ 7 69 7 70 /* The following offset refers to a table within the pl1 operator table. */ 7 71 7 72 dcl tv_offset fixed bin init (361) internal static; 7 73 /* (551) octal */ 7 74 7 75 7 76 /* The following constants are offsets within this transfer vector table. */ 7 77 7 78 dcl ( 7 79 call_offset fixed bin init (271), 7 80 push_offset fixed bin init (272), 7 81 return_offset fixed bin init (273), 7 82 return_no_pop_offset fixed bin init (274), 7 83 entry_offset fixed bin init (275) 7 84 ) internal static; 7 85 7 86 7 87 7 88 7 89 7 90 /* The following declaration is an overlay of the whole stack header. Procedures which 7 91* move the whole stack header should use this overlay. 7 92**/ 7 93 7 94 dcl stack_header_overlay (size (stack_header)) fixed bin based (sb); 7 95 7 96 7 97 7 98 /* END INCLUDE FILE ... stack_header.incl.pl1 */ 123 124 125 end task_init_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/04/86 1034.1 task_init_.pl1 >special_ldd>install>MR12.0-1206>task_init_.pl1 119 1 06/16/82 1317.6 tasking_data.incl.pl1 >ldd>include>tasking_data.incl.pl1 1-18 2 06/16/82 1317.7 task_data.incl.pl1 >ldd>include>task_data.incl.pl1 1-19 3 06/16/82 1317.8 task_create_data.incl.pl1 >ldd>include>task_create_data.incl.pl1 120 4 06/11/76 1043.4 area_info.incl.pl1 >ldd>include>area_info.incl.pl1 121 5 08/05/77 1022.4 lot.incl.pl1 >ldd>include>lot.incl.pl1 122 6 01/27/78 1711.4 rnt.incl.pl1 >ldd>include>rnt.incl.pl1 123 7 11/04/86 1324.3 stack_header.incl.pl1 >special_ldd>install>MR12.0-1206>stack_header.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. READY constant fixed bin(17,0) initial dcl 2-27 ref 102 TASK_DP constant fixed bin(17,0) initial dcl 2-27 ref 99 abort 2 based label variable level 2 dcl 2-9 set ref 107 108 abort_label_overlay based structure level 1 dcl 33 addr builtin function dcl 42 ref 76 76 97 99 107 108 addrel builtin function dcl 42 ref 82 83 ai 000110 automatic structure level 1 dcl 31 set ref 76 76 area_control based structure level 1 dcl 4-20 area_info based structure level 1 dcl 4-7 area_info_version_1 constant fixed bin(17,0) initial dcl 4-3 ref 70 areap 16 000110 automatic pointer level 2 in structure "ai" dcl 31 in procedure "task_init_" set ref 75* 78 areap based pointer level 2 in structure "rnt" dcl 6-9 in procedure "task_init_" set ref 80 84* based_ptr based pointer dcl 37 set ref 99* based_rnt_area based area(1024) dcl 6-7 ref 81 87 code 000101 automatic fixed bin(35,0) dcl 28 set ref 76* 77 111* 112* 113* code_ptr based pointer level 2 dcl 33 set ref 107* comment 37 based char(64) level 3 dcl 2-9 set ref 103* control 1 000110 automatic structure level 2 dcl 31 set ref 71* create_data 24 based structure level 2 dcl 2-9 define_area_ 000014 constant entry external dcl 17 ref 76 elder_sister 6 based pointer level 2 dcl 2-9 set ref 104* env_ptr 2 based pointer level 2 dcl 33 set ref 108* eo_iocb 74 based pointer level 2 dcl 2-9 set ref 113* foo 000000 internal static fixed bin(17,0) dcl 24 set ref 46* get_ring_ 000016 constant entry external dcl 18 ref 56 56 hcs_$grow_lot 000020 constant entry external dcl 19 ref 56 i 000100 automatic fixed bin(17,0) dcl 27 set ref 59* 60 60* insert 2 based structure level 3 dcl 6-9 ioa_$rsnnl 000022 constant entry external dcl 20 ref 110 iox_$find_iocb 000024 constant entry external dcl 21 ref 111 112 113 lot based structure level 1 dcl 5-6 lot_fault constant bit(36) initial dcl 5-9 ref 60 lot_ptr 26 based pointer level 2 dcl 7-26 ref 56 58 lotp 000146 automatic pointer dcl 5-4 set ref 58* 60 60 lp based pointer array level 2 packed unaligned dcl 5-6 set ref 60 60* max_lot_size 12 based fixed bin(17,0) level 2 packed unaligned dcl 7-26 ref 59 meters 60 based structure level 2 in structure "task_data" dcl 2-9 in procedure "task_init_" meters 64 based structure level 3 in structure "tasking_data" dcl 1-9 in procedure "task_init_" meters 2 based structure level 2 in structure "rnt" dcl 6-9 in procedure "task_init_" meters 64 000002 internal static structure level 3 in structure "static_tasking_data" dcl 25 in procedure "task_init_" mother 14 based pointer level 2 dcl 2-9 set ref 104* old_rnt_areap 000106 automatic pointer dcl 30 set ref 80* 81 82 83 87 owner 2 000110 automatic char(32) level 2 packed unaligned dcl 31 set ref 73* pointer builtin function dcl 42 ref 99 ready_head based pointer initial level 2 dcl 1-9 set ref 115* ready_last 20 based pointer level 2 dcl 2-9 set ref 104* ready_next 16 based pointer level 2 dcl 2-9 set ref 104* ready_tail 2 based pointer initial level 2 dcl 1-9 set ref 115* rnt based structure level 1 dcl 6-9 rnt_area based area dcl 40 set ref 81* 85 rnt_area_size 7 based fixed bin(17,0) level 2 dcl 6-9 set ref 69 85* rnt_areap 000134 automatic pointer dcl 39 set ref 78* 81 82 83 84 85 rnt_ptr 62 based pointer level 2 dcl 7-26 set ref 69 80 82 86* rntp 000150 automatic pointer dcl 6-5 set ref 82* 83 83 84 85 86 root_task_data 4 based structure level 2 dcl 1-9 set ref 99 sb based pointer level 2 in structure "task_data" dcl 2-9 in procedure "task_init_" set ref 101* sb 000152 automatic pointer dcl 7-24 in procedure "task_init_" set ref 47* 56 56 58 59 69 80 82 86 99 101 106 108 116 size builtin function dcl 42 in procedure "task_init_" ref 85 size 13 000110 automatic fixed bin(18,0) level 2 in structure "ai" dcl 31 in procedure "task_init_" set ref 74* srulep 10 based pointer level 2 dcl 6-9 set ref 83* 83 stack_begin_ptr 22 based pointer level 2 dcl 7-26 ref 108 stack_header based structure level 1 dcl 7-26 stackbaseptr builtin function dcl 42 ref 47 state 23 based fixed bin(17,0) level 2 dcl 2-9 set ref 102* static_tasking_data 000002 internal static structure level 1 dcl 25 set ref 97 sys_info$max_seg_size 000012 external static fixed bin(19,0) dcl 15 ref 69 74 85 system 1(05) 000110 automatic bit(1) level 3 packed unaligned dcl 31 set ref 72* task_create_data based structure level 1 dcl 3-10 task_ctl_$death 000026 constant entry external dcl 22 ref 107 task_data based structure level 1 dcl 2-9 task_data_ptr 000144 automatic pointer dcl 2-8 set ref 99* 101 102 103 104 104 104 104 104 104 106 107 108 110 111 112 113 115 task_error_ 000136 stack reference condition dcl 44 ref 77 task_id 22 based bit(36) level 2 dcl 2-9 set ref 106* 110* task_name 000102 automatic char(13) unaligned dcl 29 set ref 110* 111 112 113 tasking_data based structure level 1 dcl 1-9 tasking_data_ptr_ 000030 external static pointer initial dcl 1-8 set ref 97* 99 115 115 116 ui_iocb 70 based pointer level 2 dcl 2-9 set ref 111* uo_iocb 72 based pointer level 2 dcl 2-9 set ref 112* valid_tasks 132 based bit(1) initial array level 2 packed unaligned dcl 1-9 set ref 116* version 000110 automatic fixed bin(17,0) level 2 dcl 31 set ref 70* younger_sister 10 based pointer level 2 dcl 2-9 set ref 104* youngest_daughter 12 based pointer level 2 dcl 2-9 set ref 104* zero_on_free 1(02) 000110 automatic bit(1) level 3 packed unaligned dcl 31 set ref 72* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BLOCKED internal static fixed bin(17,0) initial dcl 2-27 DEAD internal static fixed bin(17,0) initial dcl 2-27 STOPPED internal static fixed bin(17,0) initial dcl 2-27 area_infop automatic pointer dcl 4-5 call_offset internal static fixed bin(17,0) initial dcl 7-78 entry_offset internal static fixed bin(17,0) initial dcl 7-78 isot based structure level 1 dcl 5-13 isot1 based structure array level 1 dcl 5-16 isotp automatic pointer dcl 5-12 lth automatic fixed bin(17,0) dcl 6-6 push_offset internal static fixed bin(17,0) initial dcl 7-78 return_no_pop_offset internal static fixed bin(17,0) initial dcl 7-78 return_offset internal static fixed bin(17,0) initial dcl 7-78 rnte based structure level 1 dcl 6-24 rntep automatic pointer dcl 6-5 stack_header_overlay based fixed bin(17,0) array dcl 7-94 task_create_data_ptr automatic pointer dcl 3-9 task_create_data_version_3 internal static fixed bin(17,0) initial dcl 3-8 tv_offset internal static fixed bin(17,0) initial dcl 7-72 NAME DECLARED BY EXPLICIT CONTEXT. task_init_ 000036 constant entry external dcl 12 NAMES DECLARED BY CONTEXT OR IMPLICATION. baseno builtin function ref 106 116 binary builtin function ref 82 82 83 83 116 codeptr builtin function ref 107 null builtin function ref 75 104 rel builtin function ref 82 82 83 83 string builtin function ref 71 unspec builtin function set ref 60 60* STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 602 1152 443 634 Length 1472 443 32 303 136 316 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME task_init_ 172 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000000 foo task_init_ 000002 static_tasking_data task_init_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME task_init_ 000100 i task_init_ 000101 code task_init_ 000102 task_name task_init_ 000106 old_rnt_areap task_init_ 000110 ai task_init_ 000134 rnt_areap task_init_ 000144 task_data_ptr task_init_ 000146 lotp task_init_ 000150 rntp task_init_ 000152 sb task_init_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac signal_op ss_ext_entry op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. area_assign_ define_area_ get_ring_ hcs_$grow_lot ioa_$rsnnl iox_$find_iocb task_ctl_$death THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. sys_info$max_seg_size tasking_data_ptr_ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000035 46 000043 47 000045 56 000047 58 000070 59 000073 60 000103 61 000107 69 000111 70 000117 71 000121 72 000122 73 000126 74 000131 75 000133 76 000135 77 000147 78 000154 80 000156 81 000162 82 000177 83 000211 84 000217 85 000221 86 000224 87 000225 97 000227 99 000233 101 000241 102 000243 103 000245 104 000250 106 000257 107 000262 108 000264 110 000266 111 000316 112 000346 113 000376 115 000426 116 000434 117 000442 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved