234 lines
4.3 KiB
C
234 lines
4.3 KiB
C
/*****************************************************************************
|
|
*
|
|
* NCSA DTM version 2.3
|
|
* May 1, 1992
|
|
*
|
|
* NCSA DTM Version 2.3 source code and documentation are in the public
|
|
* domain. Specifically, we give to the public domain all rights for future
|
|
* licensing of the source code, all resale rights, and all publishing rights.
|
|
*
|
|
* We ask, but do not require, that the following message be included in all
|
|
* derived works:
|
|
*
|
|
* Portions developed at the National Center for Supercomputing Applications at
|
|
* the University of Illinois at Urbana-Champaign.
|
|
*
|
|
* THE UNIVERSITY OF ILLINOIS GIVES NO WARRANTY, EXPRESSED OR IMPLIED, FOR THE
|
|
* SOFTWARE AND/OR DOCUMENTATION PROVIDED, INCLUDING, WITHOUT LIMITATION,
|
|
* WARRANTY OF MERCHANTABILITY AND WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE
|
|
*
|
|
*****************************************************************************/
|
|
|
|
|
|
#ifdef RCSLOG
|
|
|
|
$Log: dtmf77.c,v $
|
|
Revision 1.1.1.1 1995/01/11 00:02:59 alanb
|
|
New CVS source tree, Mosaic 2.5 beta 4
|
|
|
|
* Revision 2.5 1994/12/29 23:39:40 alanb
|
|
* I'm committing with a new symbolic revision number.
|
|
*
|
|
* Revision 1.1.1.1 1994/12/28 21:37:31 alanb
|
|
*
|
|
* Revision 1.1.1.1 1993/07/04 00:03:11 marca
|
|
* Mosaic for X version 2 distribution
|
|
*
|
|
* Revision 1.1 1993/01/18 21:50:16 marca
|
|
* I think I got it now.
|
|
*
|
|
* Revision 1.7 92/04/30 20:25:27 jplevyak
|
|
* Changed Version to 2.3.
|
|
*
|
|
* Revision 1.6 1992/03/10 22:07:10 jplevyak
|
|
* Added changed for PC/MAC from Quincey Koziol (koziol@ncsa.uiuc.edu)
|
|
* with modification.
|
|
*
|
|
* Revision 1.5 1991/11/15 23:01:21 jefft
|
|
* Added quality of service options to DTMMOP and DTMMIP
|
|
*
|
|
* Revision 1.4 1991/06/11 15:22:00 sreedhar
|
|
* disclaimer added
|
|
*
|
|
* Revision 1.3 1991/05/30 15:53:35 sreedhar
|
|
* Changes for readMsg/writeMsg internal release
|
|
*
|
|
* Revision 1.2 1991/02/01 10:41:40 jefft
|
|
* Fixed bug with DTMBR, the _cptofcd was not used correctly.
|
|
*
|
|
* Revision 1.1 90/11/08 16:31:46 jefft
|
|
* Initial revision
|
|
*
|
|
|
|
#endif
|
|
|
|
|
|
#include <stdio.h>
|
|
#include <fortran.h>
|
|
#include "dtm.h"
|
|
|
|
|
|
|
|
#ifdef DTM_PROTOTYPES
|
|
int DTMMIP(_fcd s)
|
|
#else
|
|
int DTMMIP(s)
|
|
_fcd s;
|
|
#endif
|
|
{
|
|
int len;
|
|
char portname[128];
|
|
|
|
len = _fcdlen(s);
|
|
strncpy(portname, _fcdtocp(s), len);
|
|
portname[len] = '\0';
|
|
|
|
return DTMmakeInPort(portname, DTM_DEFAULT);
|
|
}
|
|
|
|
|
|
#ifdef DTM_PROTOTYPES
|
|
int DTMMOP(_fcd s)
|
|
#else
|
|
int DTMMOP(s)
|
|
_fcd s;
|
|
#endif
|
|
{
|
|
int len;
|
|
char portname[128];
|
|
|
|
len = _fcdlen(s);
|
|
strncpy(portname, _fcdtocp(s), len);
|
|
portname[len] = '\0';
|
|
|
|
return DTMmakeOutPort(portname, DTM_DEFAULT);
|
|
}
|
|
|
|
|
|
#ifdef DTM_PROTOTYPES
|
|
int DTMGPA(int *p,_fcd s,int *len)
|
|
#else
|
|
int DTMGPA(p, s, len)
|
|
int *p, *len;
|
|
_fcd s;
|
|
#endif
|
|
{
|
|
char portaddr[128];
|
|
|
|
|
|
if (DTMgetPortAddr(*p, portaddr, sizeof portaddr) == DTMERROR)
|
|
return DTMERROR;
|
|
|
|
if (strlen(portaddr) > *len) {
|
|
strncpy(_fcdtocp(s), portaddr, *len);
|
|
return DTMERROR;
|
|
}
|
|
|
|
else {
|
|
strncpy(_fcdtocp(s), portaddr, strlen(portaddr));
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef DTM_PROTOTYPES
|
|
int DTMAR(int *p)
|
|
#else
|
|
int DTMAR(p)
|
|
int *p;
|
|
#endif
|
|
{
|
|
return DTMavailRead(*p);
|
|
}
|
|
|
|
|
|
#ifdef DTM_PROTOTYPES
|
|
int DTMBR(int *p,_fcd header,int *size)
|
|
#else
|
|
int DTMBR(p, header, size)
|
|
int *p, *size;
|
|
_fcd header;
|
|
#endif
|
|
{
|
|
|
|
return DTMbeginRead(*p, _fcdtocp(header), *size);
|
|
}
|
|
|
|
|
|
#ifdef DTM_PROTOTYPES
|
|
int DTMRD(int *p,char *ds,int *size,DTMTYPE type)
|
|
#else
|
|
int DTMRD(p, ds, size, type)
|
|
int *p, *size;
|
|
char *ds;
|
|
DTMTYPE *type;
|
|
#endif
|
|
{
|
|
return DTMreadDataset(*p, ds, *size, *type);
|
|
}
|
|
|
|
|
|
#ifdef DTM_PROTOTYPES
|
|
int DTMER(int *p)
|
|
#else
|
|
int DTMER(p)
|
|
int *p;
|
|
#endif
|
|
{
|
|
return DTMendRead(*p);
|
|
}
|
|
|
|
|
|
#ifdef DTM_PROTOTYPES
|
|
int DTMAW(int *p)
|
|
#else
|
|
int DTMAW(p)
|
|
int *p;
|
|
#endif
|
|
{
|
|
return DTMavailWrite(*p);
|
|
}
|
|
|
|
|
|
#ifdef DTM_PROTOTYPES
|
|
int DTMBW(int *p,_fcd header,int *size)
|
|
#else
|
|
int DTMBW(p, header, size)
|
|
int *p, *size;
|
|
_fcd header;
|
|
#endif
|
|
{
|
|
int len;
|
|
char buffer[DTM_MAX_HEADER];
|
|
|
|
len = _fcdlen(header);
|
|
strncpy(buffer, _fcdtocp(header), len);
|
|
buffer[len] = '\0';
|
|
|
|
return DTMbeginWrite(*p, buffer, len+1);
|
|
}
|
|
|
|
|
|
#ifdef DTM_PROTOTYPES
|
|
int DTMSD(int *p,char *ds,int *size,DTMTYPE type)
|
|
#else
|
|
int DTMSD(p, ds, size, type)
|
|
int *p, *size;
|
|
char *ds;
|
|
DTMTYPE *type;
|
|
#endif
|
|
{
|
|
return DTMwriteDataset(*p, ds, *size, *type);
|
|
}
|
|
|
|
|
|
#ifdef DTM_PROTOTYPES
|
|
int DTMEW(int *p)
|
|
#else
|
|
int DTMEW(p)
|
|
int *p;
|
|
#endif
|
|
{
|
|
return DTMendWrite(*p);
|
|
}
|