DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦36dd9e811⟧ TextFile

    Length: 5873 (0x16f1)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦c64a8f83d⟧ 
            └─⟦this⟧ 

TextFile

with io_exceptions;		use io_exceptions;
with file_support;		use file_support;
with os_files;
with system;
with cross_msgs;
with target_types;		use target_types;
package os_file_msgs is

-----------------------
-- Cross_io commands --
-----------------------

	get_integer_cmd:		constant cross_msgs.commands := 16#41#;
	get_full_name_cmd:		constant cross_msgs.commands := 16#42#;
	get_open_cmd:			constant cross_msgs.commands := 16#43#;
	get_block_cmd:			constant cross_msgs.commands := 16#44#;
	get_boolean_cmd:		constant cross_msgs.commands := 16#45#;
	get_ok_to_write_cmd:	constant cross_msgs.commands := 16#46#;

	delete_cmd:				constant cross_msgs.commands := 16#61#;
	close_cmd:				constant cross_msgs.commands := 16#62#;
	open_cmd:				constant cross_msgs.commands := 16#63#;
	write_cmd:				constant cross_msgs.commands := 16#64#;
	read_cmd:				constant cross_msgs.commands := 16#65#;
	position_file_cmd:		constant cross_msgs.commands := 16#66#;
	skip_in_file_cmd:		constant cross_msgs.commands := 16#67#;
	is_interactive_cmd:		constant cross_msgs.commands := 16#68#;
	file_size_cmd:			constant cross_msgs.commands := 16#69#;
	ok_to_write_cmd:		constant cross_msgs.commands := 16#6a#;
	at_end_of_file_cmd:		constant cross_msgs.commands := 16#6b#;
	truncate_cmd:			constant cross_msgs.commands := 16#6c#;

-------------------------------
-- Cross_io message formats. --
-------------------------------

	type at_end_of_file_params is record
		fd:		target_fd;
		index:	target_int;
	end record;

	type file_size_params is record
		fd:			target_fd;
		elem_size:	target_int;
	end record;

	type position_file_params is record
		fd:		target_fd;
		to:		target_int;
		size:	target_int;
	end record;

	type skip_in_file_params is record
		fd:	target_fd;
		to:	target_int;
	end record;

	type xfer_params is record
		fd:		target_fd;
		cnt:	target_int;
	end record;

	type open_params is record
		record_size:	target_int;
		name_len:		target_int;
		style:			target_style;
		mode:			target_mode;
		create:			target_bool;
	end record;

	type open_returns is record
		fd:			target_fd;
		name_len:	target_int;
		file_id:	target_file_id;
	end record;

	type ok_to_write_params is record
		fd:				target_fd;
		buf_empty:		target_bool;
		out_char_eq_lf:	target_bool;
	end record;

	type get_full_name_params is record
		style: target_style;
	end record;

	type ok_to_write_returns is record
		ok:				target_bool;
		decrement_ptrs:	target_bool;
	end record;

	type init_os_files_returns is record
		stdin_fd:			target_fd;
		stdout_fd:			target_fd;
		stderr_fd:			target_fd;
		file_id_type_size:	target_int;
		always_flush_files: target_bool;
	end record;

----------------------------------------------------------------
-- Rep clauses for the messages.  These depend on the target, --
-- since the sizes of the fields are target-specific.  The
-- representations must be the same on both host and target.
----------------------------------------------------------------


	for at_end_of_file_params use record
		fd		at 0 range 0..31;
		index 	at 4 range 0..31;
	end record;

	for file_size_params use record
		fd			at 0 range 0..31;
		elem_size	at 4 range 0..31;
	end record;

	for position_file_params use record
		fd			at 0 range 0..31;
		to			at 4 range 0..31;
		size		at 8 range 0..31;
	end record;

	for skip_in_file_params use record
		fd	at 0 range 0..31;
		to	at 4 range 0..31;
	end record;

	for xfer_params use record
		fd		at 0 range 0..31;
		cnt		at 4 range 0..31;
	end record;

	for open_params use record
		record_size		at 0	range 0..31;
		name_len		at 4	range 0..31;
		style			at 8	range 0..7;
		mode			at 9	range 0..7;
		create			at 10	range 0..7;
	end record;

	for open_returns use record
		fd			at 0 range 0..31;
		name_len	at 4 range 0..31;
		file_id		at 8 range 0..63;
	end record;

	for ok_to_write_params use record
		fd				at 0 range 0..31;
		buf_empty		at 4 range 0..7;
		out_char_eq_lf	at 5 range 0..7;
	end record;

	for get_full_name_params use record
		style at 0 range 0..7;
	end record;

	for ok_to_write_returns use record
		ok				at 0 range 0..7;
		decrement_ptrs	at 1 range 0..7;
	end record;

	for init_os_files_returns use record
		stdin_fd			at 0	range 0..31;
		stdout_fd			at 4	range 0..31;
		stderr_fd			at 8	range 0..31;
		file_id_type_size	at 12	range 0..31;
		always_flush_files	at 16	range 0..7;
	end record;

	----------------------------------------------------------------
	-- Record-size constants, given in storage units              --
	----------------------------------------------------------------

	AT_END_OF_FILE_PARAMS_SIZE: constant := 8;
	FILE_SIZE_PARAMS_SIZE: constant := 8;
	POSITION_FILE_PARAMS_SIZE: constant := 12;
	SKIP_IN_FILE_PARAMS_SIZE: constant := 8;
	XFER_PARAMS_SIZE: constant := 8;
	OPEN_PARAMS_SIZE: constant := 11;
	OPEN_RETURNS_SIZE: constant := 16;
	OK_TO_WRITE_PARAMS_SIZE: constant := 6;
	GET_FULL_NAME_PARAMS_SIZE: constant := 1;
	OK_TO_WRITE_RETURNS_SIZE: constant := 2;
	INIT_OS_FILES_RETURNS_SIZE: constant := 17;


	for at_end_of_file_params'size use
		AT_END_OF_FILE_PARAMS_SIZE*system.STORAGE_UNIT;

	for file_size_params'size use
		FILE_SIZE_PARAMS_SIZE*system.STORAGE_UNIT;

	for position_file_params'size use
		POSITION_FILE_PARAMS_SIZE*system.STORAGE_UNIT;

	for skip_in_file_params'size use
		SKIP_IN_FILE_PARAMS_SIZE*system.STORAGE_UNIT;

	for xfer_params'size use
		XFER_PARAMS_SIZE*system.STORAGE_UNIT;

	for open_params'size use
		OPEN_PARAMS_SIZE*system.STORAGE_UNIT;

	for open_returns'size use
		OPEN_RETURNS_SIZE*system.STORAGE_UNIT;

	for ok_to_write_params'size use
		OK_TO_WRITE_PARAMS_SIZE*system.STORAGE_UNIT;

	for get_full_name_params'size use
		GET_FULL_NAME_PARAMS_SIZE*system.STORAGE_UNIT;

	for ok_to_write_returns'size use
		OK_TO_WRITE_RETURNS_SIZE*system.STORAGE_UNIT;

	for init_os_files_returns'size use
		INIT_OS_FILES_RETURNS_SIZE*system.STORAGE_UNIT;

end os_file_msgs