COMPILATION LISTING OF SEGMENT ws_tty_mgr_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 01/24/89 0849.4 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 6* * * 7* *********************************************************** */ 8 9 /****^ HISTORY COMMENTS: 10* 1) change(86-12-05,RBarstad), approve(86-12-11,MCR7585), 11* audit(87-08-05,Gilcrease), install(87-08-07,MR12.1-1075): 12* Created. 13* END HISTORY COMMENTS */ 14 15 /* format: style3,^ifthenstmt,indthenelse,^indnoniterdo,^indprocbody,initcol3,dclind5,idind32 */ 16 ws_tty_mgr_: 17 proc (); 18 return; 19 20 /* ------------------------ DESCRIPTION ---------------------------------- */ 21 22 /****^ VERSION 1.36 23* 24* management entries for ws_tty_ 25* 26**/ 27 28 /* ------------------------ PARAMETERS ----------------------------------- */ 29 30 dcl I_iocb_ptr parm ptr; /* iocb ptr input */ 31 dcl O_iocb_ptr parm ptr; /* iocb ptr output */ 32 dcl I_flags parm bit (9); /* control msg flags */ 33 dcl I_msg_id parm char (3); 34 dcl I_msg_data_ptr parm ptr; 35 dcl I_msg_data_size parm fixed bin (21); 36 dcl O_msg_id parm char (3); /* actual id returned from WSTERM */ 37 dcl O_msg_data_size parm fixed bin (21); /* actual data size read from WSTERM */ 38 dcl O_code fixed bin (35) parm; 39 40 /* ------------------------ AUTOMATIC ------------------------------------ */ 41 42 dcl n_chars_actually_read fixed bin (21); 43 dcl iocb_ptr ptr; /* local copy */ 44 dcl flags bit (9); /* local copy */ 45 dcl event_code fixed bin (35); 46 dcl code fixed bin (35); /* error code */ 47 dcl offset_msg_data_ptr pointer; 48 dcl retval fixed bin (35); 49 dcl saved_mask bit (36) aligned; /* saved ips mask */ 50 dcl total_chars_read fixed bin (21); 51 dcl unmask_count fixed bin; 52 dcl count fixed bin; 53 54 dcl 1 saved_mask_bit aligned based (addr (saved_mask)), 55 2 interrupts bit (35) unaligned, 56 2 control bit (1) unaligned; 57 58 dcl 1 ws_send_msg aligned, /* sent by "send message" control */ 59 2 type fixed bin (8) unaligned, /* foreground or background */ 60 2 id char (3) unaligned, /* one of ws_control_ids */ 61 2 flags bit (9) unaligned, 62 2 data_size fixed bin (8) unaligned, 63 2 message_data char (MAX_SEND_MSG_SIZE) unaligned; 64 /* longest message */ 65 66 dcl 1 ws_control_msg aligned, /* for iox put&get chars */ 67 2 id char (3) unaligned, /* one of ws_control_ids */ 68 2 data_size_hi fixed bin (8) unaligned, 69 2 data_size_lo fixed bin (8) unaligned; 70 71 dcl ws_message_ptr ptr; 72 dcl ws_message_length fixed bin (21); 73 74 dcl 1 mio_message like mowse_io_message; 75 76 /* ------------------------ BASED ---------------------------------------- */ 77 78 dcl msg_data_ptr ptr; /* local copy of I_msg_data_ptr */ 79 dcl msg_data_size fixed bin (21); /* local copy of I_msg_data_size */ 80 dcl msg_data char (msg_data_size) based (msg_data_ptr); 81 /* caller's string */ 82 dcl based_chars (0:total_chars_read) char (1) based unaligned; /* to bump read ptr */ 83 84 /* ------------------------ CONSTANTS ------------------------------------ */ 85 86 dcl ( 87 ME char (11) init ("ws_tty_mgr_"), 88 BYTE_SIZE fixed bin init (256), 89 DIALED_UP fixed bin init (5), /* tty_state */ 90 IGNORE fixed bin init (1), /* tty_state */ 91 FALSE bit (1) init ("0"b), 92 TRUE bit (1) init ("1"b), 93 MAX_SEND_MSG_SIZE fixed bin (21) init (255), 94 ZERO_IPS_MASK bit (36) init ((36)"0"b), 95 SEND_MSG_OVERHEAD fixed bin init (6), /* 8K - longest string size */ 96 CONTROL_MSG_OVERHEAD fixed bin (21) init (5)/* 8K - longest string size */ 97 ) internal static options (constant); 98 99 /* ------------------------ EXTERNALS ------------------------------------ */ 100 101 dcl ( 102 error_table_$no_iocb, 103 error_table_$no_operation, 104 error_table_$io_no_permission, 105 error_table_$unable_to_do_io 106 ) fixed bin (35) external static; 107 108 /* ------------------------ ENTRIES -------------------------------------- */ 109 110 dcl hcs_$set_ips_mask entry (bit (36) aligned, bit (36) aligned); 111 dcl hcs_$reset_ips_mask entry (bit (36) aligned, bit (36) aligned); 112 dcl ipc_$mask_ev_calls entry (fixed bin(35)); 113 dcl ipc_$unmask_ev_calls entry (fixed bin(35)); 114 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 115 dcl iox_$get_chars entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 116 dcl iox_$put_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)); 117 dcl sub_err_ entry () options (variable); 118 dcl ws_trace_ entry () options (variable); 119 120 /* ------------------------ BUILTINS and CONDITIONS ---------------------- */ 121 122 dcl (addr, max, min, null, substr) builtin; 123 dcl (any_other, cleanup) condition; 124 125 126 /* ------------------------ PROGRAM -------------------------------------- */ 127 128 send_message: 129 entry (I_iocb_ptr, I_msg_id, I_flags, I_msg_data_ptr, I_msg_data_size); 130 131 iocb_ptr = I_iocb_ptr; 132 ws_send_msg.id = I_msg_id; 133 flags = I_flags; 134 msg_data_ptr = I_msg_data_ptr; 135 msg_data_size = I_msg_data_size; 136 137 mowse_io_data_ptr = iocb_ptr -> iocb.attach_data_ptr; 138 139 ws_send_msg.type = FG_CONTROL_MESSAGE; 140 141 if msg_data_ptr = null 142 then do; /* no data */ 143 msg_data_size = 0; 144 ws_send_msg.data_size = 0; 145 ws_send_msg.flags = WS_FLAG_NONE; 146 ws_send_msg.message_data = ""; 147 148 if ws_tty_data$Flags.Trace 149 then call ws_trace_ (" ^a$send_message: ID= ^a, no data.", ME, ws_send_msg.id); 150 151 end; 152 else do; 153 if ws_tty_data$Flags.Trace 154 then call ws_trace_ (" ^a$send_message: ID= ^a, size= ^i, '^a'.", ME, ws_send_msg.id, msg_data_size, 155 msg_data); 156 157 if msg_data_size > MAX_SEND_MSG_SIZE 158 then call sub_err_ (code, "ws_tty_mgr_$send_message", ACTION_CANT_RESTART, sub_error_info_ptr, retval, 159 "String size of ^i too large for internal buffers.", msg_data_size); 160 161 ws_send_msg.data_size = msg_data_size; 162 ws_send_msg.flags = flags; 163 ws_send_msg.message_data = msg_data; 164 end; 165 166 mio_message.version = mowse_io_info_version_1; 167 mio_message.channel = FG; 168 mio_message.io_message_ptr = addr (ws_send_msg); 169 mio_message.io_message_len = msg_data_size + SEND_MSG_OVERHEAD; 170 mowse_io_message_ptr = addr (mio_message); 171 172 /**** BEGIN IO SECTION ****/ 173 event_code = 0; 174 unmask_count = 0; 175 saved_mask = ZERO_IPS_MASK; 176 on cleanup call cleanup_handler; 177 on any_other call any_other_handler; 178 call hcs_$set_ips_mask (mowse_io_data.ws.ips_mask, saved_mask); 179 do while (event_code = 0); 180 call ipc_$unmask_ev_calls (event_code); 181 unmask_count = unmask_count +1; 182 end; 183 184 call iox_$control (iocb_ptr, "send_message", mowse_io_message_ptr, code); 185 186 if saved_mask_bit.control 187 then call hcs_$reset_ips_mask (saved_mask, saved_mask); 188 do count = 2 to unmask_count; 189 call ipc_$mask_ev_calls (0); end; 190 revert any_other, cleanup; 191 /**** END IO SECTION ****/ 192 193 if code ^= 0 194 then call sub_err_ (code, "ws_tty_mgr_$send_message", ACTION_CANT_RESTART, sub_error_info_ptr, retval, 195 "Attempting to write to iocb ^p via iox_$put_chars.", iocb_ptr); 196 197 return; 198 199 /* ------------------------------------------------------------------------- */ 200 201 send_text: 202 entry (I_iocb_ptr, I_msg_data_ptr, I_msg_data_size); 203 204 iocb_ptr = I_iocb_ptr; 205 msg_data_ptr = I_msg_data_ptr; 206 msg_data_size = I_msg_data_size; 207 208 mowse_io_data_ptr = iocb_ptr -> iocb.attach_data_ptr; 209 210 if msg_data_ptr = null 211 then do; /* no data */ 212 msg_data_size = 0; 213 214 if ws_tty_data$Flags.Trace 215 then call ws_trace_ (" ^a$send_text: no data.", ME); 216 217 end; 218 else do; 219 if ws_tty_data$Flags.Trace 220 then call ws_trace_ (" ^a$send_text: size= ^i, '^a'.", ME, msg_data_size, msg_data); 221 end; 222 223 /**** BEGIN IO SECTION ****/ 224 event_code = 0; 225 unmask_count = 0; 226 saved_mask = ZERO_IPS_MASK; 227 on cleanup call cleanup_handler; 228 on any_other call any_other_handler; 229 call hcs_$set_ips_mask (mowse_io_data.ws.ips_mask, saved_mask); 230 do while (event_code = 0); 231 call ipc_$unmask_ev_calls (event_code); 232 unmask_count = unmask_count +1; 233 end; 234 235 call iox_$put_chars (iocb_ptr, msg_data_ptr, msg_data_size, code); 236 237 if saved_mask_bit.control 238 then call hcs_$reset_ips_mask (saved_mask, saved_mask); 239 do count = 2 to unmask_count; 240 call ipc_$mask_ev_calls (0); end; 241 revert any_other, cleanup; 242 /**** END IO SECTION ****/ 243 244 if code ^= 0 245 then call sub_err_ (code, "ws_tty_mgr_$send_text", ACTION_CANT_RESTART, sub_error_info_ptr, retval, 246 "Attempting to write to iocb ^p via iox_$put_chars.", iocb_ptr); 247 248 return; 249 250 /* ------------------------------------------------------------------------- */ 251 252 get_message: 253 entry (I_iocb_ptr, I_msg_data_ptr, I_msg_data_size, O_msg_data_size, O_msg_id); 254 255 iocb_ptr = I_iocb_ptr; 256 msg_data_size = I_msg_data_size; 257 msg_data_ptr = I_msg_data_ptr; 258 259 mowse_io_data_ptr = iocb_ptr -> iocb.attach_data_ptr; 260 261 if ws_tty_data$Flags.Trace 262 then call ws_trace_ (" ^a$get_message: iocb ptr= ^p, size= ^i, data ptr= ^p.", ME, iocb_ptr, msg_data_size, 263 msg_data_ptr); 264 265 ws_message_ptr = addr (ws_control_msg); 266 267 /* init */ 268 n_chars_actually_read = 0; 269 ws_control_msg.id = " "; 270 ws_control_msg.data_size_lo = 0; 271 ws_control_msg.data_size_hi = 0; 272 total_chars_read = 0; 273 274 /* read the control id and count */ 275 call get_ws_chars (ws_message_ptr, CONTROL_MSG_OVERHEAD, n_chars_actually_read); 276 if ws_tty_data$Flags.Trace 277 then call ws_trace_ (" ^a$get_message: ID received= ^a, size= ^i, hi&lo= ^i, ^i.", ME, ws_control_msg.id, 278 n_chars_actually_read, ws_control_msg.data_size_hi, ws_control_msg.data_size_lo); 279 ws_message_length = ws_control_msg.data_size_lo + ws_control_msg.data_size_hi * BYTE_SIZE; 280 281 /* read the actual input chars */ 282 if ws_message_length = 0 283 then O_msg_data_size = 0; 284 else do; 285 call get_ws_chars (msg_data_ptr, min (ws_message_length, msg_data_size), n_chars_actually_read); 286 if ws_tty_data$Flags.Trace 287 then call ws_trace_ (" ^a$get_message: #chars received= ^i, chars= '^a'.", ME, n_chars_actually_read, 288 substr (msg_data, 1, max (1, n_chars_actually_read))); 289 290 if ws_message_length > msg_data_size 291 then do; 292 if ws_tty_data$Flags.Trace then do; 293 call ws_trace_ (" ^a$get_message sub_err_: ws_message_length(^i) > msg_data_size(^i)", ME, ws_message_length, msg_data_size); 294 call ws_trace_ (" ^a$get_message sub_err_: ID=^a, hi&lo=^i&^i.", 295 ME, ws_control_msg.id, ws_control_msg.data_size_hi, ws_control_msg.data_size_lo); 296 call ws_trace_ (" ^a$get_message sub_err_: #chars read=^i, chars='^a'.", 297 ME, n_chars_actually_read, substr (msg_data, 1, max (1, n_chars_actually_read))); 298 end /* Trace */; 299 call sub_err_ (error_table_$no_operation, "ws_tty_mgr_$get_message", ACTION_CANT_RESTART, 300 sub_error_info_ptr, retval, "Input truncated to fit caller's buffer."); 301 end; 302 303 total_chars_read = n_chars_actually_read; 304 do while (total_chars_read < ws_message_length); /* message got split up into packets */ 305 offset_msg_data_ptr = addr (msg_data_ptr -> based_chars (total_chars_read)); 306 call get_ws_chars (offset_msg_data_ptr, (ws_message_length-total_chars_read), n_chars_actually_read); 307 total_chars_read = total_chars_read + n_chars_actually_read; 308 end; 309 310 O_msg_data_size = total_chars_read; 311 end; 312 313 O_msg_id = ws_control_msg.id; 314 315 return; 316 317 /* ------------------------------------------------------------------------- */ 318 319 have_wsterm: 320 entry (I_iocb_ptr, O_tty_state, O_code) returns (bit (1)); 321 322 /* checks to see if WSTERM is connected */ 323 /* if it is, returns TRUE and sets tty_state to DIALED_UP */ 324 /* if it is not, returns FALSE, sets tty_state to IGNORE, and sets code to error_table_$io_no_permission */ 325 326 dcl O_tty_state fixed bin parm; 327 dcl internal_ws_state_ptr ptr; 328 dcl 1 internal_ws_state aligned like mowse_io_terminal_state; 329 330 O_code = 0; 331 332 iocb_ptr = I_iocb_ptr; 333 334 internal_ws_state.version = mowse_io_info_version_1; 335 internal_ws_state_ptr = addr (internal_ws_state); 336 337 call iox_$control (iocb_ptr, "get_terminal_emulator_state", internal_ws_state_ptr, code); 338 339 if ws_tty_data$Flags.Trace 340 then call ws_trace_ (" ^a$have_wsterm: terminal_emulator_state = ^b, code= ^i.", ME, internal_ws_state.state, 341 code); 342 343 if code ^= 0 344 then do; 345 O_tty_state = 0; 346 O_code = code; 347 return (FALSE); 348 end; 349 350 if internal_ws_state.state = FALSE 351 then do; 352 O_tty_state = IGNORE; 353 O_code = error_table_$io_no_permission; 354 end; 355 else /* state = TRUE */ 356 O_tty_state = DIALED_UP; 357 358 return (internal_ws_state.state); 359 360 /* ------------------------------------------------------------------------- */ 361 362 ok_iocb: 363 entry (I_iocb_ptr, O_iocb_ptr, O_attach_data_ptr, O_code) returns (bit (1)); 364 365 /* checks the iocb_ptr and returns the actual ptr and the attach_data_ptr */ 366 /* returns TRUE if all ok */ 367 368 dcl O_attach_data_ptr ptr parm; 369 370 O_iocb_ptr, O_attach_data_ptr = null; 371 372 if I_iocb_ptr = null 373 then goto no_iocb; 374 375 O_iocb_ptr = I_iocb_ptr -> iocb.actual_iocb_ptr; 376 377 if O_iocb_ptr = null 378 then goto no_iocb; 379 380 O_attach_data_ptr = O_iocb_ptr -> iocb.attach_data_ptr; 381 382 if ws_tty_data$Flags.Trace 383 then do; 384 call ws_trace_ ( 385 " ^a$ok_iocb(TRUE): I_iocb_ptr=^p, O_iocb_ptr=^p, O_attach_data_ptr=^p, iocb.name=^a, open_descrip=^a.", 386 ME, I_iocb_ptr, O_iocb_ptr, O_attach_data_ptr, O_iocb_ptr -> iocb.name, 387 O_attach_data_ptr -> mowse_io_data.open_descrip); 388 end; 389 390 O_code = 0; 391 return (TRUE); 392 393 no_iocb: 394 if ws_tty_data$Flags.Trace 395 then call ws_trace_ (" ^a$ok_iocb(FALSE):I_iocb_ptr=^p, O_iocb_ptr=^p.", ME, I_iocb_ptr, O_iocb_ptr); 396 397 O_code = error_table_$no_iocb; 398 return (FALSE); 399 400 /* ------------------------ END PROGRAM ---------------------------------- */ 401 402 /* ------------------------ INTERNAL PROCEDURES -------------------------- */ 403 404 get_ws_chars: 405 proc (buffer_ptr, n_chars_to_read, n_chars_returned); 406 407 dcl buffer_ptr ptr parm; 408 dcl n_chars_to_read fixed bin (21) parm; 409 dcl n_chars_returned fixed bin (21) parm; 410 411 /**** BEGIN IO SECTION ****/ 412 event_code = 0; 413 unmask_count = 0; 414 saved_mask = ZERO_IPS_MASK; 415 on cleanup call cleanup_handler; 416 on any_other call any_other_handler; 417 call hcs_$set_ips_mask (mowse_io_data.ws.ips_mask, saved_mask); 418 do while (event_code = 0); 419 call ipc_$unmask_ev_calls (event_code); 420 unmask_count = unmask_count +1; 421 end; 422 423 call iox_$get_chars (iocb_ptr, buffer_ptr, n_chars_to_read, n_chars_returned, code); 424 425 if saved_mask_bit.control 426 then call hcs_$reset_ips_mask (saved_mask, saved_mask); 427 do count = 2 to unmask_count; 428 call ipc_$mask_ev_calls (0); end; 429 revert any_other, cleanup; 430 /**** END IO SECTION ****/ 431 432 if code ^= 0 433 then call sub_err_ (code, "ws_tty_mgr_$get_message", ACTION_CANT_RESTART, sub_error_info_ptr, retval, 434 "Attempting to read from iocb ^p via iox_$get_chars.", iocb_ptr); 435 436 return; 437 end get_ws_chars; 438 439 /* ------------------------------------------------------------------------- */ 440 441 cleanup_handler: 442 proc; 443 444 if ws_tty_data$Flags.Trace 445 then call ws_trace_ (" ^a$cleanup_handler :saved_mask=^o.", ME, saved_mask); 446 447 if saved_mask_bit.control 448 then call hcs_$reset_ips_mask (saved_mask, saved_mask); 449 do count = 2 to unmask_count; 450 call ipc_$mask_ev_calls (0); 451 end; 452 453 return; 454 end cleanup_handler; 455 456 /* ------------------------------------------------------------------------- */ 457 458 any_other_handler: 459 proc; 460 461 dcl 1 ci aligned like condition_info; 462 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)); 463 dcl continue_to_signal_ entry (fixed bin (35)); 464 465 if ws_tty_data$Flags.Trace 466 then call ws_trace_ (" ^a$any_other_handler :saved_mask=^o.", ME, saved_mask); 467 468 if saved_mask_bit.control 469 then call hcs_$reset_ips_mask (saved_mask, saved_mask); 470 do count = 2 to unmask_count; 471 call ipc_$mask_ev_calls (0); 472 end; 473 474 ci.version = 1; 475 call find_condition_info_ (null (), addr (ci), (0)); 476 477 if ws_tty_data$Flags.Trace 478 then call ws_trace_ (" ^a$any_other_handler: condition_name=^a.", ME, ci.condition_name); 479 480 call continue_to_signal_ ((0)); 481 482 return; 483 end any_other_handler; 484 485 /* ------------------------ INCLUDES ------------------------------------- */ 486 1 1 /* BEGIN INCLUDE FILE ws_control_ids */ 1 2 1 3 /****^ HISTORY COMMENTS: 1 4* 1) change(86-06-05,RBarstad), approve(86-12-11,MCR7585), 1 5* audit(87-01-28,Gilcrease), install(87-08-07,MR12.1-1075): 1 6* ws_tty_ <-> WSTERM message control ids 1 7* 2) change(87-01-15,RBarstad), approve(87-01-15,MCR7585), 1 8* audit(87-01-28,Gilcrease), install(87-08-07,MR12.1-1075): 1 9* added control message flags 1 10* END HISTORY COMMENTS */ 1 11 1 12 /* message control ids */ 1 13 dcl ( 1 14 WS_ABORT init ("ABT"), 1 15 WS_ENTER_SYNC_MODE init ("ESM"), 1 16 WS_SYNC_MODE_ENTERED init ("SME"), 1 17 WS_EXIT_SYNC_MODE init ("XSM"), 1 18 WS_SYNC_MODE_EXITED init ("SMX"), 1 19 WS_END_ECHOED_INPUT init ("EEI"), 1 20 WS_END_NON_ECHOED_INPUT init ("ENI"), 1 21 WS_READ_WITH_NO_ECHO init ("RNE"), 1 22 WS_READ_WITH_ECHO init ("RWE"), 1 23 WS_SET_BREAK_TABLE init ("SBT"), 1 24 WS_SET_TTY_MODES init ("STM"), 1 25 WS_ECHOED_INPUT_CHARS init ("EIC"), 1 26 WS_UNECHOED_INPUT_CHARS init ("UIC"), 1 27 WS_PRINTER_ON init ("PON"), 1 28 WS_PRINTER_OFF init ("POF"), 1 29 WS_DISPLAY_TEXT init ("DTX"), 1 30 WS_ORDER init ("ORD") 1 31 ) char (3) internal static options (constant); 1 32 1 33 /* control message flags */ 1 34 dcl ( 1 35 WS_FLAG_NONE init ("000000000"b), 1 36 WS_FLAG_NO_BLOCK init ("010000000"b) /* don't block on read */ 1 37 ) bit (9) internal static options (constant); 1 38 1 39 /* END INCLUDE FILE ws_control_ids */ 487 488 2 1 /* BEGIN INCLUDE FILE ws_tty_data */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(86-12-05,RBarstad), approve(86-12-11,MCR7585), 2 5* audit(86-12-12,Gilcrease), install(87-08-07,MR12.1-1075): 2 6* ws_tty_ external static 2 7* END HISTORY COMMENTS */ 2 8 2 9 dcl 1 ws_tty_data$Flags aligned external static, 2 10 3 Debug bit (1) unaligned, 2 11 3 Trace bit (1) unaligned, 2 12 3 Pad bit (34) unaligned; 2 13 2 14 /* END INCLUDE FILE ws_tty_data */ 489 490 3 1 /* BEGIN INCLUDE FILE: mowse_io_control_info.incl.pl1 * * * * * * * * * * * * */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-06-15,Flegel), approve(86-12-16,MCR7580), 3 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 6* Created for control support for mowse_io_. 3 7* 2) change(86-08-01,Flegel), approve(86-12-16,MCR7580), 3 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 9* Changed version fields to char (8) and 3 10* installed version constant. 3 11* 3) change(86-10-08,Flegel), approve(86-12-16,MCR7580), 3 12* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 13* Added flush_subchannel_info structure. 3 14* 4) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 3 15* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 16* Approved. 3 17* 5) change(86-12-05,Flegel), approve(86-12-05,MCR7580), 3 18* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 3 19* Added mowse_io_set_video_mode_info structure. 3 20* 6) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 3 21* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 3 22* Changes to support async call channels. 3 23* END HISTORY COMMENTS */ 3 24 3 25 /* : Version number */ 3 26 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 3 27 dcl mowse_io_info_version_1 3 28 char (8) int static options (constant) 3 29 init ("miover_1"); 3 30 3 31 /* : Mowse store info structure */ 3 32 dcl mowse_io_store_info_ptr 3 33 ptr; 3 34 dcl 01 mowse_io_store_info based (mowse_io_store_info_ptr), 3 35 02 version char (8), 3 36 02 info_ptr ptr; /* Pointer to mowse_info_ structure */ 3 37 3 38 /* : Mowse info structure */ 3 39 dcl mowse_io_info_ptr ptr; 3 40 dcl 01 mowse_io_info based (mowse_io_info_ptr), 3 41 02 version char (8), 3 42 02 mcb_ptr ptr, /* Pointer to mowse_mcb */ 3 43 02 info_ptr ptr; /* Pointer to Mowse information (CATs etc.) */ 3 44 3 45 /* : Control info overlay for debug_on */ 3 46 dcl mowse_io_debug_info_ptr 3 47 ptr; 3 48 dcl 01 mowse_io_debug_info based (mowse_io_debug_info_ptr), 3 49 02 version char (8), 3 50 02 segment_name char (512) var; /* Debug file name */ 3 51 3 52 /* : Control info overlay for get_terminal_emulator_state */ 3 53 dcl mowse_io_terminal_state_ptr 3 54 ptr; 3 55 dcl 01 mowse_io_terminal_state 3 56 based (mowse_io_terminal_state_ptr), 3 57 02 version char (8), 3 58 02 state bit (1) unal, /* WSTERM state */ 3 59 02 mbz bit (35) unal; 3 60 3 61 /* : Control info overlay for send_message and send_local_message */ 3 62 dcl mowse_io_message_ptr ptr; 3 63 dcl 01 mowse_io_message based (mowse_io_message_ptr), 3 64 02 version char (8), 3 65 02 channel fixed bin, /* Channel of message */ 3 66 02 io_message_ptr ptr, /* Pointer to the nonvarying message */ 3 67 02 io_message_len fixed bin (21); /* Length of message */ 3 68 3 69 /* : Control info overlay for put_to_sleep */ 3 70 dcl mowse_io_sleep_info_ptr 3 71 ptr; 3 72 dcl 01 mowse_io_sleep_info based (mowse_io_sleep_info_ptr), 3 73 02 version char (8), 3 74 02 major_index fixed bin, /* CAT index of sleeper */ 3 75 02 sleep_seconds fixed bin; /* Sleep interval */ 3 76 3 77 /* : Control info for flush_subchannel */ 3 78 dcl mowse_io_flush_subchannel_info_ptr 3 79 ptr; 3 80 dcl 01 mowse_io_flush_subchannel_info 3 81 based (mowse_io_flush_subchannel_info_ptr), 3 82 02 version char (8), 3 83 02 subchannel fixed bin; /* The subchannel to be flushed (BG/FG) */ 3 84 3 85 /* : Control info to set the video mode */ 3 86 dcl mowse_io_set_video_mode_info_ptr 3 87 ptr; 3 88 dcl 01 mowse_io_set_video_mode_info 3 89 based (mowse_io_set_video_mode_info_ptr), 3 90 02 version char (8), 3 91 02 mode bit (1) unal, /* On or off */ 3 92 02 mbz bit (35) unal; 3 93 3 94 /* END INCLUDE FILE: mowse_io_control_info.incl.pl1 * * * * * * * * * * * * */ 491 492 4 1 /* BEGIN INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(86-09-17,Flegel), approve(86-12-16,MCR7580), 4 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 6* Created. 4 7* 2) change(86-10-03,Flegel), approve(86-12-16,MCR7580), 4 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 9* Combined mowse_minor_caps.incl.pl1 and 4 10* mowse.incl.pl1 so that programmer only needs include mowse.incl.pl1 4 11* 3) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 4 12* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 13* Approved. 4 14* 4) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 4 15* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 4 16* Changes to support async call channels. 4 17* END HISTORY COMMENTS */ 4 18 4 19 /* Name of MOWSE temp seg for data */ 4 20 4 21 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 4 22 dcl temp_seg_name char (6) init ("MOWSE_"); 4 23 4 24 /* Version number */ 4 25 4 26 dcl MOWSE_VERSION_ char (8) int static options (constant) init ("version1"); 4 27 4 28 /* System identification */ 4 29 4 30 dcl LOCAL_SYSTEM fixed bin int static options (constant) init (32); 4 31 dcl REMOTE_SYSTEM fixed bin int static options (constant) init (33); 4 32 4 33 /* Status request return codes */ 4 34 4 35 dcl STATUS_SUCCESS fixed bin (8) int static options (constant) 4 36 init (32); 4 37 dcl STATUS_FAILED fixed bin (8) int static options (constant) 4 38 init (33); 4 39 4 40 /* Input/output capability buffer size limits */ 4 41 4 42 dcl MINIMUM_BUFFER_SIZE fixed bin int static options (constant) init (128); 4 43 dcl MAXIMUM_BUFFER_SIZE fixed bin int static options (constant) init (65536); 4 44 dcl MAXIMUM_BG_SIZE fixed bin int static options (constant) init (512); 4 45 4 46 /* Packet size (communication) constants */ 4 47 4 48 dcl PACKET_SIZE fixed bin int static options (constant) init (124); 4 49 dcl MAXIMUM_PACKET_SIZE fixed bin int static options (constant) init (118); 4 50 4 51 /* Query message constants */ 4 52 4 53 dcl SEND_QUERY fixed bin int static options (constant) init (128); 4 54 dcl ACCEPT fixed bin int static options (constant) init (32); 4 55 dcl REJECT fixed bin int static options (constant) init (33); 4 56 4 57 /* Trace information constants */ 4 58 4 59 dcl RECEIVE fixed bin int static options (constant) init (1); 4 60 dcl SEND fixed bin int static options (constant) init (0); 4 61 4 62 /* Limits on dedicated minor capabilities */ 4 63 4 64 dcl MINIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (32); 4 65 dcl MAXIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (63); 4 66 dcl MINIMUM_USER_MINOR fixed bin int static options (constant) init (64); 4 67 dcl MAXIMUM_USER_MINOR fixed bin int static options (constant) init (127); 4 68 4 69 /* Dedicated Minor Capabilities */ 4 70 4 71 dcl LAST fixed bin int static options (constant) init (0); 4 72 dcl EXECUTE_COMMAND_REPLY fixed bin int static options (constant) init (32); 4 73 dcl EXECUTE_CAPABILITY_REPLY 4 74 fixed bin int static options (constant) init (33); 4 75 dcl FAIL_CAPABILITY fixed bin int static options (constant) init (33); 4 76 dcl INTERNAL fixed bin int static options (constant) init (32); 4 77 dcl EXECUTE_COMMAND fixed bin int static options (constant) init (34); 4 78 dcl ADD_TO_REMOTE_CAT fixed bin int static options (constant) init (35); 4 79 dcl DELETE_FROM_REMOTE_CAT fixed bin int static options (constant) init (36); 4 80 dcl SUSPEND_APPLICATION fixed bin int static options (constant) init (37); 4 81 dcl RESUME_APPLICATION fixed bin int static options (constant) init (38); 4 82 dcl TERMINATE_APPLICATION fixed bin int static options (constant) init (39); 4 83 dcl RESET_APPLICATION fixed bin int static options (constant) init (40); 4 84 dcl RESET_REPLY fixed bin int static options (constant) init (41); 4 85 dcl WAKE_UP fixed bin int static options (constant) init (42); 4 86 dcl STATUS fixed bin int static options (constant) init (43); 4 87 dcl OVERFLOWED_BUFFER fixed bin int static options (constant) init (44); 4 88 dcl SYSTEM_ERROR fixed bin int static options (constant) init (45); 4 89 dcl QUERY_REPLY fixed bin int static options (constant) init (46); 4 90 dcl RESPONSE_CONNECT fixed bin int static options (constant) init (47); 4 91 dcl RESPONSE_DISCONNECT fixed bin int static options (constant) init (48); 4 92 dcl REQUEST_CONNECT fixed bin int static options (constant) init (49); 4 93 dcl REQUEST_DISCONNECT fixed bin int static options (constant) init (50); 4 94 dcl CONTINUE fixed bin int static options (constant) init (51); 4 95 dcl MORE fixed bin int static options (constant) init (52); 4 96 dcl SET_SLEEP_FLAG fixed bin int static options (constant) init (53); 4 97 dcl RESET_SLEEP_FLAG fixed bin int static options (constant) init (54); 4 98 dcl SET_SUSPEND fixed bin int static options (constant) init (55); 4 99 dcl RESET_SUSPEND fixed bin int static options (constant) init (56); 4 100 dcl STATUS_REPLY fixed bin int static options (constant) init (57); 4 101 4 102 /* Foreground */ 4 103 4 104 dcl FG_CONTROL_MESSAGE fixed bin int static options (constant) init (33); 4 105 dcl FG_BREAK fixed bin int static options (constant) init (34); 4 106 dcl FG_TERMINAL_DATA fixed bin int static options (constant) init (35); 4 107 dcl FG_MORE_DATA fixed bin int static options (constant) init (36); 4 108 dcl PUT_TO_BACKGROUND_BUFFER 4 109 fixed bin int static options (constant) init (37); 4 110 dcl PUT_TO_QUERY_MESSAGE_BUFFER 4 111 fixed bin int static options (constant) init (38); 4 112 4 113 /* END INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 493 494 5 1 /* BEGIN INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(86-05-17,Smith), approve(86-12-16,MCR7580), 5 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 5 6* Created to define MOWSE message formats. 5 7* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 5 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 5 9* Approved. 5 10* 3) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 5 11* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 5 12* Changes to support async call channels. 5 13* END HISTORY COMMENTS */ 5 14 5 15 /* Message Channels */ 5 16 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 5 17 dcl BG fixed bin int static options (constant) init (0); 5 18 /* Fore ground */ 5 19 dcl FG fixed bin int static options (constant) init (1); 5 20 /* Back ground */ 5 21 5 22 /* Message types: 5 23* 5 24*Each intersystem message is labelled with one of the following types. Upon 5 25*reciept of the message suitable action is undertaken. This scheme was 5 26*introduced to allow the transmission of messsages longer than the maximum 5 27*packet size. 5 28**/ 5 29 5 30 /* Templates for the various messages used throughout the mowse environment. 5 31* Non-allocatable */ 5 32 5 33 dcl message_len fixed bin init (6); 5 34 dcl message_ptr ptr; 5 35 5 36 /* expected format of message */ 5 37 5 38 dcl 01 input_message based (message_ptr), 5 39 02 header, 5 40 03 system char (1) unal, 5 41 03 major char (1) unal, 5 42 03 minor char (1) unal, 5 43 03 source_system char (1) unal, 5 44 03 source_major char (1) unal, 5 45 02 data char (message_len - 5) unal; 5 46 5 47 /* expected format of message to be handled by mowse internal execute command */ 5 48 5 49 dcl 01 execom_message based (message_ptr), 5 50 02 header, 5 51 03 system char (1) unal, 5 52 03 major char (1) unal, 5 53 03 minor char (1) unal, 5 54 03 source_system char (1) unal, 5 55 03 source_major char (1) unal, 5 56 02 data, 5 57 03 cmd_id fixed bin (17) unal, 5 58 03 command char (message_len - 7) unal; 5 59 5 60 /* expected format of message recieved when a request to alter a CAT table 5 61* is made by a remote system */ 5 62 5 63 dcl 01 alter_cat_message based (message_ptr), 5 64 02 header, 5 65 03 system char (1) unal, 5 66 03 major char (1) unal, 5 67 03 minor char (1) unal, 5 68 03 source_system char (1) unal, 5 69 03 source_major char (1) unal, 5 70 02 data, 5 71 03 major char unal, 5 72 03 major_name char (CAPABILITY_NAME_LENGTH) unal; 5 73 5 74 /* Template used to parse message recieved from some remote system. */ 5 75 5 76 dcl 01 event_message based (message_ptr), 5 77 02 header, 5 78 03 system char (1) unal, 5 79 03 major char (1) unal, 5 80 03 msg_type char (1) unal; 5 81 5 82 /* format of message of MORE type */ 5 83 5 84 dcl 01 request_more_message 5 85 based (message_ptr), 5 86 02 header, 5 87 03 system char (1) unal, 5 88 03 major char (1) unal, 5 89 03 more char (1) unal, 5 90 03 source_system char (1) unal, 5 91 03 source_major char (1) unal, 5 92 03 source_minor char (1) unal; 5 93 5 94 /* format of message of CONTINUE type */ 5 95 5 96 dcl 01 more_remaining_message 5 97 based (message_ptr), 5 98 02 header, 5 99 03 system char (1) unal, 5 100 03 major char (1) unal, 5 101 03 continue char (1) unal, 5 102 03 minor char (1) unal, 5 103 03 source_system char (1) unal, 5 104 03 source_major char (1) unal, 5 105 02 data, 5 106 03 data_buf char (message_len - 6) unal; 5 107 5 108 /* format of message of LAST type */ 5 109 5 110 dcl 01 last_message based (message_ptr), 5 111 02 header, 5 112 03 system char (1) unal, 5 113 03 major char (1) unal, 5 114 03 minor char (1) unal, 5 115 03 source_system char (1) unal, 5 116 03 source_major char (1) unal, 5 117 02 data, 5 118 03 data_buf char (message_len - 5) unal; 5 119 5 120 /* Execute_command_reply message format */ 5 121 5 122 dcl 01 execom_reply_msg based (message_ptr), 5 123 02 header, 5 124 03 system char (1) unal, 5 125 03 major char (1) unal, 5 126 03 minor char (1) unal, 5 127 03 source_system char (1) unal, 5 128 03 source_major char (1) unal, 5 129 02 data, 5 130 03 cmd_id fixed bin unal, 5 131 03 status char unal; 5 132 5 133 /* Used to manage partial messages destined for any application */ 5 134 5 135 dcl msg_node_ptr ptr; 5 136 dcl 01 message_node based (msg_node_ptr), 5 137 02 major fixed bin, 5 138 02 partial_msg_list_ptr 5 139 ptr, 5 140 02 next_node ptr, 5 141 02 prev_node ptr, 5 142 02 last_part_msg ptr; 5 143 5 144 dcl part_msg_ptr ptr; 5 145 dcl 01 partial_message based (part_msg_ptr), 5 146 02 msg_ptr ptr, 5 147 02 msg_len fixed bin, 5 148 02 next_msg ptr; 5 149 5 150 5 151 dcl part_msg_length fixed bin; 5 152 dcl part_msg char (part_msg_length) based; 5 153 5 154 /* Trace information structure */ 5 155 dcl 01 trace_message_info, 5 156 02 direction fixed bin, 5 157 02 from_system fixed bin, 5 158 02 from_major fixed bin, 5 159 02 dest_system fixed bin, 5 160 02 dest_major fixed bin, 5 161 02 dest_minor fixed bin, 5 162 02 msg_type fixed bin, 5 163 02 message char (PACKET_SIZE) var; 5 164 5 165 /* END INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 495 496 6 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 6 2 /* format: style3 */ 6 3 6 4 /* These constants are to be used for the flags argument of sub_err_ */ 6 5 /* They are just "string (condition_info_header.action_flags)" */ 6 6 6 7 declare ( 6 8 ACTION_CAN_RESTART init (""b), 6 9 ACTION_CANT_RESTART init ("1"b), 6 10 ACTION_DEFAULT_RESTART 6 11 init ("01"b), 6 12 ACTION_QUIET_RESTART 6 13 init ("001"b), 6 14 ACTION_SUPPORT_SIGNAL 6 15 init ("0001"b) 6 16 ) bit (36) aligned internal static options (constant); 6 17 6 18 /* End include file */ 497 498 7 1 /* BEGIN INCLUDE FILE sub_error_info.incl.pl1 */ 7 2 /* format: style2 */ 7 3 7 4 /* The include file condition_info_header must be used with this file */ 7 5 7 6 declare sub_error_info_ptr pointer; 7 7 declare 1 sub_error_info aligned based (sub_error_info_ptr), 7 8 2 header aligned like condition_info_header, 7 9 2 retval fixed bin (35), /* return value */ 7 10 2 name char (32), /* module name */ 7 11 2 info_ptr ptr; 7 12 7 13 declare sub_error_info_version_1 7 14 internal static options (constant) fixed bin init (1); 7 15 7 16 /* END INCLUDE FILE sub_error_info.incl.pl1 */ 499 500 8 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 8 2 /* format: style2 */ 8 3 8 4 declare condition_info_header_ptr 8 5 pointer; 8 6 declare 1 condition_info_header 8 7 aligned based (condition_info_header_ptr), 8 8 2 length fixed bin, /* length in words of this structure */ 8 9 2 version fixed bin, /* version number of this structure */ 8 10 2 action_flags aligned, /* tell handler how to proceed */ 8 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 8 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 8 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 8 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 8 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 8 16 3 pad bit (32) unaligned, 8 17 2 info_string char (256) varying, /* may contain printable message */ 8 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 8 19 8 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 501 502 9 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 9 2 9 3 /* Structure for find_condition_info_. 9 4* 9 5* Written 1-Mar-79 by M. N. Davidoff. 9 6**/ 9 7 9 8 /* automatic */ 9 9 9 10 declare condition_info_ptr pointer; 9 11 9 12 /* based */ 9 13 9 14 declare 1 condition_info aligned based (condition_info_ptr), 9 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 9 16 2 version fixed binary, /* Must be 1 */ 9 17 2 condition_name char (32) varying, /* name of condition */ 9 18 2 info_ptr pointer, /* pointer to the condition data structure */ 9 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 9 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 9 21 2 flags unaligned, 9 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 9 23 3 pad1 bit (35), 9 24 2 pad2 bit (36), 9 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 9 26 2 pad3 (4) bit (36); 9 27 9 28 /* internal static */ 9 29 9 30 declare condition_info_version_1 9 31 fixed binary internal static options (constant) initial (1); 9 32 9 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 503 504 10 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 10 2 /* Modified 11/29/82 by S. Krupp to add new entries and to change 10 3* version number to IOX2. */ 10 4 /* format: style2 */ 10 5 10 6 dcl 1 iocb aligned based, /* I/O control block. */ 10 7 2 version character (4) aligned, /* IOX2 */ 10 8 2 name char (32), /* I/O name of this block. */ 10 9 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 10 10 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 10 11 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 10 12 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 10 13 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 10 14 2 reserved bit (72), /* Reserved for future use. */ 10 15 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 10 16 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 10 17 /* open(p,mode,not_used,s) */ 10 18 2 close entry (ptr, fixed (35)),/* close(p,s) */ 10 19 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 10 20 /* get_line(p,bufptr,buflen,actlen,s) */ 10 21 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 10 22 /* get_chars(p,bufptr,buflen,actlen,s) */ 10 23 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 10 24 /* put_chars(p,bufptr,buflen,s) */ 10 25 2 modes entry (ptr, char (*), char (*), fixed (35)), 10 26 /* modes(p,newmode,oldmode,s) */ 10 27 2 position entry (ptr, fixed, fixed (21), fixed (35)), 10 28 /* position(p,u1,u2,s) */ 10 29 2 control entry (ptr, char (*), ptr, fixed (35)), 10 30 /* control(p,order,infptr,s) */ 10 31 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 10 32 /* read_record(p,bufptr,buflen,actlen,s) */ 10 33 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 10 34 /* write_record(p,bufptr,buflen,s) */ 10 35 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 10 36 /* rewrite_record(p,bufptr,buflen,s) */ 10 37 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 10 38 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 10 39 /* seek_key(p,key,len,s) */ 10 40 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 10 41 /* read_key(p,key,len,s) */ 10 42 2 read_length entry (ptr, fixed (21), fixed (35)), 10 43 /* read_length(p,len,s) */ 10 44 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 10 45 /* open_file(p,mode,desc,not_used,s) */ 10 46 2 close_file entry (ptr, char (*), fixed bin (35)), 10 47 /* close_file(p,desc,s) */ 10 48 2 detach entry (ptr, char (*), fixed bin (35)); 10 49 /* detach(p,desc,s) */ 10 50 10 51 declare iox_$iocb_version_sentinel 10 52 character (4) aligned external static; 10 53 10 54 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 505 506 11 1 /* BEGIN INCLUDE FILE: mowse_io_data.incl.pl1 * * * * * * * * * * * * */ 11 2 11 3 /****^ HISTORY COMMENTS: 11 4* 1) change(87-04-16,Flegel), approve(87-07-15,MCR7580), 11 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 11 6* Created. 11 7* 2) change(87-06-23,Flegel), approve(87-06-23,MCR7649), 11 8* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 11 9* Converted to support the use of event channels. 11 10* 3) change(88-10-06,Flegel), approve(88-11-16,MCR8023), audit(88-12-12,Lee), 11 11* install(89-01-24,MR12.3-1012): 11 12* phx21215 - Added mowse_io_data.channel_info.foreground to use to generate 11 13* events when something happens in the foreground. 11 14* END HISTORY COMMENTS */ 11 15 11 16 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 11 17 dcl mowse_io_data_ptr ptr; 11 18 dcl 01 mowse_io_data based (mowse_io_data_ptr), 11 19 02 open_descrip char (19) var, 11 20 02 iocb_ptr ptr aligned, /* mowse_tty iocb pointer */ 11 21 02 default_iocb_ptr ptr aligned, /* mowse_i/o iocb pointer */ 11 22 02 attach_descrip char (256) var, /* Attach description */ 11 23 02 old_modes char (256) unal, /* Modes on previous iocb */ 11 24 11 25 02 current_modes char (256) unal, /* Current mode settings */ 11 26 02 WSTERM_modes (11) char (1), /* Encoded modes for WSTERM */ 11 27 02 cv_trans_struc_ptr ptr, /* Conversion table pointer */ 11 28 11 29 02 info_ptr ptr, /* Application control info seg */ 11 30 02 mcb_ptr ptr, /* Internal MCB to MOWSE */ 11 31 02 sleepers ptr, /* Queue of sleeping applications */ 11 32 02 dozers fixed bin (35), /* Number of unhandled sleeper wakeups */ 11 33 11 34 02 ws, /* Vidoe system control */ 11 35 03 flags, 11 36 04 trace bit (1) unal, 11 37 04 debug bit (1) unal, 11 38 04 mark_set bit (1) unal, 11 39 04 video_mode bit (1) unal, /* State (on/off) of video */ 11 40 04 more_input bit (1) unal, /* Last read unfinished */ 11 41 04 pad bit (31) unal, 11 42 03 read_count fixed bin (17), /* count of unfinished read commands sent */ 11 43 03 ips_mask bit (36) aligned, 11 44 11 45 02 sus_data, /* sus_ information */ 11 46 03 sus_entry ptr, /* Saved sus_ signal handler */ 11 47 03 activated bit (1) unal, /* If sus_ has been signaled */ 11 48 03 pad bit (35) unal, 11 49 11 50 02 channel_info, /* Event channel info */ 11 51 03 process_id bit (36) aligned, /* This process */ 11 52 03 wake_info, 11 53 04 wake_map (0:127) bit (1) unal, /* Break chars */ 11 54 04 pad bit (16) unal, 11 55 03 user_input like wait_info, /* Input wait channel */ 11 56 03 packet_transmitter like wait_info, /* Write events */ 11 57 03 packet_receiver, /* hcs_ events */ 11 58 04 channel fixed bin (71), /* Channel id */ 11 59 03 packet_dispatcher, /* Dispatch channels */ 11 60 04 sync_channel fixed bin (71), /* Process when quiet */ 11 61 04 async_channel fixed bin (71), /* Process NOW! */ 11 62 03 foreground, /* MF - phx21215 - read/write_status, get_event_channel info */ 11 63 04 channel fixed bin (71), /* Event channel */ 11 64 11 65 02 debug_iocb_ptr ptr, /* Debug file IOCB */ 11 66 02 trace_iocb_ptr ptr, /* Trace file IOCB */ 11 67 11 68 02 timer_info (8), 11 69 03 wakeup fixed bin (71), /* Seconds from last in queue */ 11 70 03 timer_id fixed bin, /* Who owns this wakeup */ 11 71 11 72 02 switches, /* Control switches */ 11 73 03 quit_enable bit (1) unal, /* Quit processing state */ 11 74 03 reset_write bit (1) unal, /* resetwrite requested */ 11 75 03 disconnect_active bit (1) unal, /* Disconnection occuring */ 11 76 03 rs_pending (2) bit (1) unal, /* Reset occuring */ 11 77 03 ds_pending (2) bit (1) unal, /* Disconnect occuring */ 11 78 03 br_pending bit (1) unal, /* Break occurring */ 11 79 03 brk_pending bit (1) unal, /* Break occuring (quit) */ 11 80 03 info_stored bit (1) unal, /* Info segment stored */ 11 81 03 connect_active bit (1) unal, /* Connection in progress */ 11 82 03 start_issued bit (1) unal, /* Indicates start order pending */ 11 83 03 pad bit (24) unal, 11 84 11 85 02 task, 11 86 03 active (0:2) bit (1) unal, /* Tasks which are active */ 11 87 03 pad bit (33) unal, 11 88 11 89 02 user_input, /* User_i/o input data */ 11 90 03 in fixed bin (21), /* Next free slot in repository */ 11 91 03 out fixed bin (21), /* Head of data */ 11 92 03 queue (0:4095) char (1), /* Repository */ 11 93 11 94 02 l_dat (0:1), /* Local data message queue */ 11 95 03 in_ptr ptr, /* Incoming messages */ 11 96 03 out_ptr ptr, /* Outgoing messages */ 11 97 11 98 02 r, /* Receiver data */ 11 99 03 eop char (1), /* End of packet character */ 11 100 03 sop char (1), /* Start of packet character */ 11 101 03 esc (0:2) char (1), /* 3 escape characters */ 11 102 03 esc_count fixed bin, /* Number of escaped chars in received packet */ 11 103 03 asn (0:1) fixed bin (3), /* Acknowledge sequence number */ 11 104 03 dat (0:1, 0:3) char (124) var, /* Data queues */ 11 105 03 pkt (0:2) char (129) var, /* Packet queue */ 11 106 03 pktin fixed bin, /* Next packet character in */ 11 107 03 pktout fixed bin, /* Head of packet */ 11 108 03 psn (0:1) fixed bin, /* SN for each channel */ 11 109 03 esckey bit (9) unal, /* Decoding 2nd character escape */ 11 110 03 ignoring (0:1) bit (1) unal, /* Ignore data during synchronization */ 11 111 03 pad bit (25) unal, 11 112 11 113 02 s, /* Sender data */ 11 114 03 eop char (1), /* End of packet character */ 11 115 03 sop char (1), /* Start of packet character */ 11 116 03 esc (0:2) char (1), /* 3 escape characters */ 11 117 03 dat (0:1, 0:3) char (124) var, /* Data queue */ 11 118 03 psn (0:1) fixed bin (3), /* Packet sequence number */ 11 119 03 lasn (0:1) fixed bin (3), /* Last ack sent */ 11 120 03 nasn (0:1) fixed bin (3), /* Next ack to be sent */ 11 121 03 escreq (0:255) bit (1) unal, /* Characters to be escaped */ 11 122 03 pad bit (32) unal; 11 123 11 124 /* Wait channel control struncture */ 11 125 11 126 dcl 01 wait_info based, 11 127 02 channel fixed bin (71) aligned, /* Channel ID */ 11 128 02 count fixed bin, /* Waiting count */ 11 129 02 flags, 11 130 03 transmitted bit (1) unal, /* Wakeup already generated */ 11 131 03 pad bit (35) unal; 11 132 11 133 /* END INCLUDE FILE: mowse_io_data.incl.pl1 * * * * * * * * * * * * */ 507 508 509 end ws_tty_mgr_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/24/89 0849.4 ws_tty_mgr_.pl1 >spec>install>MR12.3-1012>ws_tty_mgr_.pl1 487 1 08/10/87 1335.8 ws_control_ids.incl.pl1 >ldd>include>ws_control_ids.incl.pl1 489 2 08/10/87 1335.8 ws_tty_data.incl.pl1 >ldd>include>ws_tty_data.incl.pl1 491 3 08/10/87 1336.7 mowse_io_control_info.incl.pl1 >ldd>include>mowse_io_control_info.incl.pl1 493 4 08/10/87 1336.7 mowse.incl.pl1 >ldd>include>mowse.incl.pl1 495 5 08/10/87 1335.9 mowse_messages.incl.pl1 >ldd>include>mowse_messages.incl.pl1 497 6 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 499 7 07/18/81 1100.0 sub_error_info.incl.pl1 >ldd>include>sub_error_info.incl.pl1 501 8 03/24/82 1347.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.incl.pl1 503 9 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 505 10 05/20/83 1846.4 iocb.incl.pl1 >ldd>include>iocb.incl.pl1 507 11 01/24/89 0847.4 mowse_io_data.incl.pl1 >spec>install>MR12.3-1012>mowse_io_data.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. ACTION_CANT_RESTART 000002 constant bit(36) initial dcl 6-7 set ref 157* 193* 244* 299* 432* BYTE_SIZE constant fixed bin(17,0) initial dcl 86 ref 279 CONTROL_MSG_OVERHEAD 000050 constant fixed bin(21,0) initial dcl 86 set ref 275* DIALED_UP constant fixed bin(17,0) initial dcl 86 ref 355 FALSE constant bit(1) initial packed unaligned dcl 86 ref 347 350 398 FG constant fixed bin(17,0) initial dcl 5-19 ref 167 FG_CONTROL_MESSAGE constant fixed bin(17,0) initial dcl 4-104 ref 139 IGNORE constant fixed bin(17,0) initial dcl 86 ref 352 I_flags parameter bit(9) packed unaligned dcl 32 ref 128 133 I_iocb_ptr parameter pointer dcl 30 set ref 128 131 201 204 252 255 319 332 362 372 375 384* 393* I_msg_data_ptr parameter pointer dcl 34 ref 128 134 201 205 252 257 I_msg_data_size parameter fixed bin(21,0) dcl 35 ref 128 135 201 206 252 256 I_msg_id parameter char(3) packed unaligned dcl 33 ref 128 132 MAX_SEND_MSG_SIZE constant fixed bin(21,0) initial dcl 86 ref 58 146 157 163 ME 000003 constant char(11) initial packed unaligned dcl 86 set ref 148* 153* 214* 219* 261* 276* 286* 293* 294* 296* 339* 384* 393* 444* 465* 477* O_attach_data_ptr parameter pointer dcl 368 set ref 362 370* 380* 384* 384 O_code parameter fixed bin(35,0) dcl 38 set ref 319 330* 346* 353* 362 390* 397* O_iocb_ptr parameter pointer dcl 31 set ref 362 370* 375* 377 380 384* 384 393* O_msg_data_size parameter fixed bin(21,0) dcl 37 set ref 252 282* 310* O_msg_id parameter char(3) packed unaligned dcl 36 set ref 252 313* O_tty_state parameter fixed bin(17,0) dcl 326 set ref 319 345* 352* 355* PACKET_SIZE internal static fixed bin(17,0) initial dcl 4-48 ref 5-155 SEND_MSG_OVERHEAD constant fixed bin(17,0) initial dcl 86 ref 169 TRUE 000002 constant bit(1) initial packed unaligned dcl 86 ref 391 Trace 0(01) 000040 external static bit(1) level 2 packed packed unaligned dcl 2-9 ref 148 153 214 219 261 276 286 292 339 382 393 444 465 477 WS_FLAG_NONE constant bit(9) initial packed unaligned dcl 1-34 ref 145 ZERO_IPS_MASK constant bit(36) initial packed unaligned dcl 86 ref 175 226 414 actual_iocb_ptr 12 based pointer level 2 dcl 10-6 ref 375 addr builtin function dcl 122 ref 168 170 186 237 265 305 335 425 447 468 475 475 any_other 000142 stack reference condition dcl 123 ref 177 190 228 241 416 429 attach_data_ptr 16 based pointer level 2 dcl 10-6 ref 137 208 259 380 based_chars based char(1) array packed unaligned dcl 82 set ref 305 buffer_ptr parameter pointer dcl 407 set ref 404 423* channel 2 000126 automatic fixed bin(17,0) level 2 dcl 74 set ref 167* ci 000100 automatic structure level 1 dcl 461 set ref 475 475 cleanup 000150 stack reference condition dcl 123 ref 176 190 227 241 415 429 code 000106 automatic fixed bin(35,0) dcl 46 set ref 157* 184* 193 193* 235* 244 244* 337* 339* 343 346 423* 432 432* condition_info based structure level 1 dcl 9-14 condition_info_header based structure level 1 dcl 8-6 condition_name 3 000100 automatic varying char(32) level 2 dcl 461 set ref 477* continue_to_signal_ 000044 constant entry external dcl 463 ref 480 control 0(35) based bit(1) level 2 packed packed unaligned dcl 54 ref 186 237 425 447 468 count 000116 automatic fixed bin(17,0) dcl 52 set ref 188* 239* 427* 449* 470* data_size 1(09) 000117 automatic fixed bin(8,0) level 2 packed packed unaligned dcl 58 set ref 144* 161* data_size_hi 0(27) 000120 automatic fixed bin(8,0) level 2 packed packed unaligned dcl 66 set ref 271* 276* 279 294* data_size_lo 1 000120 automatic fixed bin(8,0) level 2 packed packed unaligned dcl 66 set ref 270* 276* 279 294* error_table_$io_no_permission 000014 external static fixed bin(35,0) dcl 101 ref 353 error_table_$no_iocb 000010 external static fixed bin(35,0) dcl 101 ref 397 error_table_$no_operation 000012 external static fixed bin(35,0) dcl 101 set ref 299* event_code 000105 automatic fixed bin(35,0) dcl 45 set ref 173* 179 180* 224* 230 231* 412* 418 419* find_condition_info_ 000042 constant entry external dcl 462 ref 475 flags 000104 automatic bit(9) packed unaligned dcl 44 in procedure "ws_tty_mgr_" set ref 133* 162 flags 1 000117 automatic bit(9) level 2 in structure "ws_send_msg" packed packed unaligned dcl 58 in procedure "ws_tty_mgr_" set ref 145* 162* hcs_$reset_ips_mask 000020 constant entry external dcl 111 ref 186 237 425 447 468 hcs_$set_ips_mask 000016 constant entry external dcl 110 ref 178 229 417 id 0(09) 000117 automatic char(3) level 2 in structure "ws_send_msg" packed packed unaligned dcl 58 in procedure "ws_tty_mgr_" set ref 132* 148* 153* id 000120 automatic char(3) level 2 in structure "ws_control_msg" packed packed unaligned dcl 66 in procedure "ws_tty_mgr_" set ref 269* 276* 294* 313 internal_ws_state 000160 automatic structure level 1 dcl 328 set ref 335 internal_ws_state_ptr 000156 automatic pointer dcl 327 set ref 335* 337* io_message_len 6 000126 automatic fixed bin(21,0) level 2 dcl 74 set ref 169* io_message_ptr 4 000126 automatic pointer level 2 dcl 74 set ref 168* iocb based structure level 1 dcl 10-6 iocb_ptr 000102 automatic pointer dcl 43 set ref 131* 137 184* 193* 204* 208 235* 244* 255* 259 261* 332* 337* 423* 432* iox_$control 000026 constant entry external dcl 114 ref 184 337 iox_$get_chars 000030 constant entry external dcl 115 ref 423 iox_$put_chars 000032 constant entry external dcl 116 ref 235 ipc_$mask_ev_calls 000022 constant entry external dcl 112 ref 189 240 428 450 471 ipc_$unmask_ev_calls 000024 constant entry external dcl 113 ref 180 231 419 ips_mask 331 based bit(36) level 3 dcl 11-18 set ref 178* 229* 417* max builtin function dcl 122 ref 286 286 296 296 message_data 1(18) 000117 automatic char level 2 packed packed unaligned dcl 58 set ref 146* 163* message_len 000170 automatic fixed bin(17,0) initial dcl 5-33 set ref 5-33* min builtin function dcl 122 ref 285 285 mio_message 000126 automatic structure level 1 unaligned dcl 74 set ref 170 mowse_io_data based structure level 1 unaligned dcl 11-18 mowse_io_data_ptr 000174 automatic pointer dcl 11-17 set ref 137* 178 208* 229 259* 417 mowse_io_info_version_1 000000 constant char(8) initial packed unaligned dcl 3-27 ref 166 334 mowse_io_message based structure level 1 unaligned dcl 3-63 mowse_io_message_ptr 000164 automatic pointer dcl 3-62 set ref 170* 184* mowse_io_terminal_state based structure level 1 packed packed unaligned dcl 3-55 msg_data based char packed unaligned dcl 80 set ref 153* 163 219* 286 286 296 296 msg_data_ptr 000136 automatic pointer dcl 78 set ref 134* 141 153 163 205* 210 219 235* 257* 261* 285* 286 286 296 296 305 msg_data_size 000140 automatic fixed bin(21,0) dcl 79 set ref 135* 143* 153* 153 153 157 157* 161 163 169 206* 212* 219* 219 219 235* 256* 261* 285 285 286 286 290 293* 296 296 n_chars_actually_read 000100 automatic fixed bin(21,0) dcl 42 set ref 268* 275* 276* 285* 286* 286 286 296* 296 296 303 306* 307 n_chars_returned parameter fixed bin(21,0) dcl 409 set ref 404 423* n_chars_to_read parameter fixed bin(21,0) dcl 408 set ref 404 423* name 1 based char(32) level 2 dcl 10-6 set ref 384* null builtin function dcl 122 ref 141 210 370 372 377 475 475 offset_msg_data_ptr 000110 automatic pointer dcl 47 set ref 305* 306* open_descrip based varying char(19) level 2 dcl 11-18 set ref 384* retval 000112 automatic fixed bin(35,0) dcl 48 set ref 157* 193* 244* 299* 432* saved_mask 000113 automatic bit(36) dcl 49 set ref 175* 178* 186 186* 186* 226* 229* 237 237* 237* 414* 417* 425 425* 425* 444* 447 447* 447* 465* 468 468* 468* saved_mask_bit based structure level 1 dcl 54 state 2 000160 automatic bit(1) level 2 packed packed unaligned dcl 328 set ref 339* 350 358 sub_err_ 000034 constant entry external dcl 117 ref 157 193 244 299 432 sub_error_info_ptr 000172 automatic pointer dcl 7-6 set ref 157* 193* 244* 299* 432* substr builtin function dcl 122 ref 286 286 296 296 temp_seg_name 000166 automatic char(6) initial packed unaligned dcl 4-22 set ref 4-22* total_chars_read 000114 automatic fixed bin(21,0) dcl 50 set ref 272* 303* 304 305 306 307* 307 310 type 000117 automatic fixed bin(8,0) level 2 packed packed unaligned dcl 58 set ref 139* unmask_count 000115 automatic fixed bin(17,0) dcl 51 set ref 174* 181* 181 188 225* 232* 232 239 413* 420* 420 427 449 470 version 000126 automatic char(8) level 2 in structure "mio_message" packed packed unaligned dcl 74 in procedure "ws_tty_mgr_" set ref 166* version 2 000100 automatic fixed bin(17,0) level 2 in structure "ci" dcl 461 in procedure "any_other_handler" set ref 474* version 000160 automatic char(8) level 2 in structure "internal_ws_state" dcl 328 in procedure "ws_tty_mgr_" set ref 334* wait_info based structure level 1 unaligned dcl 11-126 ws 327 based structure level 2 unaligned dcl 11-18 ws_control_msg 000120 automatic structure level 1 dcl 66 set ref 265 ws_message_length 000124 automatic fixed bin(21,0) dcl 72 set ref 279* 282 285 285 290 293* 304 306 ws_message_ptr 000122 automatic pointer dcl 71 set ref 265* 275* ws_send_msg 000117 automatic structure level 1 dcl 58 set ref 168 ws_trace_ 000036 constant entry external dcl 118 ref 148 153 214 219 261 276 286 293 294 296 339 384 393 444 465 477 ws_tty_data$Flags 000040 external static structure level 1 dcl 2-9 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACCEPT internal static fixed bin(17,0) initial dcl 4-54 ACTION_CAN_RESTART internal static bit(36) initial dcl 6-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 6-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 6-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 6-7 ADD_TO_REMOTE_CAT internal static fixed bin(17,0) initial dcl 4-78 BG internal static fixed bin(17,0) initial dcl 5-17 CONTINUE internal static fixed bin(17,0) initial dcl 4-94 DELETE_FROM_REMOTE_CAT internal static fixed bin(17,0) initial dcl 4-79 EXECUTE_CAPABILITY_REPLY internal static fixed bin(17,0) initial dcl 4-73 EXECUTE_COMMAND internal static fixed bin(17,0) initial dcl 4-77 EXECUTE_COMMAND_REPLY internal static fixed bin(17,0) initial dcl 4-72 FAIL_CAPABILITY internal static fixed bin(17,0) initial dcl 4-75 FG_BREAK internal static fixed bin(17,0) initial dcl 4-105 FG_MORE_DATA internal static fixed bin(17,0) initial dcl 4-107 FG_TERMINAL_DATA internal static fixed bin(17,0) initial dcl 4-106 INTERNAL internal static fixed bin(17,0) initial dcl 4-76 LAST internal static fixed bin(17,0) initial dcl 4-71 LOCAL_SYSTEM internal static fixed bin(17,0) initial dcl 4-30 MAXIMUM_BG_SIZE internal static fixed bin(17,0) initial dcl 4-44 MAXIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 4-43 MAXIMUM_PACKET_SIZE internal static fixed bin(17,0) initial dcl 4-49 MAXIMUM_SYSTEM_MINOR internal static fixed bin(17,0) initial dcl 4-65 MAXIMUM_USER_MINOR internal static fixed bin(17,0) initial dcl 4-67 MINIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 4-42 MINIMUM_SYSTEM_MINOR internal static fixed bin(17,0) initial dcl 4-64 MINIMUM_USER_MINOR internal static fixed bin(17,0) initial dcl 4-66 MORE internal static fixed bin(17,0) initial dcl 4-95 MOWSE_VERSION_ internal static char(8) initial packed unaligned dcl 4-26 OVERFLOWED_BUFFER internal static fixed bin(17,0) initial dcl 4-87 PUT_TO_BACKGROUND_BUFFER internal static fixed bin(17,0) initial dcl 4-108 PUT_TO_QUERY_MESSAGE_BUFFER internal static fixed bin(17,0) initial dcl 4-110 QUERY_REPLY internal static fixed bin(17,0) initial dcl 4-89 RECEIVE internal static fixed bin(17,0) initial dcl 4-59 REJECT internal static fixed bin(17,0) initial dcl 4-55 REMOTE_SYSTEM internal static fixed bin(17,0) initial dcl 4-31 REQUEST_CONNECT internal static fixed bin(17,0) initial dcl 4-92 REQUEST_DISCONNECT internal static fixed bin(17,0) initial dcl 4-93 RESET_APPLICATION internal static fixed bin(17,0) initial dcl 4-83 RESET_REPLY internal static fixed bin(17,0) initial dcl 4-84 RESET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 4-97 RESET_SUSPEND internal static fixed bin(17,0) initial dcl 4-99 RESPONSE_CONNECT internal static fixed bin(17,0) initial dcl 4-90 RESPONSE_DISCONNECT internal static fixed bin(17,0) initial dcl 4-91 RESUME_APPLICATION internal static fixed bin(17,0) initial dcl 4-81 SEND internal static fixed bin(17,0) initial dcl 4-60 SEND_QUERY internal static fixed bin(17,0) initial dcl 4-53 SET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 4-96 SET_SUSPEND internal static fixed bin(17,0) initial dcl 4-98 STATUS internal static fixed bin(17,0) initial dcl 4-86 STATUS_FAILED internal static fixed bin(8,0) initial dcl 4-37 STATUS_REPLY internal static fixed bin(17,0) initial dcl 4-100 STATUS_SUCCESS internal static fixed bin(8,0) initial dcl 4-35 SUSPEND_APPLICATION internal static fixed bin(17,0) initial dcl 4-80 SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 4-88 TERMINATE_APPLICATION internal static fixed bin(17,0) initial dcl 4-82 WAKE_UP internal static fixed bin(17,0) initial dcl 4-85 WS_ABORT internal static char(3) initial packed unaligned dcl 1-13 WS_DISPLAY_TEXT internal static char(3) initial packed unaligned dcl 1-13 WS_ECHOED_INPUT_CHARS internal static char(3) initial packed unaligned dcl 1-13 WS_END_ECHOED_INPUT internal static char(3) initial packed unaligned dcl 1-13 WS_END_NON_ECHOED_INPUT internal static char(3) initial packed unaligned dcl 1-13 WS_ENTER_SYNC_MODE internal static char(3) initial packed unaligned dcl 1-13 WS_EXIT_SYNC_MODE internal static char(3) initial packed unaligned dcl 1-13 WS_FLAG_NO_BLOCK internal static bit(9) initial packed unaligned dcl 1-34 WS_ORDER internal static char(3) initial packed unaligned dcl 1-13 WS_PRINTER_OFF internal static char(3) initial packed unaligned dcl 1-13 WS_PRINTER_ON internal static char(3) initial packed unaligned dcl 1-13 WS_READ_WITH_ECHO internal static char(3) initial packed unaligned dcl 1-13 WS_READ_WITH_NO_ECHO internal static char(3) initial packed unaligned dcl 1-13 WS_SET_BREAK_TABLE internal static char(3) initial packed unaligned dcl 1-13 WS_SET_TTY_MODES internal static char(3) initial packed unaligned dcl 1-13 WS_SYNC_MODE_ENTERED internal static char(3) initial packed unaligned dcl 1-13 WS_SYNC_MODE_EXITED internal static char(3) initial packed unaligned dcl 1-13 WS_UNECHOED_INPUT_CHARS internal static char(3) initial packed unaligned dcl 1-13 alter_cat_message based structure level 1 packed packed unaligned dcl 5-63 condition_info_header_ptr automatic pointer dcl 8-4 condition_info_ptr automatic pointer dcl 9-10 condition_info_version_1 internal static fixed bin(17,0) initial dcl 9-30 error_table_$unable_to_do_io external static fixed bin(35,0) dcl 101 event_message based structure level 1 packed packed unaligned dcl 5-76 execom_message based structure level 1 packed packed unaligned dcl 5-49 execom_reply_msg based structure level 1 packed packed unaligned dcl 5-122 input_message based structure level 1 packed packed unaligned dcl 5-38 iox_$iocb_version_sentinel external static char(4) dcl 10-51 last_message based structure level 1 packed packed unaligned dcl 5-110 message_node based structure level 1 unaligned dcl 5-136 message_ptr automatic pointer dcl 5-34 more_remaining_message based structure level 1 packed packed unaligned dcl 5-96 mowse_io_debug_info based structure level 1 unaligned dcl 3-48 mowse_io_debug_info_ptr automatic pointer dcl 3-46 mowse_io_flush_subchannel_info based structure level 1 unaligned dcl 3-80 mowse_io_flush_subchannel_info_ptr automatic pointer dcl 3-78 mowse_io_info based structure level 1 unaligned dcl 3-40 mowse_io_info_ptr automatic pointer dcl 3-39 mowse_io_set_video_mode_info based structure level 1 packed packed unaligned dcl 3-88 mowse_io_set_video_mode_info_ptr automatic pointer dcl 3-86 mowse_io_sleep_info based structure level 1 unaligned dcl 3-72 mowse_io_sleep_info_ptr automatic pointer dcl 3-70 mowse_io_store_info based structure level 1 unaligned dcl 3-34 mowse_io_store_info_ptr automatic pointer dcl 3-32 mowse_io_terminal_state_ptr automatic pointer dcl 3-53 msg_node_ptr automatic pointer dcl 5-135 part_msg based char packed unaligned dcl 5-152 part_msg_length automatic fixed bin(17,0) dcl 5-151 part_msg_ptr automatic pointer dcl 5-144 partial_message based structure level 1 unaligned dcl 5-145 request_more_message based structure level 1 packed packed unaligned dcl 5-84 sub_error_info based structure level 1 dcl 7-7 sub_error_info_version_1 internal static fixed bin(17,0) initial dcl 7-13 trace_message_info automatic structure level 1 unaligned dcl 5-155 NAMES DECLARED BY EXPLICIT CONTEXT. any_other_handler 003361 constant entry internal dcl 458 ref 177 228 416 cleanup_handler 003263 constant entry internal dcl 441 ref 176 227 415 get_message 001701 constant entry external dcl 252 get_ws_chars 003017 constant entry internal dcl 404 ref 275 285 306 have_wsterm 002440 constant entry external dcl 319 no_iocb 002746 constant label dcl 393 ref 372 377 ok_iocb 002625 constant entry external dcl 362 send_message 000564 constant entry external dcl 128 send_text 001320 constant entry external dcl 201 ws_tty_mgr_ 000540 constant entry external dcl 16 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4076 4144 3541 4106 Length 4636 3541 46 456 334 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ws_tty_mgr_ 250 external procedure is an external procedure. on unit on line 176 64 on unit on unit on line 177 64 on unit on unit on line 227 64 on unit on unit on line 228 64 on unit get_ws_chars 140 internal procedure enables or reverts conditions. on unit on line 415 64 on unit on unit on line 416 64 on unit cleanup_handler 90 internal procedure is called by several nonquick procedures. any_other_handler 134 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME any_other_handler 000100 ci any_other_handler ws_tty_mgr_ 000100 n_chars_actually_read ws_tty_mgr_ 000102 iocb_ptr ws_tty_mgr_ 000104 flags ws_tty_mgr_ 000105 event_code ws_tty_mgr_ 000106 code ws_tty_mgr_ 000110 offset_msg_data_ptr ws_tty_mgr_ 000112 retval ws_tty_mgr_ 000113 saved_mask ws_tty_mgr_ 000114 total_chars_read ws_tty_mgr_ 000115 unmask_count ws_tty_mgr_ 000116 count ws_tty_mgr_ 000117 ws_send_msg ws_tty_mgr_ 000120 ws_control_msg ws_tty_mgr_ 000122 ws_message_ptr ws_tty_mgr_ 000124 ws_message_length ws_tty_mgr_ 000126 mio_message ws_tty_mgr_ 000136 msg_data_ptr ws_tty_mgr_ 000140 msg_data_size ws_tty_mgr_ 000156 internal_ws_state_ptr ws_tty_mgr_ 000160 internal_ws_state ws_tty_mgr_ 000164 mowse_io_message_ptr ws_tty_mgr_ 000166 temp_seg_name ws_tty_mgr_ 000170 message_len ws_tty_mgr_ 000172 sub_error_info_ptr ws_tty_mgr_ 000174 mowse_io_data_ptr ws_tty_mgr_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac alloc_auto_adj signal_op enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. continue_to_signal_ find_condition_info_ hcs_$reset_ips_mask hcs_$set_ips_mask iox_$control iox_$get_chars iox_$put_chars ipc_$mask_ev_calls ipc_$unmask_ev_calls sub_err_ ws_trace_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$io_no_permission error_table_$no_iocb error_table_$no_operation ws_tty_data$Flags LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 58 000524 4 22 000531 5 33 000533 16 000537 18 000550 128 000557 131 000601 132 000605 133 000612 134 000617 135 000622 137 000624 139 000627 141 000632 143 000636 144 000637 145 000642 146 000644 148 000650 151 000701 153 000702 157 000746 161 001022 162 001026 163 001030 166 001036 167 001040 168 001042 169 001044 170 001047 173 001051 174 001052 175 001053 176 001054 177 001076 178 001120 179 001132 180 001134 181 001143 182 001144 184 001145 186 001175 188 001210 189 001217 189 001227 190 001231 193 001233 197 001305 201 001314 204 001335 205 001341 206 001344 208 001346 210 001350 212 001354 214 001355 217 001403 219 001404 224 001442 225 001443 226 001444 227 001445 228 001467 229 001511 230 001523 231 001526 232 001535 233 001536 235 001537 237 001554 239 001567 240 001577 240 001607 241 001611 244 001613 248 001665 252 001674 255 001716 256 001722 257 001724 259 001727 261 001731 265 001767 268 001771 269 001772 270 001774 271 001776 272 002000 275 002001 276 002013 279 002057 282 002070 285 002074 286 002112 290 002161 292 002165 293 002171 294 002217 296 002254 298 002320 299 002321 303 002366 304 002370 305 002373 306 002376 307 002413 308 002415 310 002416 313 002420 315 002424 319 002433 330 002454 332 002455 334 002461 335 002463 337 002465 339 002514 343 002547 345 002551 346 002553 347 002554 350 002567 352 002573 353 002576 354 002601 355 002602 358 002605 362 002620 370 002641 372 002645 375 002651 377 002655 380 002661 382 002663 384 002667 390 002732 391 002733 393 002746 397 003000 398 003003 404 003016 412 003024 413 003026 414 003027 415 003030 416 003052 417 003074 418 003107 419 003113 420 003122 421 003124 423 003125 425 003145 427 003161 428 003172 428 003202 429 003205 432 003207 436 003261 441 003262 444 003270 447 003317 449 003333 450 003344 451 003354 453 003357 458 003360 465 003366 468 003415 470 003431 471 003442 472 003452 474 003455 475 003457 477 003477 480 003526 482 003536 ----------------------------------------------------------- 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