|
|
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: 8192 (0x2000)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Posix, seg_0213e7
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with System;
with Implem_Def;
package Posix is
-- Symbolic constants
Job_Control : constant Boolean := Implem_Def.Id_Job_Control;
Saved_Ids : constant Boolean := Implem_Def.Id_Saved_Ids;
Change_Owner_Restricted : constant Boolean :=
Implem_Def.Id_Change_Owner_Restricted;
No_Truncation : constant Boolean := Implem_Def.Id_No_Truncation;
Portable_Argument_Bytes : constant := 4096;
Argument_Bytes : constant := Implem_Def.Id_Argument_Bytes;
Portable_Child_Processes : constant := 6;
Child_Processes : constant := Implem_Def.Id_Child_Processes;
Portable_Groups : constant := 0;
Groups : constant := Implem_Def.Id_Groups;
Portable_Open_Files : constant := 16;
Open_Files : constant := Implem_Def.Id_Open_Files;
Portable_Link_Limit : constant := 8;
subtype Link_Limit_Range is
Natural range 0 .. Implem_Def.Id_Link_Limit_Range_Last;
Portable_Input_Line_Limit : constant := 255;
subtype Input_Line_Limit_Range is
Natural range 0 .. Implem_Def.Id_Input_Line_Limit_Range_Last;
Portable_Input_Queue_Limit : constant := 255;
subtype Input_Queue_Limit_Range is
Natural range 0 .. Implem_Def.Id_Input_Queue_Limit_Range_Last;
Portable_Filename_Limit : constant := 14;
subtype Filename_Limit_Range is
Positive range 1 .. Implem_Def.Id_Filename_Limit_Range_Last;
Portable_Pathname_Limit : constant := 255;
subtype Pathname_Limit_Range is
Positive range 1 .. Implem_Def.Id_Pathname_Limit_Range_Last;
Portable_Pipe_Limit : constant := 512;
subtype Pipe_Limit_Range is
Natural -- why NATURAL ??
range 0 .. Implem_Def.Id_Pipe_Limit_Range_Last;
-- Characters and Strings
type Posix_Character is new Character;
-- (' ','0','1','2','3','4','5','6','7','8','9',
-- 'A','B','C','D','E','F','G','H','I','J','K','L','M',
-- 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
-- 'a','b','c','d','e','f','g','h','i','j','k','l','m',
-- 'n','o','p','q','r','s','t','u','v','w','x','y','z',
-- '.','_','-','/'
-- @P<other characters are implementation defined>
-- );
type Posix_String is array (Positive range <>) of Posix_Character;
function To_String (Str : Posix_String) return String;
function To_Posix_String (Str : String) return Posix_String;
function To_Posix_String (Addr : System.Address) return Posix_String;
function "&" (L : String; R : Posix_String) return Posix_String;
function "&" (L : Character; R : Posix_String) return Posix_String;
function "&" (L : Posix_String; R : String) return Posix_String;
function "&" (L : Posix_String; R : Character) return Posix_String;
-- these should come for free
-- function "&" (l : POSIX_String; r : POSIX_Character)
-- return POSIX_STRING;
-- function "&" (l :POSIX_Character; r : POSIX_Character)
-- return POSIX_STRING;
function Is_Filename (Str : String) return Boolean;
function Is_Filename (Str : Posix_String) return Boolean;
function Is_Pathname (Str : String) return Boolean;
function Is_Pathname (Str : Posix_String) return Boolean;
function Is_Portable_Filename (Str : String) return Boolean;
function Is_Portable_Filename (Str : Posix_String) return Boolean;
function Is_Portable_Pathname (Str : String) return Boolean;
function Is_Portable_Pathname (Str : Posix_String) return Boolean;
-- String Lists
type Posix_String_List is limited private;
Empty_String_List : constant Posix_String_List;
procedure Make_Empty (List : in out Posix_String_List);
procedure Append (List : in out Posix_String_List;
String : in Posix_String);
generic
with procedure Action (S : in Posix_String);
procedure For_Every_Member (List : in Posix_String_List);
function Length (List : Posix_String_List) return Natural;
function Value (List : Posix_String_List; Index : Natural)
return Posix_String;
-- Exceptions \x09\x09\x09C errno equivalent
Arg_List_Too_Long, -- E2BIG
Bad_Address, -- EFAULT
Bad_File_Descriptor, -- EBADF
Broken_Pipe, -- EPIPE
Directory_Not_Empty, -- ENOTEMPTY
Domain_Error, -- EDOM
Exec_Format_Error, -- ENOEXEC
File_Exists, -- EEXIST
File_Too_Big, -- EFBIG
Filename_Too_Long, -- ENAMETOOLONG
Function_Not_Implemented, -- ENOSYS
Improper_Link, -- EXDEV
Inappropriate_Io_Control_Operation, -- ENOTTY
Input_Output_Error, -- EIO
Interrupted_Operation, -- EINTR
Invalid_Argument, -- EINVAL
Invalid_Seek, -- ESPIPE
Is_A_Directory, -- EISDIR
No_Child_Process, -- ECHILD
No_Locks_Available, -- ENOLCK
No_Space_Left_On_Device, -- ENOSPC
No_Such_Device, -- ENODEV
No_Such_Device_Or_Address, -- ENXIO
No_Such_File_Or_Directory, -- ENOENT
No_Such_Process, -- ESRCH
Not_A_Directory, -- ENOTDIR
Not_Enough_Space, -- ENOMEM
Operation_Not_Permitted, -- EPERM
Permission_Denied, -- EACCES
Read_Only_File_System, -- EROFS
Resource_Busy, -- EBUSY
Resource_Deadlock_Avoided, -- EDEADLK
Resource_Temporarily_Unavailable, -- EAGAIN
Result_Too_Large, -- ERANGE
Too_Many_Links, -- EMLINK
Too_Many_Open_Files, -- EMFILE
Too_Many_Open_Files_In_System -- ENFILE
: exception;
private
type String_Ptr is access Posix_String;
type List_Elem is
record
Current : String_Ptr;
Next : Posix_String_List;
end record;
type Posix_String_List is access List_Elem;
Empty_String_List : constant Posix_String_List := null;
pragma Inline (To_String);
pragma Inline (To_Posix_String);
pragma Inline ("&");
end Posix;
nblk1=7
nid=0
hdr6=e
[0x00] rec0=20 rec1=00 rec2=01 rec3=05a
[0x01] rec0=1a rec1=00 rec2=02 rec3=020
[0x02] rec0=15 rec1=00 rec2=03 rec3=032
[0x03] rec0=1a rec1=00 rec2=04 rec3=068
[0x04] rec0=1c rec1=00 rec2=05 rec3=02e
[0x05] rec0=1e rec1=00 rec2=06 rec3=04e
[0x06] rec0=06 rec1=00 rec2=07 rec3=000
tail 0x2151cbca0838d739ba2bc 0x42a00088462060003