|
|
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: 7168 (0x1c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, seg_018b93
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
WITH System;
WITH Unchecked_Conversion;
PACKAGE BODY Socket_System_Interface IS
No_Linger : CONSTANT Linger_Structure_Ptr := NEW Linger_Structure'(1, 1);
System_Error : CONSTANT Unix_Base_Types.Int := -1;
PACKAGE Resolve_Overloading IS
FUNCTION Socket (Af : IN Unix_Base_Types.Int;
Socket_Type : IN Unix_Base_Types.Int;
Protocol : IN Unix_Base_Types.Int)
RETURN Unix_Base_Types.Int;
PRAGMA Interface (C, Socket);
PRAGMA Interface_Information (Socket, ".socket");
FUNCTION Bind (S : IN Unix_Base_Types.Int;
Addr : IN Sockaddr_In_Ptr;
Addrlen : IN Unix_Base_Types.Int)
RETURN Unix_Base_Types.Int;
PRAGMA Interface (C, Bind);
PRAGMA Interface_Information (Bind, ".bind");
FUNCTION Getsockopt (S : IN Unix_Base_Types.Int;
Level : IN Unix_Base_Types.Int;
Optname : IN Unix_Base_Types.Int;
Optval : IN Unix_Base_Types.Char_Ptr;
Optlen : IN Unix_Base_Types.Int_Ptr)
RETURN Unix_Base_Types.Int;
PRAGMA Interface (C, Getsockopt);
PRAGMA Interface_Information (Getsockopt, ".getsockopt");
END Resolve_Overloading;
FUNCTION Linger_Struct_To_Char_Ptr IS
NEW Unchecked_Conversion (Source => Linger_Structure_Ptr,
Target => Unix_Base_Types.Char_Ptr);
FUNCTION Int_Ptr_To_Char_Ptr IS NEW Unchecked_Conversion
(Source => Unix_Base_Types.Int_Ptr,
Target => Unix_Base_Types.Char_Ptr);
FUNCTION Socket (Af : IN Unix_Base_Types.Int;
Socket_Type : IN Unix_Base_Types.Int;
Protocol : IN Unix_Base_Types.Int)
RETURN Unix_Base_Types.Int IS
Return_Value : Unix_Base_Types.Int;
BEGIN
Return_Value := Resolve_Overloading.Socket (Af => Af,
Socket_Type => Socket_Type,
Protocol => Protocol);
RETURN Return_Value;
END Socket;
FUNCTION Bind (S : IN Unix_Base_Types.Int;
Addr : IN Sockaddr_In_Ptr;
Addrlen : IN Unix_Base_Types.Int)
RETURN Unix_Base_Types.Int IS
Return_Value : Unix_Base_Types.Int;
BEGIN
Return_Value :=
Resolve_Overloading.Bind (S => S, Addr => Addr, Addrlen => Addrlen);
DECLARE
Allow_Reuse : CONSTANT Unix_Base_Types.Int_Ptr :=
NEW Unix_Base_Types.Int'(1);
BEGIN
IF Return_Value /= System_Error THEN
Return_Value :=
Setsockopt (S => S,
Level => Sol_Socket,
Optname => So_Linger,
Optval => Linger_Struct_To_Char_Ptr (No_Linger),
Optlen => No_Linger.ALL'Size / System.Storage_Unit);
END IF;
IF Return_Value /= System_Error THEN
Return_Value :=
Setsockopt
(S => S,
Level => Sol_Socket,
Optname => So_Reuseaddr,
Optval => Int_Ptr_To_Char_Ptr (Allow_Reuse),
Optlen => Allow_Reuse.ALL'Size / System.Storage_Unit);
END IF;
-- IF Return_Value /= System_Error THEN
-- Return_Value :=
-- Resolve_Overloading.Getsockopt (S => S,
-- Level => Sol_Socket,
-- Optname => So_@,
-- Optval => [CHAR_PTR-expression],
-- Optlen => [INT_PTR-expression]);
-- END IF;
--
END;
RETURN Return_Value;
END Bind;
END Socket_System_Interface;
nblk1=6
nid=0
hdr6=c
[0x00] rec0=1b rec1=00 rec2=01 rec3=038
[0x01] rec0=1b rec1=00 rec2=06 rec3=042
[0x02] rec0=00 rec1=00 rec2=02 rec3=030
[0x03] rec0=23 rec1=00 rec2=03 rec3=028
[0x04] rec0=17 rec1=00 rec2=04 rec3=03a
[0x05] rec0=0a rec1=00 rec2=05 rec3=000
tail 0x21715b3028357638bbc28 0x489e0066482863c01