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

⟦dbf6f2985⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Posix_Io, seg_0213eb

Derivation

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

E3 Source Code



with Posix, Posix_Permissions, Posix_Process_Identification;

package Posix_Io is

    -- common type declarations

    type File_Descriptor is range 0 .. Posix.Open_Files;

    Standard_Input : constant File_Descriptor := 0;
    Standard_Output : constant File_Descriptor := 1;
    Standard_Error : constant File_Descriptor := 2;

    type Io_Offset is range -2 ** 31 .. 2 ** 31 - 1; -- implementation defined

    type File_Mode is (Read_Only, Write_Only, Read_Write, Blocking, Append,
                       Close_On_Exec, Truncate, Exclusive, Control_Tty);

    type File_Mode_Set is array (File_Mode range <>) of Boolean;

    subtype File_Control_Mode is File_Mode range Read_Only .. Close_On_Exec;

    subtype Settable_File_Control_Mode is
       File_Control_Mode range Blocking .. Close_On_Exec;

    subtype File_Control_Mode_Set is File_Mode_Set (File_Control_Mode);

    subtype Settable_File_Control_Mode_Set is
       File_Mode_Set (Settable_File_Control_Mode);

    subtype Io_Count is Io_Offset range 0 .. Io_Offset'Last;

    subtype Positive_Io_Count is Io_Count range 1 .. Io_Offset'Last;

    subtype Open_Mode is File_Mode range Read_Only .. Read_Write;

    type Position is (From_Beginning, From_Current_Position, From_End_Of_File);

    -- File open, open_or_create, create, Close, duplicate and pipe

    function Open (Name : Posix.Posix_String;
                   Mode : Open_Mode;
                   Blocking : Boolean := True;
                   Append : Boolean := False;
                   Truncate : Boolean := False;
                   Control_Tty : Boolean := True) return File_Descriptor;

    function Open_Or_Create
                (Name : Posix.Posix_String;
                 Mode : Open_Mode;
                 Permissions : Posix_Permissions.Permission_Set;
                 Blocking : Boolean := True;
                 Append : Boolean := False;
                 Truncate : Boolean := False;
                 Exclusive : Boolean := False;
                 Control_Tty : Boolean := True) return File_Descriptor;

    procedure Close (File : in File_Descriptor);

    function Duplicate (File : File_Descriptor) return File_Descriptor;

    function Duplicate (File1 : File_Descriptor; File2 : File_Descriptor)
                       return File_Descriptor;

    procedure Pipe (Read_End : out File_Descriptor;
                    Write_End : out File_Descriptor);

    -- Read and Write
    -------------------------------
    -- in P1003.5 November 1989 :
    -- PIPE_BUFFER_SIZE : constant := POSIX.Pipe_Limit_Range'FIRST;
    -- but we must write:
    -------------------------------
    Pipe_Buffer_Size : constant Natural := Posix.Pipe_Limit_Range'Last;

    type Io_Unit is range -128 .. 127; -- Implementation defined
    for Io_Unit'Size use 8; -- Implementation defined
    type Io_Buffer is array (Positive_Io_Count range <>) of Io_Unit;

    procedure Read (File : in File_Descriptor;
                    Buffer : out Io_Buffer;
                    Last : out Io_Count);

    procedure Write (File : in File_Descriptor;
                     Buffer : in Io_Buffer;
                     Last : out Io_Count);

    generic
        type T is private;
    procedure Generic_Read ( -- compiler bug??
                            File : in File_Descriptor;
                            Item : out T);

    generic
        type T is private;
    procedure Generic_Write ( -- compiler bug??
                             File : in File_Descriptor;
                             Item : in T);

    -- Seek, File_size, File_Position

    procedure Seek (File : in File_Descriptor;
                    Offset : in Io_Offset;
                    Whence : in Position := From_Beginning);

    function File_Size (File : File_Descriptor) return Io_Count;

    function File_Position (File : File_Descriptor) return Io_Count;

    -- Terminal device operations

    function Is_A_Terminal_Device (File : File_Descriptor) return Boolean;

    function Get_Terminal_Device_Name
                (File : File_Descriptor) return Posix.Posix_String;

    -- File Control operations

    function Get_File_Control (File : File_Descriptor)
                              return File_Control_Mode_Set;

    procedure Set_File_Control (File : in File_Descriptor;
                                Modes : in Settable_File_Control_Mode_Set);

end Posix_Io;

E3 Meta Data

    nblk1=5
    nid=0
    hdr6=a
        [0x00] rec0=1d rec1=00 rec2=01 rec3=044
        [0x01] rec0=19 rec1=00 rec2=02 rec3=050
        [0x02] rec0=1a rec1=00 rec2=03 rec3=006
        [0x03] rec0=1c rec1=00 rec2=04 rec3=082
        [0x04] rec0=12 rec1=00 rec2=05 rec3=000
    tail 0x2151cbcf8838d73a8844b 0x42a00088462060003