DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦8c92d1a55⟧ TextFile

    Length: 20223 (0x4eff)
    Types: TextFile
    Names: »V«

Derivation

└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00
    └─ ⟦0c20f784e⟧ »DATA« 
        └─⟦1abbe589f⟧ 
            └─⟦059497ac5⟧ 
                └─⟦this⟧ 

TextFile

--/ if Cdf_Hpux then
--// with System;
--// with Unchecked_Conversion;
--// with Unix_Base_Types;
--/ elsif TeleGen2 and then Unix then
--// with Unix_Implementation_Types;         -- Unix String Types
--// use Unix_Implementation_Types;
--//
--// with System;
--// with Unchecked_Conversion;
--/ end if;

with Xlbt_Arithmetic;  
use Xlbt_Arithmetic;

with Xlbmt_Network_Types;  
use Xlbmt_Network_Types;

--/ if Record_Rep_Clauses then
--// with Xlbmt_Parameters;
--// use Xlbmt_Parameters;
--/ end if;

package Xlbmt_Transport_Defs is
------------------------------------------------------------------------------
-- X Library Machine Network Transport Types
--
-- Xlbmt_Transport_Defs - Machine/Compiler dependent network interface types.
------------------------------------------------------------------------------
-- Copyright 1991 - 1990 by Rational, Santa Clara, California.
--
--                  All Rights Reserved.
--
-- Permission to use, copy, modify, and distribute this software and its
-- documentation for any purpose and without fee is hereby granted,
-- provided that the above copyright notice(s) appear in all copies and that
-- both that copyright notice(s) and this permission notice appear in
-- supporting documentation, and that the name of Rational not be used in
-- advertising or publicity pertaining to distribution of the software
-- without specific, written prior permission.
--
-- Rational disclaims all warranties with regard to this software, including
-- all implied warranties of merchantability and fitness, in no event shall
-- Rational be liable for any special, indirect or consequential damages or
-- any damages whatsoever resulting from loss of use, data or profits, whether
-- in an action of contract, negligence or other tortious action, arising out
-- of or in connection with the use or performance of this software.
------------------------------------------------------------------------------

--\f

------------------------------------------------------------------------------
-- Unix Data Structures
------------------------------------------------------------------------------

--/ if Cdf_Hpux then
--//     subtype C_String_Pointer is Unix_Base_Types.Char_Ptr;
--/ end if;

