DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T V ┃
Length: 20223 (0x4eff) Types: TextFile Names: »V«
└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00 └─ ⟦0c20f784e⟧ »DATA« └─⟦1abbe589f⟧ └─⟦059497ac5⟧ └─⟦this⟧
--/ 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;