|
|
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: 12288 (0x3000)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Physical_Layer, seg_027bfe
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Ada_C;
with Host_Name;
with Low_Level_Message;
with Socket_Defs;
with Socket_Port;
with System;
with Text_Io;
package body Physical_Layer is
procedure Get_Host_Name_C (The_Buffer : in System.Address;
The_Buffer_Length : Integer);
pragma Interface (C, Get_Host_Name_C);
pragma Interface_Information (Get_Host_Name_C, ".gethostname");
procedure Get_Host_Name (The_Host_Name : in out Host_Name.Object) is
Tmp : constant String (1 .. 20) := (others => ' ');
-- Tmp : constant String (1 .. Host_Name.Max_Range'Last) :=
-- (others => ' ');
begin
The_Host_Name := Host_Name.Create (Tmp);
Get_Host_Name_C (The_Host_Name.The_String
(The_Host_Name.The_String'First)'Address,
Host_Name.Max_Range'Last);
end Get_Host_Name;
procedure Close_Socket_C (The_Socket_Id : Socket_Defs.Socket_Id);
pragma Interface (C, Close_Socket_C);
pragma Interface_Information (Close_Socket_C, ".Close_Socket");
procedure Close_Socket (The_Socket_Id : Socket_Defs.Socket_Id) is
begin
Close_Socket_C (The_Socket_Id);
end Close_Socket;
procedure Create_Socket_C (The_Socket_Port : System.Address;
The_Socket_Type : Integer;
The_New_Socket : System.Address);
pragma Interface (C, Create_Socket_C);
pragma Interface_Information (Create_Socket_C, ".Create_Socket");
procedure Create_Socket (The_Socket_Port : in out Socket_Port.Object;
The_Socket_Type : in Integer;
The_New_Socket : out Socket_Defs.Socket_Id) is
The_Value_Of_The_Socket_Port : Natural;
begin
The_Value_Of_The_Socket_Port := Socket_Port.Value (The_Socket_Port);
Create_Socket_C (The_Value_Of_The_Socket_Port'Address,
The_Socket_Type, The_New_Socket'Address);
The_Socket_Port := Socket_Port.Create (The_Value_Of_The_Socket_Port);
end Create_Socket;
function Create_Server_C (The_Server_Socket_Port : Natural)
return Socket_Defs.Socket_Id;
pragma Interface (C, Create_Server_C);
pragma Interface_Information (Create_Server_C, ".Create_Server");
function Create_Server (The_Server_Socket_Port : in Socket_Port.Object)
return Socket_Defs.Socket_Id is
The_Value_Of_The_Server_Socket_Port : Natural;
The_Result : Socket_Defs.Socket_Id;
begin
The_Value_Of_The_Server_Socket_Port :=
Socket_Port.Value (The_Server_Socket_Port);
return Create_Server_C (The_Value_Of_The_Server_Socket_Port);
end Create_Server;
function Server_Wait_For_A_Connection_C
(The_Listen_Socket : Socket_Defs.Socket_Id)
return Socket_Defs.Socket_Id;
pragma Interface (C, Server_Wait_For_A_Connection_C);
pragma Interface_Information (Server_Wait_For_A_Connection_C,
".Server_Wait_For_A_Connection");
function Server_Wait_For_A_Connection
(The_Listen_Socket : in Socket_Defs.Socket_Id)
return Socket_Defs.Socket_Id is
begin
return Server_Wait_For_A_Connection_C (The_Listen_Socket);
end Server_Wait_For_A_Connection;
function Join_Server_C (The_Server_Name : System.Address;
The_Server_Name_Length : Natural;
The_Server_Socket_Port : Natural)
return Socket_Defs.Socket_Id;
pragma Interface (C, Join_Server_C);
pragma Interface_Information (Join_Server_C, ".Join_Server");
function Join_Server (The_Server_Name : in Host_Name.Object;
The_Server_Socket_Port : in Socket_Port.Object)
return Socket_Defs.Socket_Id is
The_Value_Of_The_Server_Socket_Port : Natural;
begin
The_Value_Of_The_Server_Socket_Port :=
Socket_Port.Value (The_Server_Socket_Port);
return Join_Server_C (The_Server_Name.The_String
(The_Server_Name.The_String'First)'Address,
The_Server_Name.The_Size,
The_Value_Of_The_Server_Socket_Port);
end Join_Server;
procedure Send_String_C (The_Remote_Socket_Id : Socket_Defs.Socket_Id;
The_Buffer_To_Send : System.Address;
The_Length_Of_Buffer_To_Send : Integer;
The_Number_Of_Characters_Sent : System.Address);
pragma Interface (C, Send_String_C);
pragma Interface_Information (Send_String_C, ".Send_String");
procedure Send_String (The_Remote_Socket_Id : in Socket_Defs.Socket_Id;
The_Buffer_To_Send : in out Low_Level_Message.Object;
The_Number_Of_Characters_Sent : out Integer
) is
The_C_Buffer : constant String :=
Ada_C.String_Ada_To_C (The_Buffer_To_Send.The_String);
begin
Text_Io.Put_Line ("Physical_layer).Send_String : Before sending.)");
Send_String_C (The_Remote_Socket_Id,
The_C_Buffer (The_C_Buffer'First)'Address,
The_Buffer_To_Send.The_Size,
The_Number_Of_Characters_Sent'Address);
Text_Io.Put_Line
("Physical_layer).Send_String : After sending : End.)");
end Send_String;
procedure Receive_String_C
(The_Remote_Socket_Id : Socket_Defs.Socket_Id;
The_Buffer_To_Receive : System.Address;
The_Length_Of_Buffer_To_Receive : Integer;
The_Number_Of_Caracteres_Received : System.Address);
pragma Interface (C, Receive_String_C);
pragma Interface_Information (Receive_String_C, ".Receive_String");
procedure Receive_String
(The_Remote_Socket_Id : in Socket_Defs.Socket_Id;
The_Buffer_To_Receive : in out Low_Level_Message.Object;
The_Number_Of_Characters_Received : in out Integer) is
The_Tmp_Received_Buffer : Low_Level_Message.Object;
begin
Text_Io.Put_Line
("Physical_layer).Receive_String : Before receiving.)");
Receive_String_C (The_Remote_Socket_Id,
The_Tmp_Received_Buffer.The_String
(The_Tmp_Received_Buffer.The_String'First)'Address,
The_Tmp_Received_Buffer.The_Size,
The_Number_Of_Characters_Received'Address);
Text_Io.Put_Line
("Physical_layer).Receive_String : After receiving ...)");
The_Buffer_To_Receive :=
Low_Level_Message.Create
(The_Tmp_Received_Buffer.The_String
(1 .. The_Number_Of_Characters_Received));
Text_Io.Put_Line ("Physical_layer).Receive_String : End.)");
-- Receive_String_C (The_Remote_Socket_Id, The_Buffer_To_Receive (The_Buffer_To_Receive'First)'Address,
-- The_Length_Of_Buffer_To_Receive, The_Number_Of_Caracteres_Received'Address);
end Receive_String;
end Physical_Layer;
nblk1=b
nid=6
hdr6=10
[0x00] rec0=23 rec1=00 rec2=01 rec3=074
[0x01] rec0=19 rec1=00 rec2=0a rec3=016
[0x02] rec0=1a rec1=00 rec2=03 rec3=04e
[0x03] rec0=21 rec1=00 rec2=09 rec3=02a
[0x04] rec0=18 rec1=00 rec2=08 rec3=022
[0x05] rec0=16 rec1=00 rec2=04 rec3=000
[0x06] rec0=18 rec1=00 rec2=07 rec3=022
[0x07] rec0=17 rec1=00 rec2=05 rec3=000
[0x08] rec0=09 rec1=00 rec2=07 rec3=000
[0x09] rec0=0d rec1=00 rec2=08 rec3=001
[0x0a] rec0=b4 rec1=2f rec2=20 rec3=000
tail 0x21721e2e683ad54246e98 0x42a00088783c7f403
Free Block Chain:
0x6: 0000 00 0b 03 4c 80 26 69 76 65 64 5f 42 75 66 66 65 ┆ L &ived_Buffe┆
0xb: 0000 00 02 03 fc 80 06 62 6a 65 63 74 27 06 00 4b 20 ┆ bject' K ┆
0x2: 0000 00 00 00 fa 80 24 65 74 5f 50 6f 72 74 20 3a 20 ┆ $et_Port : ┆