--/ if Unix then
--//
--// ------------------------------------------------------------------------------
--// -- FD_SET - file descriptor set
--// ------------------------------------------------------------------------------
--//
--//     subtype Fd_Set_Rec is S_Long_Array (0 .. 7);
--//
--//     procedure Fd_Clr (Fds : out Fd_Set_Rec);
--//     ----Clear the set.
--//     procedure Fd_Set (Fds : in out Fd_Set_Rec; Fd : Connection_Id);
--//     ----Set a bit in the set.
--//
--// ------------------------------------------------------------------------------
--// -- hostent - Network database library entries
--// --
--// -- The Socaddr types are mutilated so that Ada can easily reference the
--// -- first address of what is actually a C array of addresses.
--// ------------------------------------------------------------------------------
--//
--//     type Socaddr_Element is
--//         record
--//             A, B : Host_Id;
--//         end record;
--//
--/ if Record_Rep_Clauses then
--//
--//     for Socaddr_Element use
--//         record
--//             A at 0 * X_Word range X_Word0a .. X_Word0b;
--//             B at 1 * X_Word range X_Word0a .. X_Word0b;
--//         end record;
--//
--/ end if;
--//
--//     type Socaddr_Array         is access Socaddr_Element;
--//     type Socaddr_Array_Pointer is access Socaddr_Array;
--//
--//     type Hostent is
--//         record
--//             H_Name      : C_String_Pointer; -- Official name of host
--//             H_Aliases   :                   -- alias list
--//                C_String_Pointer;
--//             H_Addrtype  : S_Long;           -- host address type
--//             H_Length    : S_Long;           -- length of address
--//             H_Addr_List :                   -- list of addr's from name server
--//                Socaddr_Array_Pointer;
--//         end record;
--//
--/ if Record_Rep_Clauses then
--//
--//     for Hostent use
--//         record
--//             H_Name      at 0 * X_Word range X_Word0a .. X_Word0b;
--//             H_Aliases   at 1 * X_Word range X_Word0a .. X_Word0b;
--//             H_Addrtype  at 2 * X_Word range X_Word0a .. X_Word0b;
--//             H_Length    at 3 * X_Word range X_Word0a .. X_Word0b;
--//             H_Addr_List at 4 * X_Word range X_Word0a .. X_Word0b;
--//         end record;
--//
--/ end if;
--/ if Length_Clauses then
--//     for Hostent'Size use 5 * 32;
--/ elsif Pack then
--//     pragma Pack (Hostent);
--/ end if;
--//
--//     type Hostent_Pointer is access Hostent;
--//
--// ------------------------------------------------------------------------------
--// -- in_addr - Internet Address
--// ------------------------------------------------------------------------------
--//
--//     type In_Addr is
--//         record
--//             S_Addr : Host_Id;
--//         end record;
--//
--// ------------------------------------------------------------------------------
--// -- sockaddr_in - TCP/IP Socket Address
--// ------------------------------------------------------------------------------
--//
--//     type Sockaddr_In is
--//         record
--//             Sin_Family : S_Short;
--//             Sin_Port   : U_Short;
--//             Sin_Addr   : In_Addr;
--//             Sin_Zero   : Socaddr_Element;
--//         end record;
--//
--/ if Record_Rep_Clauses then
--//
--//     for Sockaddr_In use
--//         record
--//             Sin_Family at 0 * X_Word range X_Half0a .. X_Half0b;
--//             Sin_Port   at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Sin_Addr   at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Sin_Zero   at 2 * X_Word range 0 .. 63;
--//         end record;
--//
--/ end if;
--//
--/ if Length_Clauses then
--//     for Sockaddr_In'Size use 16 + 16 + 32 + 8 * 8;
--/ elsif Pack then
--//     pragma Pack (Sockaddr_In);
--/ end if;
--//
--//     ----Socket Address Families
--//
--//     Af_Unspec : constant := 0;      -- Unspecified
--//     Af_Unix   : constant := 1;      -- local to host (pipes, portals)
--//     Af_Inet   : constant := 2;      -- internetwork: UDP, TCP, etc.
--//
--//     ----Socket Protocol Families
--//
--//     Pf_Unspec : constant := 0;      -- Unspecified
--//     Pf_Unix   : constant := 1;      -- local to host (pipes, portals)
--//     Pf_Inet   : constant := 2;      -- internetwork: UDP, TCP, etc.
--//
--//     ----Socket Types
--//
--//     Sock_Stream      : constant := 1;   -- Stream socket
--//     Sock_Dgram       : constant := 2;   -- Datagram socket
--//     Sock_Raw         : constant := 3;   -- Raw-protocol interface
--//     Sock_Rdm         : constant := 4;   -- Reliably-delivered message
--//     Sock_Seq_Package : constant := 5;   -- Sequenced packet stream
--//
--//     ----Socket Protocol Types
--//
--//     Protocol_Ip : constant := 0;        -- TCP/IP protocols
--//
--// ------------------------------------------------------------------------------
--// -- timeval - Timer control value
--// ------------------------------------------------------------------------------
--//
--//     type Timeval is
--//         record
--//             Tv_Sec  : S_Long;
--//             Tv_Usec : S_Long;
--//         end record;
--//
--/ if Record_Rep_Clauses then
--//
--//     for Timeval use
--//         record
--//             Tv_Sec  at 0 * X_Word range X_Word0a .. X_Word0b;
--//             Tv_Usec at 1 * X_Word range X_Word0a .. X_Word0b;
--//         end record;
--//
--/ end if;
--//
--// ------------------------------------------------------------------------------
--// -- System.Address - not everybody uses NULL/0 for Ada null values.
--// ------------------------------------------------------------------------------
--//
--//     function To_Address is
--//        new Unchecked_Conversion (S_Long, System.Address);
--//
--//     None_System_Address : System.Address := To_Address (0);
--//
--/ end if; -- Unix

