[OpenAFS-devel] Re: [OpenAFS] openafs on irix6.5
Hartmut Reuter
reuter@rzg.mpg.de
Wed, 31 Jan 2001 19:17:57 +0100
This is not the only thing missing (I had no chance to reboot a sgi_65
machine, but now I know): in afs/IRIX/osi_inode.c we still need the
afs_syscall_icreate(). I made it a dummy call now which returns ENOSYS,
but I hope the fileserver always calls the icreatename64 routine
instead.
I am still compiling, so I am not sure this is the last thing missing.
Hartmut
"Neulinger, Nathan R." wrote:
>
> BTW, I just tried building this... It appears that your diff is missing a
> libefs.a fix in src/tviced/Makefile (removing the sgi_6* target)
>
> -- Nathan
>
> > -----Original Message-----
> > From: Hartmut Reuter [mailto:reuter@rzg.mpg.de]
> > Sent: Wednesday, January 31, 2001 7:56 AM
> > To: Nathan Neulinger
> > Subject: Re: [OpenAFS] openafs on irix6.5
> >
> >
> >
> >
> > Nathan Neulinger wrote:
> > >
> > > Cool!
> > >
> > > I don't suppose you could try working some of that magic on
> > the HP-UX 11
> > > side of things? :)
> >
> > I am sorry - we don't have HPUX in our computing center.
> > Hartmut
> >
> > >
> > > -- Nathan
> > >
> > > Hartmut Reuter wrote:
> > > >
> > > > I am through with the whole compilation after removing
> > (ifdef-ing) the
> > > > EFS stuff and some other smaller changes. The patches for
> > OpenAFS 1.0.2
> > > > are in the attachment.
> > > >
> > > > Hartmut
> > > >
> > > > "Neulinger, Nathan R." wrote:
> > > > >
> > > > > I believe this is the same situation as with HP-UX
> > support. Transarc/IBM had
> > > > > to remove it because of the lawyers.
> > > > >
> > > > > -----Original Message-----
> > > > > From: Albert Wold [mailto:alwold@asu.edu]
> > > > > Sent: Tuesday, January 30, 2001 4:08 PM
> > > > > To: openafs-info@openafs.org
> > > > > Subject: RE: [OpenAFS] openafs on irix6.5
> > > > >
> > > > > I got a good chunk of it to compile on IRIX 6.5, but
> > there was some missing
> > > > > EFS stuff. I tried removing the EFS stuff, not really
> > knowing what I was
> > > > > doing to no avail. Does anyone know why the EFS stuff
> > is missing, and/or
> > > > > where it might be acquired or what it does?
> > > > >
> > > > > -----Original Message-----
> > > > > From: benjamin p. myers [mailto:dative@iastate.edu]
> > > > > Sent: Tuesday, January 30, 2001 1:12 PM
> > > > > To: openafs-info@openafs.org
> > > > > Subject: [OpenAFS] openafs on irix6.5
> > > > >
> > > > > I've seen much discussion of openafs on solaris. What
> > of irix? In the
> > > > > install document it says that it will not fully compile
> > on the sgi, how
> > > > > fully does it not compile? Should I be able to compile
> > client support on
> > > > > the sgi? I someone working on this? perhaps i could
> > help in some way.
> > > > >
> > > > > _______________________________________________
> > > > > OpenAFS-info mailing list
> > > > > OpenAFS-info@openafs.org
> > > > > https://lists.openafs.org/mailman/listinfo.cgi/openafs-info
> > > > > _______________________________________________
> > > > > OpenAFS-info mailing list
> > > > > OpenAFS-info@openafs.org
> > > > > https://lists.openafs.org/mailman/listinfo.cgi/openafs-info
> > > >
> > > > --
> > > > -----------------------------------------------------------------
> > > > Hartmut Reuter e-mail reuter@rzg.mpg.de
> > > > phone +49-89-3299-1328
> > > > RZG (Rechenzentrum Garching) fax +49-89-3299-1301
> > > > Computing Center of the Max-Planck-Gesellschaft (MPG) and the
> > > > Institut fuer Plasmaphysik (IPP)
> > > > -----------------------------------------------------------------
> > > >
> > > >
> > --------------------------------------------------------------
> > ----------
> > > > diff -r -u src.orig/afs/IRIX/osi_file.c src/afs/IRIX/osi_file.c
> > > > --- src.orig/afs/IRIX/osi_file.c Sat Nov 4 11:03:22 2000
> > > > +++ src/afs/IRIX/osi_file.c Tue Jan 30 10:06:27 2001
> > > > @@ -23,6 +23,7 @@
> > > > * now vectors to the correct EFS or XFS function. If
> > new functionality is
> > > > * added which accesses the inode, that will also need
> > EFS/XFS variants.
> > > > */
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > vnode_t *afs_EFSIGetVnode(ino_t ainode)
> > > > {
> > > > struct inode *ip;
> > > > @@ -39,6 +40,7 @@
> > > > iunlock(ip);
> > > > return (EFS_ITOV(ip));
> > > > }
> > > > +#endif /* AFS_SGI_EFS_IOPS_ENV */
> > > >
> > > > vnode_t *afs_XFSIGetVnode(ino_t ainode)
> > > > {
> > > > @@ -142,6 +144,7 @@
> > > > return code;
> > > > }
> > > >
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > void osi_DisableAtimes(avp)
> > > > struct vnode *avp;
> > > > {
> > > > @@ -152,6 +155,7 @@
> > > > }
> > > >
> > > > }
> > > > +#endif /* AFS_SGI_EFS_IOPS_ENV */
> > > >
> > > >
> > > > /* Generic read interface */
> > > > @@ -185,7 +189,9 @@
> > > > if (code == 0) {
> > > > code = asize - resid;
> > > > afile->offset += code;
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > osi_DisableAtimes(afile->vnode);
> > > > +#endif /* AFS_SGI_EFS_IOPS_ENV */
> > > > }
> > > > else {
> > > > afs_Trace2(afs_iclSetp, CM_TRACE_READFAILED,
> > ICL_TYPE_INT32, resid,
> > > > diff -r -u src.orig/afs/IRIX/osi_inode.c src/afs/IRIX/osi_inode.c
> > > > --- src.orig/afs/IRIX/osi_inode.c Sat Nov 4 11:03:22 2000
> > > > +++ src/afs/IRIX/osi_inode.c Tue Jan 30 16:57:43 2001
> > > > @@ -166,7 +166,8 @@
> > > > return ENOSYS;
> > > > #endif
> > > >
> > > > - if (error = iget(vfstom(vfsp), (unsigned
> > int)(inode&0xffffffff), &ip)) {
> > > > + if (error = iget((((struct mount
> > *)((vfsp)->vfs_bh.bh_first)->bd_pdata)),
> > > > + (unsigned
> > int)(inode&0xffffffff), &ip)) {
> > > > return error;
> > > > }
> > > > *ipp = ip;
> > > > @@ -216,8 +217,9 @@
> > > > }
> > > > #endif
> > > >
> > > > - if (error = xfs_iget(vfstom(vfsp), (void*)0,
> > > > -
> > (xfs_ino_t)inode,XFS_ILOCK_SHARED, &ip, (daddr_t)0)) {
> > > > + if (error = xfs_iget((((struct mount
> > *)((vfsp)->vfs_bh.bh_first)->bd_pdata)),
> > > > + (void*)0, (xfs_ino_t)inode,
> > > > + XFS_ILOCK_SHARED, &ip, (daddr_t)0)) {
> > > > SET_XFS_ERROR(3, vfsp->vfs_dev, inode);
> > > > return error;
> > > > }
> > > > @@ -276,6 +278,7 @@
> > > > sysarg_t param4;
> > > > };
> > > >
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > /* EFS only fs suite uses this entry point - icreate in
> > afssyscalls.c. */
> > > > int
> > > > icreate(struct icreateargs *uap, rval_t *rvp)
> > > > @@ -327,6 +330,7 @@
> > > > iput(newip);
> > > > return 0;
> > > > }
> > > > +#endif /* AFS_SGI_EFS_IOPS_ENV */
> > > >
> > > > #ifdef AFS_SGI_XFS_IOPS_ENV
> > > > /* inode creation routines for icreatename64 entry
> > point. Use for EFS/XFS
> > > > @@ -620,6 +624,7 @@
> > > > if (!vfsp)
> > > > return ENXIO;
> > > >
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > if (vfsp->vfs_fstype == efs_fstype) {
> > > > struct inode *ip;
> > > > if (error = igetinode(vfsp, (dev_t)dev, inode, &ip))
> > > > @@ -631,7 +636,9 @@
> > > > }
> > > > iunlock(ip);
> > > > }
> > > > - else if (vfsp->vfs_fstype == xfs_fstype) {
> > > > + else
> > > > +#endif /* AFS_SGI_EFS_IOPS_ENV */
> > > > + if (vfsp->vfs_fstype == xfs_fstype) {
> > > > struct xfs_inode *xip;
> > > > if (error = xfs_igetinode(vfsp, (dev_t)dev,
> > inode, &xip))
> > > > return error;
> > > > @@ -769,6 +776,7 @@
> > > > *
> > > > * XFS/EFS iinc/idec code for EFS. Uses 32 bit inode numbers.
> > > > */
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > static int efs_iincdec(vfsp, inode, inode_p1, amount)
> > > > struct vfs *vfsp;
> > > > int inode, inode_p1, amount;
> > > > @@ -796,6 +804,7 @@
> > > > iput(ip);
> > > > return error;
> > > > }
> > > > +#endif /* AFS_SGI_EFS_IOPS_ENV */
> > > >
> > > > /* xfs_iincdec
> > > > *
> > > > @@ -814,8 +823,8 @@
> > > > int nlink;
> > > > int vol;
> > > >
> > > > - code = xfs_iget(vfstom(vfsp), (void*)0,
> > (xfs_ino_t)inode, XFS_ILOCK_SHARED,
> > > > - &ip, (daddr_t)0);
> > > > + code = xfs_iget((((struct mount
> > *)((vfsp)->vfs_bh.bh_first)->bd_pdata)), (void*)0,
> > > > + (xfs_ino_t)inode, XFS_ILOCK_SHARED, &ip,
> > (daddr_t)0);
> > > > if (code)
> > > > return code;
> > > >
> > > > @@ -963,9 +972,11 @@
> > > > inode |= inode_lo;
> > > > return xfs_iincdec64(vfsp, inode, inode_p1, amount);
> > > > }
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > else if (vfsp->vfs_fstype == efs_fstype) {
> > > > return efs_iincdec(vfsp, inode_lo, inode_p1, amount);
> > > > }
> > > > +#endif /* AFS_SGI_EFS_IOPS_ENV */
> > > > return ENXIO;
> > > > }
> > > >
> > > > @@ -1143,7 +1154,8 @@
> > > > inode = inode_hi;
> > > > inode <<= 32;
> > > > inode |= inode_lo;
> > > > - code = xfs_iget(vfstom(vfsp), (void*)0, (xfs_ino_t)inode,
> > > > + code = xfs_iget((((struct mount
> > *)((vfsp)->vfs_bh.bh_first)->bd_pdata)),
> > > > + (void*)0, (xfs_ino_t)inode,
> > > > XFS_ILOCK_SHARED, &ip, (daddr_t)0);
> > > > if (code)
> > > > return code;
> > > > diff -r -u src.orig/afs/sysincludes.h src/afs/sysincludes.h
> > > > --- src.orig/afs/sysincludes.h Sat Dec 2 18:41:44 2000
> > > > +++ src/afs/sysincludes.h Tue Jan 30 15:47:11 2001
> > > > @@ -79,7 +79,10 @@
> > > > #ifdef AFS_SGI64_ENV
> > > > #include <ksys/behavior.h>
> > > > #endif /* AFS_SGI64_ENV */
> > > > +#include "../fs/efs_inode.h"
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > #include "../sgiefs/efs.h"
> > > > +#endif
> > > > #include "../sys/kmem.h"
> > > > #include "../sys/cred.h"
> > > > #include "../sys/resource.h"
> > > > diff -r -u src.orig/libafs/MakefileProto.IRIX
> > src/libafs/MakefileProto.IRIX
> > > > --- src.orig/libafs/MakefileProto.IRIX Sat Nov 4 11:05:04 2000
> > > > +++ src/libafs/MakefileProto.IRIX Wed Jan 31 09:53:57 2001
> > > > @@ -218,7 +218,7 @@
> > > > -ln -s /usr/include/sys h
> > > > -ln -s /usr/include/net /usr/include/netinet .
> > > > -ln -s /usr/include/rpc /usr/include/sys .
> > > > - -ln -s ../../obj/sgiefs sgiefs
> > > > + -ln -s /usr/include/sys/fs .
> > > > -mkdir ${DESTDIR}root.client/bin
> > > > -mkdir ${DESTDIR}root.client/usr/vice/etc/sgiload
> > > > <all -sgi_65>
> > > > @@ -342,14 +342,13 @@
> > > > export CPU_KDEFS ;\
> > > > export LDFLAGS ;\
> > > > cd $$dir ; \
> > > > - $(MAKE) IPNO=$$p DESTDIR=../${DESTDIR}
> > $$t.libafs || exit $$?; \
> > > > + $(MAKE) IPNO=$$p DESTDIR=${DESTDIR}
> > $$t.libafs || exit $$?; \
> > > > cd ../ ; \
> > > > done; \
> > > > done
> > > > <all>
> > > >
> > > >
> > > > -LIBAFSA = libafs.a
> > > > LIBAFSNONFSA = libafs.nonfs.a
> > > > COPYFILES = copyfiles
> > > > LINKFILES = linkfiles
> > > > @@ -358,46 +357,31 @@
> > > > MODLOADCLIENTDIR = ${DESTDIR}root.client/usr/vice/etc/sgiload
> > > >
> > > > # Make the NFS and no-NFS clients for this directory.
> > > > -# STATIC.libafs: ${LIBAFSA} ${LIBAFSNONFSA} ${COPYFILES}
> > ${LINKFILES}
> > > > +# STATIC.libafs: ${LIBAFSNONFSA} ${COPYFILES} ${LINKFILES}
> > > > STATIC.libafs: ${LIBAFSNONFSA} ${COPYFILES} ${LINKFILES}
> > > > <all -sgi_65>
> > > > - ${CP} ${LIBAFSA} \
> > > > - ${STATICCLIENTDIR}/libafs.${MPSP}.${CPUARCH}.a
> > > > ${CP} ${LIBAFSNONFSA} \
> > > >
> > ${STATICCLIENTDIR}/libafs.${MPSP}.${CPUARCH}.nonfs.a
> > > > <sgi_65>
> > > > - ${CP} ${LIBAFSA} \
> > > > - ${STATICCLIENTDIR}/libafs.${IPNO}.a
> > > > ${CP} ${LIBAFSNONFSA} \
> > > > ${STATICCLIENTDIR}/libafs.${IPNO}.nonfs.a
> > > > <all>
> > > >
> > > > -${LIBAFSA}: $(AFSAOBJS) $(AFSNFSOBJS)
> > > > - $(AR) cru $@ $?
> > > > -
> > > > ${LIBAFSNONFSA}: $(AFSAOBJS) $(AFSNONFSOBJS)
> > > > $(AR) cru $@ $?
> > > >
> > > > -LIBAFSO = libafs.o
> > > > LIBAFSNONFSO = libaf.nonfs.o
> > > >
> > > > -# MODLOAD.libafs: ${LIBAFSO} ${LIBAFSNONFSO}
> > ${COPYFILES} ${LINKFILES}
> > > > +# MODLOAD.libafs: ${LIBAFSNONFSO} ${COPYFILES} ${LINKFILES}
> > > > MODLOAD.libafs: ${LIBAFSNONFSO} ${COPYFILES} ${LINKFILES}
> > > > <all -sgi_65>
> > > > - ${CP} ${LIBAFSO} \
> > > > - ${MODLOADCLIENTDIR}/libafs.${MPSP}.${CPUARCH}.o
> > > > ${CP} ${LIBAFSNONFSO} \
> > > >
> > ${MODLOADCLIENTDIR}/libafs.${MPSP}.${CPUARCH}.nonfs.o
> > > > <sgi_65>
> > > > - ${CP} ${LIBAFSO} \
> > > > - ${MODLOADCLIENTDIR}/libafs.${IPNO}.o
> > > > ${CP} ${LIBAFSNONFSO} \
> > > > ${MODLOADCLIENTDIR}/libafs.${IPNO}.nonfs.o
> > > > <all>
> > > >
> > > > -${LIBAFSO}: $(AFSAOBJS) $(AFSNFSOBJS)
> > > > - $(LD) ${LDFLAGS} -elf -r -d -G 0 -o ${LIBAFSO}
> > $(AFSAOBJS) $(AFSNFSOBJS)
> > > > -
> > > >
> > > > ${LIBAFSNONFSO}: $(AFSAOBJS) $(AFSNONFSOBJS)
> > > > $(LD) ${LDFLAGS} -elf -r -d -G 0 -o ${LIBAFSNONFSO} \
> > > > diff -r -u src.orig/rx/rx.c src/rx/rx.c
> > > > --- src.orig/rx/rx.c Fri Jan 19 10:37:54 2001
> > > > +++ src/rx/rx.c Wed Jan 31 10:51:51 2001
> > > > @@ -455,7 +455,7 @@
> > > > #else
> > > > struct sockaddr_in addr;
> > > > int addrlen = sizeof(addr);
> > > > - if (getsockname(rx_socket, (struct sockaddr *)
> > &addr, &addrlen)) {
> > > > + if (getsockname((int)rx_socket, (struct sockaddr
> > *) &addr, &addrlen)) {
> > > > rx_Finalize();
> > > > return -1;
> > > > }
> > > > diff -r -u src.orig/vol/Makefile src/vol/Makefile
> > > > --- src.orig/vol/Makefile Sat Nov 4 11:06:21 2000
> > > > +++ src/vol/Makefile Mon Jan 29 17:09:57 2001
> > > > @@ -81,9 +81,6 @@
> > > > *linux* ) \
> > > > ${CC} ${LDFLAGS} -o salvager
> > vol-salvage.o physio.o \
> > > > ${LIBS} ;; \
> > > > - sgi_* ) \
> > > > - ${CC} ${LDFLAGS} -o salvager
> > vol-salvage.o physio.o \
> > > > - ${LIBS} ../sgiefs/libefs.a ;; \
> > > > *) \
> > > > ${CC} ${LDFLAGS} -o salvager
> > vol-salvage.o physio.o \
> > > > ${LIBS};; \
> > > > diff -r -u src.orig/vol/devname.c src/vol/devname.c
> > > > --- src.orig/vol/devname.c Sat Nov 4 11:06:21 2000
> > > > +++ src/vol/devname.c Mon Jan 29 17:18:00 2001
> > > > @@ -54,8 +54,10 @@
> > > > #if defined(AFS_SGI_ENV)
> > > > #include <fcntl.h>
> > > > #include <mntent.h>
> > > > -#include "../sgiefs/efs.h"
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > #define ROOTINO EFS_ROOTINO
> > > > +#include "../sgiefs/efs.h"
> > > > +#endif
> > > > #else
> > > > #ifdef AFS_LINUX22_ENV
> > > > #include <mntent.h>
> > > > diff -r -u src.orig/vol/listinodes.c src/vol/listinodes.c
> > > > --- src.orig/vol/listinodes.c Sat Nov 4 11:06:23 2000
> > > > +++ src/vol/listinodes.c Mon Jan 29 17:07:56 2001
> > > > @@ -417,6 +417,7 @@
> > > > /* libefs.h includes <assert.h>, which we don't want */
> > > > #define __ASSERT_H__
> > > >
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > #include "../sgiefs/libefs.h"
> > > > extern int Log();
> > > >
> > > > @@ -606,6 +607,7 @@
> > > >
> > > > return err;
> > > > }
> > > > +#endif /* AFS_SGI_EFS_IOPS_ENV */
> > > >
> > > > #ifdef AFS_SGI_XFS_IOPS_ENV
> > > > #include <dirent.h>
> > > > @@ -1022,7 +1024,9 @@
> > > > int ninodes = 0, err = 0;
> > > > struct efs_dinode *dinodeBuf = NULL;
> > > > int last_cgno;
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > EFS_MOUNT *mp;
> > > > +#endif
> > > > ino_t imax, inum; /* total number of
> > I-nodes in file system */
> > > >
> > > > *forcep = 0;
> > > > @@ -1044,14 +1048,17 @@
> > > > }
> > > > else
> > > > #endif
> > > > - {
> > > > - if (root_inode.st_ino != EFS_ROOTINO) {
> > > > - Log("%s is not root of a filesystem\n",
> > mountedOn);
> > > > - return -1;
> > > > - }
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > + if (root_inode.st_ino == EFS_ROOTINO) {
> > > > return efs_ListViceInodes(devname, mountedOn,
> > resultFile,
> > > > judgeInode, judgeParam,
> > > > forcep, forceR, wpath);
> > > > + }
> > > > + else
> > > > +#endif
> > > > + {
> > > > + Log("%s is not root of a filesystem\n", mountedOn);
> > > > + return -1;
> > > > }
> > > > }
> > > >
> > > > diff -r -u src.orig/vol/volume.c src/vol/volume.c
> > > > --- src.orig/vol/volume.c Fri Jan 19 10:06:02 2001
> > > > +++ src/vol/volume.c Mon Jan 29 17:16:26 2001
> > > > @@ -72,13 +72,11 @@
> > > > #if defined(AFS_SGI_ENV)
> > > > #include <fcntl.h>
> > > > #include <mntent.h>
> > > > -#ifndef AFS_SGI_XFS_IOPS_ENV
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > #define ROOTINO EFS_ROOTINO
> > > > -#endif
> > > > -/*
> > > > #include <sys/fs/efs.h>
> > > > -*/
> > > > -#include "../sgiefs/efs.h" /* until 5.1 release */
> > > > +#include "../sgiefs/efs.h" /* until 5.1 release */
> > > > +#endif
> > > >
> > > > #else
> > > > #ifndef AFS_LINUX20_ENV
> > > > diff -r -u src.orig/vol/xfs_size_check.c src/vol/xfs_size_check.c
> > > > --- src.orig/vol/xfs_size_check.c Sat Nov 4 11:06:29 2000
> > > > +++ src/vol/xfs_size_check.c Mon Jan 29 17:15:01 2001
> > > > @@ -19,7 +19,9 @@
> > > > #include <fcntl.h>
> > > > #include <mntent.h>
> > > > #include "partition.h"
> > > > +#ifdef AFS_SGI_EFS_IOPS_ENV
> > > > #include "../sgiefs/efs.h"
> > > > +#endif
> > > > #include <afs/xfsattrs.h>
> > > >
> > > > char *prog = "xfs_size_check";
> > > > diff -r -u src.orig/volser/Makefile src/volser/Makefile
> > > > --- src.orig/volser/Makefile Sat Nov 4 11:06:31 2000
> > > > +++ src/volser/Makefile Mon Jan 29 17:25:04 2001
> > > > @@ -107,10 +107,6 @@
> > > > *linux*) \
> > > > ${CC} ${DBUG} -o volserver
> > $(SOBJS) $(HACKS) \
> > > > ${LDFLAGS} $(LIBS) ${XLIBS} ;; \
> > > > - sgi_*) \
> > > > - ${CC} ${DBUG} -o volserver
> > $(SOBJS) $(HACKS) \
> > > > - ${LDFLAGS} $(LIBS) ${XLIBS} \
> > > > - ../sgiefs/libefs.a ;; \
> > > > *) \
> > > > ${CC} ${DBUG} -g -o volserver
> > $(SOBJS) $(HACKS) \
> > > > ${LDFLAGS} $(LIBS) ${XLIBS} ;; \
> > >
> > > --
> > >
> > > ------------------------------------------------------------
> > > Nathan Neulinger EMail: nneul@umr.edu
> > > University of Missouri - Rolla Phone: (573) 341-4841
> > > CIS - Systems Programming Fax: (573) 341-4216
> >
> > --
> > -----------------------------------------------------------------
> > Hartmut Reuter e-mail reuter@rzg.mpg.de
> > phone +49-89-3299-1328
> > RZG (Rechenzentrum Garching) fax +49-89-3299-1301
> > Computing Center of the Max-Planck-Gesellschaft (MPG) and the
> > Institut fuer Plasmaphysik (IPP)
> > -----------------------------------------------------------------
> >
--
-----------------------------------------------------------------
Hartmut Reuter e-mail reuter@rzg.mpg.de
phone +49-89-3299-1328
RZG (Rechenzentrum Garching) fax +49-89-3299-1301
Computing Center of the Max-Planck-Gesellschaft (MPG) and the
Institut fuer Plasmaphysik (IPP)
-----------------------------------------------------------------