|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 6862 (0x1ace)
Types: TextFile
Names: »V«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
└─⟦77aa8350c⟧ »DATA«
└─⟦f794ecd1d⟧
└─⟦4c85d69e2⟧
└─⟦this⟧
-- The use of this system is subject to the software license terms and
-- conditions agreed upon between Rational and the Customer.
--
-- Copyright 1988 by Rational.
--
-- RESTRICTED RIGHTS LEGEND
--
-- Use, duplication, or disclosure by the Government is subject to
-- restrictions as set forth in subdivision (b)(3)(ii) of the Rights in
-- Technical Data and Computer Software clause at 52.227-7013.
--
--
-- Rational
-- 3320 Scott Boulevard
-- Santa Clara, California 95054-3197
--
-- PROPRIETARY AND CONFIDENTIAL INFORMATION OF RATIONAL;
-- USE OR COPYING WITHOUT EXPRESS WRITTEN AUTHORIZATION
-- IS STRICTLY PROHIBITED. THIS MATERIAL IS PROTECTED AS
-- AN UNPUBLISHED WORK UNDER THE U.S. COPYRIGHT ACT OF
-- 1976. CREATED 1988. ALL RIGHTS RESERVED.
--
--
with System;
with System_Types;
with Device_Independent_Io;
package Os_Dependent_Io is
type Os_Control_Block is private;
subtype File_Type is Device_Independent_Io.File_Type;
subtype File_Mode is Device_Independent_Io.File_Mode;
subtype File_Kind is Device_Independent_Io.File_Kind;
subtype Client_Kind is Device_Independent_Io.Client_Kind;
subtype Byte_String is System_Types.Byte_String;
procedure Open (File : in out File_Type;
Ctrl : in out Os_Control_Block;
Mode : in File_Mode;
Kind : in File_Kind;
Name : in String;
Form : in String;
Recommended_Buffer_Size : in Natural;
Actual_Buffer_Size : out Natural;
Client : in Client_Kind := Device_Independent_Io.Unknown);
procedure Create (File : in out File_Type;
Ctrl : in out Os_Control_Block;
Mode : in File_Mode;
Kind : in File_Kind;
Name : in String;
Form : in String;
Recommended_Buffer_Size : in Natural;
Actual_Buffer_Size : out Natural);
-- This routine will try to return data in units of one record or
-- more (if there is buffer space); but is never forced to return
-- more than one record even if the buffer space is available.
-- If Line_Terminator_Detected is true then Line_Last_Data_Index
-- will be the index in Item of the last data byte of the line read
-- and Line_Terminator_Present will be true if the next character
-- after that is a line terminator and false if the line terminator
-- is not represented in Item. This is the preferred way of reading
-- a text file, as it may be possible on some operating systems to
-- detect line terminators without scanning the line character by
-- character. The exact definition of the line terminator is
-- operating system dependent. Can raise Io_Exceptions.End_Error.
-- Note that the Item is in-out (instead of out). This is necessary
-- because the procedure may find it necessary to look in the buffer.
procedure Read (File : in File_Type;
Ctrl : in Os_Control_Block;
Item : in out Byte_String;
Count : out Natural;
Line_Terminator_Detected : out Boolean;
Line_Last_Data_Index : out Natural;
Line_Terminator_Present : out Boolean);
-- Protocols should write in units of one record; for a text file
-- a record is one line. If Line_Terminator_Present is true
-- then the last byte of the Item is a line terminator. If
-- Line_Terminator_Present is false then the line terminator is
-- not represented in the data but is implicit after the last
-- byte of the data.
procedure Write (File : in File_Type;
Ctrl : in Os_Control_Block;
Item : in Byte_String;
Line_Terminator_Present : in Boolean);
function End_Of_File (File : in File_Type;
Ctrl : in Os_Control_Block) return Boolean;
procedure Close (File : in out File_Type;
Ctrl : in out Os_Control_Block);
procedure Reset (File : in out File_Type;
Ctrl : in out Os_Control_Block;
Mode : in File_Mode);
procedure Save (File : in File_Type;
Ctrl : in Os_Control_Block;
Immediate_Effect : in Boolean := True);
procedure Delete (File : in out File_Type;
Ctrl : in out Os_Control_Block);
function Name (File : in File_Type;
Ctrl : in Os_Control_Block) return String;
function Form (File : in File_Type;
Ctrl : in Os_Control_Block) return String;
function Is_Interactive (File : in File_Type;
Ctrl : in Os_Control_Block) return Boolean;
function Is_Empty (File : in File_Type;
Ctrl : in Os_Control_Block) return Boolean;
function Identical_File (File1 : in File_Type;
Ctrl1 : in Os_Control_Block;
File2 : in File_Type;
Ctrl2 : in Os_Control_Block) return Boolean;
-- To allow clients of Device_Independent_Io to obtain access to the
-- OS dependent control block for use in non-device independent ops.
function Address_For_Control
(Ctrl : Os_Control_Block) return System.Address;
function Control_From_Address
(Addr : System.Address) return Os_Control_Block;
procedure Read_Bytes (Ctrl : in Os_Control_Block;
Bytes_Addr : System.Address;
Byte_Count : Natural;
Bytes_Read : out Natural);
procedure Write_Bytes (Ctrl : Os_Control_Block;
Bytes_Addr : System.Address;
Byte_Count : Natural);
type Byte_Count is new Natural;
subtype Byte_Index is Byte_Count;
function Size (Ctrl : Os_Control_Block) return Byte_Count;
function Index (Ctrl : Os_Control_Block) return Byte_Index;
procedure Set_Index (Ctrl : Os_Control_Block; To : Byte_Index);
private
type Control_Block (For_Kind : File_Kind := Device_Independent_Io.Normal);
type Os_Control_Block is access Control_Block;
end Os_Dependent_Io;