--\f

------------------------------------------------------------------------------
-- Unix Function Signatures
------------------------------------------------------------------------------

--/ if Unix then
--//
--//     function Close (Fd : Connection_Id) return S_Long;
--//     pragma Interface (C, Close);
--/ if Cdf_Hpux then
--//     pragma Import_Function (Internal        => Close,
--//                             External        => "__close",
--//                             Parameter_Types => (Connection_Id),
--//                             Mechanism       => (Value),
--//                             Result_Type     => S_Long);
--/ elsif TeleGen2 then
--//     pragma Linkname (Close, "close");
--/ else
--//     pragma Linkname (Close, "close");
--/ end if;
--// ------------------------------------------------------------------------------
--// --  Fd  - Specifies the file-descriptor to close
--// --
--// -- Called to close a socket.  A socket is a file-descriptor.
--// ------------------------------------------------------------------------------
--//
--//     function Connect (S       : Connection_Id;
--//                       Name    : System.Address;
--//                       Namelen : S_Long) return S_Long;
--//     pragma Interface (C, Connect);
--/ if Cdf_Hpux then
--//     pragma Import_Function
--//        (Internal        => Connect,
--//         External        => "_connect",
--//         Parameter_Types => (Connection_Id, System.Address, S_Long),
--//         Mechanism       => (Value, Value, Value),
--//         Result_Type     => S_Long);
--/ elsif TeleGen2 then
--//pragma Linkname (Connect, "connect");
--/ else
--//pragma Linkname (Connect, "connect");
--/ end if;
--// ------------------------------------------------------------------------------
--// --  S       - Specifies the socket; obtained from socket()
--// --  Name    - Specifies the sockaddr structure to use
--// --  Namelen - Specifies the length of the sockaddr in 8-bit bytes
--// --
--// -- Called to make a connection to a foreign site using a sockaddr.
--// -- Returns 0 if it works and -1 if it fails.  True error code is in
--// -- global errno.
--// ------------------------------------------------------------------------------
--//
--//     function Fcntl (Fd  : Connection_Id;
--//                     Cmd : S_Long;
--//                     Arg : S_Long) return S_Long;
--//     pragma Interface (C, Fcntl);
--/ if Cdf_Hpux then
--//     pragma Import_Function (Internal        => Fcntl,
--//                             External        => "_fcntl",
--//                             Parameter_Types => (Connection_Id, S_Long, S_Long),
--//                             Mechanism       => (Value, Value, Value),
--//                             Result_Type     => S_Long);
--/ elsif TeleGen2 then
--//pragma Linkname (Fcntl, "fcntl");
--/ else
--//pragma Linkname (Fcntl, "fcntl");
--/ end if;
--// ------------------------------------------------------------------------------
--// --  Fd      - Specifies the file descriptor to affect
--// --  Cmd     - Specifies the operation to perform
--// --  Arg     - Specifies additonal arguments
--// --
--// -- Called to perform a file-control operation of some sort.
--// ------------------------------------------------------------------------------
--//
--// ----flags for F_GETFL, F_SETFL-- needed by <sys/file.h>
--//
--//     Fndelay : constant := 8#000004#;   -- non-blocking I/O (4.2 style)
--//     Fappend : constant := 8#000010#;   -- append on each write
--//     Fasync  : constant := 8#000100#;   -- signal pgrp when data ready
--//     Fcreat  : constant := 8#001000#;   -- create if nonexistent
--//     Ftrunc  : constant := 8#002000#;   -- truncate to zero length
--//     Fexcl   : constant := 8#004000#;   -- error if already created
--//     Fnbio   : constant := 8#010000#;   -- non-blocking I/O (S5-style)
--//     Fsync   : constant := 8#020000#;   -- synchronous writes
--//
--// -- fcntl(2) requests
--//
--//     F_Dupfd  : constant := 0;    -- Duplicate fildes
--//     F_Getfd  : constant := 1;    -- Get fildes flags
--//     F_Setfd  : constant := 2;    -- Set fildes flags
--//     F_Getfl  : constant := 3;    -- Get file flags
--//     F_Setfl  : constant := 4;    -- Set file flags
--//     F_Getown : constant := 5;    -- Get owner
--//     F_Setown : constant := 6;    -- Set owner
--//     F_Getlk  : constant := 7;    -- Get record-locking information
--//     F_Setlk  : constant := 8;    -- Set or Clear a record-lock (Non-Blocking)
--//     F_Setlkw : constant := 9;    -- Set or Clear a record-lock (Blocking)
--//
--//
--//     function Get_Host_By_Name (Name : System.Address) return Hostent_Pointer;
--//     pragma Interface (C, Get_Host_By_Name);
--/ if Cdf_Hpux then
--//     pragma Import_Function (Internal        => Get_Host_By_Name,
--//                             External        => "_gethostbyname",
--//                             Parameter_Types => (System.Address),
--//                             Mechanism       => (Value),
--//                             Result_Type     => Hostent_Pointer);
--/ elsif TeleGen2 then
--//pragma Linkname (Get_Host_By_Name, "gethostbyname");
--/ else
--//pragma Linkname (Get_Host_By_Name, "gethostbyname");
--/ end if;
--// ------------------------------------------------------------------------------
--// --  Name    -- Address of the first character of a null-terminated host name
--// --
--// -- Returns a pointer to a statically allocated hostent structure.  Value is
--// -- null if the host name is unknown.  Copy the contents of the shared structure
--// -- before making another call as it will be overwritten by the second call.
--// ------------------------------------------------------------------------------
--//
--//     function Inet_Addr (Addr : System.Address) return Host_Id;
--//     pragma Interface (C, Inet_Addr);
--/ if Cdf_Hpux then
--//     pragma Import_Function (Internal        => Inet_Addr,
--//                             External        => "_inet_addr",
--//                             Parameter_Types => (System.Address),
--//                             Mechanism       => (Value),
--//                             Result_Type     => Host_Id);
--/ elsif TeleGen2 then
--//pragma Linkname (Inet_Addr, "inet_addr");
--/ else
--//pragma Linkname (Inet_Addr, "inet_addr");
--/ end if;
--// ------------------------------------------------------------------------------
--// --  Addr    -- Address of the first character of a null-terminated numeric addr.
--// --
--// -- Returns a converted INet host address.  It reads the string and computes a
--// -- 1-word numeric value.
--// --
--// -- Addr is one of these forms: "123.123456", "123.123.12345", "123.123.123.123"
--// ------------------------------------------------------------------------------
--//
--//     function Read (Fd     : Connection_Id;
--//                    Buf    : System.Address;
--//                    Nbytes : S_Long) return S_Long;
--//     pragma Interface (C, Read);
--/ if Cdf_Hpux then
--//     pragma Import_Function
--//        (Internal        => Read,
--//         External        => "_read",
--//         Parameter_Types => (Connection_Id, System.Address, S_Long),
--//         Mechanism       => (Value, Value, Value),
--//         Result_Type     => S_Long);
--/ elsif TeleGen2 then
--//pragma Linkname (Read, "read");
--/ else
--//pragma Linkname (Read, "read");
--/ end if;
--// ------------------------------------------------------------------------------
--// --  Fd      - Specifies the file-descriptor (or socket) to read
--// --  Buf     - Specfies the address of a byte to overwrite
--// --  Nbytes  - Specfies the number of bytes in the Buf
--// --
--// -- Called to read some bytes from a socket.  Returns the number of bytes
--// -- read.  Return value of 0 indicates end-of-file.  Return value of -1
--// -- indicates some error has occured.  Other values indicate the number of
--// -- bytes read.
--// ------------------------------------------------------------------------------
--//
--//     function Write (Fd     : Connection_Id;
--//                     Buf    : System.Address;
--//                     Nbytes : S_Long) return S_Long;
--//     pragma Interface (C, Write);
--/ if Cdf_Hpux then
--//     pragma Import_Function
--//        (Internal        => Write,
--//         External        => "_write",
--//         Parameter_Types => (Connection_Id, System.Address, S_Long),
--//         Mechanism       => (Value, Value, Value),
--//         Result_Type     => S_Long);
--/ elsif TeleGen2 then
--//pragma Linkname (Write, "write");
--/ else
--//pragma Linkname (Write, "write");
--/ end if;
--// ------------------------------------------------------------------------------
--// --  Fd      - Specifies the file-descriptor (or socket) to write
--// --  Buf     - Specfies the address of a byte to copy
--// --  Nbytes  - Specfies the number of bytes in the Buf
--// --
--// -- Called to write some bytes to a socket.  Returns the number of bytes
--// -- written.  Return value of -1 indicates some error has occured.  Other
--// -- values indicate the number of bytes written
--// ------------------------------------------------------------------------------
--//
--//     function Unix_Select (Width      : S_Long;
--//                           Read_Fds   : System.Address;
--//                           Write_Fds  : System.Address;
--//                           Except_Fds : System.Address;
--//                           Timeout    : System.Address) return S_Long;
--//     pragma Interface (C, Unix_Select);
--/ if Cdf_Hpux then
--//     pragma Import_Function
--//        (Internal        => Unix_Select,
--//         External        => "_select",
--//         Parameter_Types => (S_Long, System.Address, System.Address,
--//                             System.Address, System.Address),
--//         Mechanism       => (Value, Value, Value, Value, Value),
--//         Result_Type     => S_Long);
--/ elsif TeleGen2 then
--//pragma Linkname (Unix_Select, "select");
--/ else
--//pragma Linkname (Unix_Select, "select");
--/ end if;
--// ------------------------------------------------------------------------------
--// --  Width       - Specifies 0..N, bits 0..N of @_Fds are valid
--// --  Read_Fds    - Specifies which fd's to examine (0..Width) for read
--// --  Write_Fds   - Specifies which fd's to examine (0..Width) for write
--// --  Except_Fds  - Specifies which fd's to examine (0..Width) for exceptions
--// --  Timeout     - Specifies NULL for no timeout and specifes the 'Address
--// --                  of a timeval record to specify a timeout value
--// --
--// -- Called to wait until one or more fd's has some type of I/O activity ready
--// -- to go.
--// ------------------------------------------------------------------------------
--//
--//     function Socket (Domain   : S_Long;
--//                      Typ      : S_Long;
--//                      Protocol : S_Long) return Connection_Id;
--//     pragma Interface (C, Socket);
--/ if Cdf_Hpux then
--//     pragma Import_Function (Internal        => Socket,
--//                             External        => "_socket",
--//                             Parameter_Types => (S_Long, S_Long, S_Long),
--//                             Mechanism       => (Value, Value, Value),
--//                             Result_Type     => Connection_Id);
--/ elsif TeleGen2 then
--//pragma Linkname (Socket, "socket");
--/ else
--//pragma Linkname (Socket, "socket");
--/ end if;
--// ------------------------------------------------------------------------------
--// --  Domain  - Specifies a communications domain, eg. PF_INET
--// --  Typ     - Specifies a type of socket, eg. SOCK_STREAM
--// --  Protocol- Specifies the communications protocol to use
--// --
--// -- Called to create a Unix socket for use in communications.
--// ------------------------------------------------------------------------------
--//
--/ end if; -- Unix

--\f

end Xlbmt_Transport_Defs;