|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6144 (0x1800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Posix_Io, seg_0213eb
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
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;
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