File: AAA_UCXSIM_README.TXT					28-Feb-1999

By John Malmberg

UCXSIM_IPC_SHR.EXE is a shared image for use with Open CMU-IP.

It allows some binary programs that were linked to run socket routines in the
DEC C RTL.

Not all functions will will work.  This is limited by the capabilities of the
Open CMU-IP.  A detailed list of what can not be expected to work is below.

This program does not provide $QIO/$QIOW compatability with UCX.  Nor does it
provide BG: device emulation.

This program also requires NETLIB 2.0 or higher.  Note: It has only been tested
with NETLIB 2.0 and 2.2.  This is important because UCXSIM_IPC_SHR uses
information not documented in NETLIB, but determined from examining the source.
If a future version of NETLIB changes the socket context structure, then UCXSIM
may stop working.

The UCXSIM_IPC_SHR.EXE is copied to the CMUIP_ROOT:[SYSLIB] directory and
installed as an /OPEN/HEADER/RESIDENT image.

The files NETWORKS., PROTOCOLS., and SERVICES, need to be copied to the
CMUIP_ROOT:[SYSLIB] directory.  Note the PROTOCOLS. and SERVICES. files are the
same as in Eckart Meyer's SOCKETSHR program.

The following logical names need to be defined.

DEFINE/SYSTEM/EXEC UCX$IPC_SHR CMUIP_ROOT:[SYSLIB]UCXSIM_IPC_SHR.EXE

DEFINE/SYSTEM/EXEC UCXSIM_NETWORKS CMUIP_ROOT:[SYSLIB]NETWORKS.
DEFINE/SYSTEM/EXEC UCXSIM_PROTOCOLS CMUIP_ROOT:[SYSLIB]PROTOCOLS.
DEFINE/SYSTEM/EXEC UCXSIM_SERVICES CMUIP_ROOT:[SYSLIB]SERVICES.


This program is basically an interface between DECC$SHR and NETLIB.  Except for
the select() function and the database routines.  The select() function is
implemented as a 20 millisecond poll of all of the input sockets.  The
database routines were implemented to be compatable with SOCKETSHR.

Functions implmented:

    socket()

    decc$get_sdc()

    bind()

    listen()

    gethostbyname()

    connect()

    getsockopt()  ! NETLIB documents this as non functional

    setsockopt()  ! NETLIB documents this as non functional

    getpeername()

    getsockname()

    send()	   ! flags are ignored, as unsupported for NETLIB

    select()	   ! 20 millisecond poll on receive sockets.
		   ! All send sockets are assumed to be ready.
		   ! Exception sockets are ignored.

    recv()	   ! flags are ignored.

    write()

    read()

    sendto()	   ! flags are ignored.

    recvfrom()	   ! flags are ignored.

    sendmsg()	   ! flags are ignored.

    recvmsg()	   ! flags are ignored.

    shutdown()

    close()

    inet_addr()

    gethostbyaddr()

    gethostaddr()

    gethostname()

    ntohl()	   ! Supplied by DEC C RTL

    getnetbyaddr()

    getnetbyname()

    getnetent()	    ! Returns NULL always.

    getprotobyname()

    getprotobynumber()

    getprotoent()   ! Returns NULL always.

    getservbyname()

    getservbyport()

    htons()	    ! Supplied by DEC C RTL

    htonl()	    ! Supplied by DEC C RTL

    ntohl()	    ! Supplied by DEC C RTL

    ntohl()	    ! Supplied by DEC C RTL

    inet_lnaof()

    inet_netof()

    inet_makeaddr()

    inet_network()

    inet_ntoa()

Note:

With the advent of the Hobbyist 2 program from Compaq and DECUS, I will
probably not be doing anymore work with CMU-IP for a while.

I am interested in any use of this program, but will not be able to test any
fixes given to me.

-John
WB8TYW@QSL.NET
<html>

<head>
<title>http://209.138.74.68/gadbottom.html</title>
</head>

<body ALINK="#0000FF" VLINK="#0000FF" topmargin="0" leftmargin="0" link="#0000FF">
<script src="http://www.getadeal.net/cgi-bin/staticlogo.js">
</script>

</body>
</html>