xfstests: remove unsupported conditionals
authorRich Johnston <rjohnston@sgi.com>
Fri, 9 Nov 2012 13:23:59 +0000 (13:23 +0000)
committerRich Johnston <rjohnston@sgi.com>
Wed, 21 Nov 2012 14:43:45 +0000 (08:43 -0600)
This patch removes the unsupported sgi and CRAY.

Signed-off-by: Rich Johnston <rjohnston@sgi.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
34 files changed:
dmapi/src/common/lib/dmport.h
dmapi/src/common/lib/util.c
dmapi/src/sample_hsm/wbee.c
dmapi/src/simple/dm_create_session.c
dmapi/src/simple/dm_destroy_session.c
dmapi/src/simple/dm_find_eventmsg.c
dmapi/src/simple/dm_getall_sessions.c
dmapi/src/simple/dm_getall_tokens.c
dmapi/src/simple/dm_query_session.c
dmapi/src/suite1/cmd/get_mountinfo.c
dmapi/src/suite1/cmd/make_rt_sparse.c
dmapi/src/suite1/cmd/print_event.c
dmapi/src/suite1/cmd/print_fshandle.c
dmapi/src/suite2/src/check_dmapi.c
dmapi/src/suite2/src/dm_test_daemon.c
dmapi/src/suite2/src/mmap.c
dmapi/src/suite2/src/test_invis.c
include/test.h
include/tlibio.h
include/usctest.h
include/write_log.h
lib/datapid.c
lib/random_range.c
lib/str_to_bytes.c
lib/tlibio.c
ltp/doio.c
ltp/doio.h
ltp/growfiles.c
ltp/iogen.c
src/dirperf.c
src/dmiperf.c
src/global.h
src/multi_open_unlink.c
src/randholes.c

index 4c95477bece35f593701567fbff3e7d5af11f296..253ed5bd1bace09b0047fb56166e5f0d4c94b220 100644 (file)
@@ -294,22 +294,6 @@ typedef    struct dm_timestruct dm_timestruct_t;
 
 -------------- end of SGI-specific hack documentation --------------- */
 
-#ifdef __sgi
-
-#include <sys/dmi.h>
-
-/* In the dm_fileattr_t structure, Veritas used 'timeval' structures for all
-   the time fields while XDSM uses 'time_t' structures.  Define some symbols
-   that can be used for the time fields with all implementation types.
-*/
-
-#define FA_ATIME       fa_atime
-#define FA_MTIME       fa_mtime
-#define FA_CTIME       fa_ctime
-#define FA_DTIME       fa_dtime
-
-#endif /* __sgi */
-
 #ifdef linux
 
 #include <dmapi.h>
index f6a3335013fdcb5695dbb5aefa897c113eba5288..2ee7c33cfa3f451545c6888ce9ba1ae7da5c1a77 100644 (file)
@@ -380,11 +380,7 @@ save_filedata(
                nread = dm_read_invis(sid, hanp, hlen, DM_NO_TOKEN, off, 
                                        (dm_ssize_t)CHUNKSIZE, filebuf);
                if (nread != CHUNKSIZE) {
-#ifdef __sgi
-                       errno_msg("%s/%d: invis read err: got %lld, expected %lld, buf %d",
-#else
                        errno_msg("%s/%d: invis read err: got %d, expected %d, buf %d",
-#endif
                                __FILE__, __LINE__,
                                nread, (dm_ssize_t)CHUNKSIZE, i);
                        retval = 1;
@@ -406,11 +402,7 @@ save_filedata(
        nread  = dm_read_invis(sid, hanp, hlen, DM_NO_TOKEN, off, 
                                (dm_ssize_t)lastbuf, filebuf);
        if (nread != lastbuf) {
-#ifdef __sgi
-               errno_msg("%s/%d: invis read error- got %lld, expected %lld, last buf",
-#else
                errno_msg("%s/%d: invis read error- got %d, expected %d, last buf",
-#endif
                                __FILE__, __LINE__,
                                nread, lastbuf);
                retval = 1;
@@ -419,11 +411,7 @@ save_filedata(
 
        nwrite = write(stg_fd, filebuf, (int)lastbuf);
        if (nwrite != lastbuf) {
-#ifdef __sgi
-               errno_msg("%s/%d: write error %d, expected %lld, last buffer", 
-#else
                errno_msg("%s/%d: write error %d, expected %d, last buffer", 
-#endif
                                __FILE__, __LINE__,
                                nwrite, lastbuf);
                retval = 1;
@@ -845,7 +833,7 @@ static      char            buffer[256];
 }
 
 
-#if defined(__sgi) || defined(linux)
+#if defined(linux)
 
 extern char *
 xflags_to_string(
@@ -913,7 +901,7 @@ print_state(
        fprintf(stdout, "dt_blksize     %d\n", dmstat->dt_blksize);
        fprintf(stdout, "dt_blocks      %lld\n", (long long) dmstat->dt_blocks);
 
-#if defined(__sgi) || defined(linux)
+#if defined(linux)
        fprintf(stdout, "dt_xfs_igen    %d\n",  dmstat->dt_xfs_igen);
        fprintf(stdout, "dt_xfs_xflags  %s\n",
                xflags_to_string(dmstat->dt_xfs_xflags));
index 968395574727a3eb4b2717af87819caa64c593eb..6701fcac6e889bc487bbe8b3be078a6f91071cc0 100644 (file)
@@ -245,7 +245,7 @@ check_lockstate(
                errno_msg("Can't query file access rights");
                return(1);
        }
-#if defined(__sgi) || defined(linux)
+#if defined(linux)
        /*
         * There are no access rights on the SGI. 1 means it's
         * there.
index 29f9f042ad323b9c49afeb16af7d8df8eac79ec4..95c914d15a2e9d4abee8e0dc829f2d03a0cddfcf 100644 (file)
@@ -22,9 +22,6 @@
 #ifdef linux
 #include <dmapi.h>
 #endif
-#ifdef __sgi
-#include <sys/dmi.h>
-#endif
 
 int
 main( int argc, char **argv )
index 15d4828882373c21ae5a6403c40d07aac736ee34..0b28f8fc172f6c6487f2a6ae0436fb500903aeee 100644 (file)
@@ -22,9 +22,6 @@
 #ifdef linux
 #include <dmapi.h>
 #endif
-#ifdef __sgi
-#include <sys/dmi.h>
-#endif
 
 int
 main( int argc, char **argv )
index 053614a9df9c95857ff3a12f9f84e54e9a800b15..dab49df5c0a250f482b030a344f35959bbd902f5 100644 (file)
@@ -22,9 +22,6 @@
 #ifdef linux
 #include <dmapi.h>
 #endif
-#ifdef __sgi
-#include <sys/dmi.h>
-#endif
 
 int
 main( int argc, char **argv )
index b19aaddbed4f0e1f3c0b53ead2dddb897409502d..a822de79adb4bdfa82efce825172d27bdde33d00 100644 (file)
@@ -24,9 +24,6 @@
 #ifdef linux
 #include <dmapi.h>
 #endif
-#ifdef __sgi
-#include <sys/dmi.h>
-#endif
 
 int
 main( int argc, char **argv )
index 2df4f018eded9fe7f4b5422740453a44215cba74..0a7141e40cfc8b4ea87a195af8606b214e6ed54d 100644 (file)
@@ -23,9 +23,6 @@
 #ifdef linux
 #include <dmapi.h>
 #endif
-#ifdef __sgi
-#include <sys/dmi.h>
-#endif
 
 int
 main( int argc, char **argv )
index 2b6a269d748f24890fdc58e32b402018b08f7751..dc4f116601e0b9d1d467331aa3bdd7111cce2a9b 100644 (file)
@@ -22,9 +22,6 @@
 #ifdef linux
 #include <dmapi.h>
 #endif
-#ifdef __sgi
-#include <sys/dmi.h>
-#endif
 
 int
 main( int argc, char **argv )
index bd0dc92cde04daaa71ec716142ba96c142d7286d..33fdf8366d3613df2ccf0439b0fb24d46145819e 100644 (file)
@@ -43,11 +43,7 @@ in the call, and sid is the session ID whose attributes you are interested in.
 #define HDR  "%s: token %d sequence %d\n"
 #define VALS "\t%-15s %s\n"
 #define VALD "\t%-15s %d\n"
-#ifdef __sgi
-#define VALLLD "\t%-15s %lld\n"
-#else
 #define VALLLD "\t%-15s %ld\n"
-#endif
 
 #ifndef linux
 extern char    *sys_errlist[];
index 18e5757669c689e339ec34aae6d5f47a1bf0b24f..1047e8742e5c0b168775f466d43be54bdceaf729 100644 (file)
  */
 
 #include <sys/types.h>
-#ifdef __sgi
-#include <sys/fs/xfs_itable.h>
-#include <sys/syssgi.h>
-#include <sys/uuid.h>
-#include <sys/fs/xfs_fsops.h>
-#endif
-
 #include <errno.h>
 #include <fcntl.h>
 #include <malloc.h>
index afe2c27aa2e2a3480c28c2289c6ba749e0375f67..266119c70092c0f07eeb2ea0f605fe80a081ef37 100644 (file)
@@ -965,10 +965,10 @@ set_disposition(
        /* Metadata events. */
 
        DMEV_SET(DM_EVENT_ATTRIBUTE, eventlist);
-#if    ! defined ( __sgi ) && ! defined ( VERITAS_21 ) && !defined(linux)
+#if    !defined(VERITAS_21) && !defined(linux)
        DMEV_SET(DM_EVENT_CANCEL, eventlist);   /* not supported on SGI */
 #endif
-#if !defined( __sgi) && !defined(linux)
+#if !defined(linux)
        DMEV_SET(DM_EVENT_CLOSE, eventlist);    /* not supported on SGI */
 #endif
        DMEV_SET(DM_EVENT_DESTROY, eventlist);
@@ -1051,10 +1051,10 @@ set_events(
        /* Metadata events. */
 
        DMEV_SET(DM_EVENT_ATTRIBUTE, eventlist);
-#if    ! defined ( __sgi ) && ! defined ( VERITAS_21 ) && ! defined(linux)
+#if    !defined(VERITAS_21) && !defined(linux)
        DMEV_SET(DM_EVENT_CANCEL, eventlist);   /* not supported on SGI */
 #endif
-#if !defined( __sgi) && !defined(linux)
+#if !defined(linux)
        DMEV_SET(DM_EVENT_CLOSE, eventlist);    /* not supported on SGI */
 #endif
        DMEV_SET(DM_EVENT_DESTROY, eventlist);
index 8dada318f7a10fdb16f9b583176990684f2a25d1..86aeb07b957c160c44486c38aadbe97265ef7f45 100644 (file)
 
 #include <sys/types.h>
 #include <string.h>
-#ifdef __sgi
-#include <sys/syssgi.h>
-#include <sys/uuid.h>
-#include <sys/fs/xfs_fsops.h>
-#endif
-
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
-
 #include <lib/dmport.h>
 
 char *Progname;
@@ -56,11 +49,6 @@ main(
        int             argc,
        char            **argv)
 {
-#ifdef __sgi
-       xfs_fsop_geom_t geom;
-       char            *uuid_str;
-       u_int           status;
-#endif
        char            *name;
        int             fd;
        void            *fshanp;
@@ -85,15 +73,6 @@ main(
                        strerror(errno));
                exit(1);
        }
-
-#ifdef __sgi
-       syssgi(SGI_XFS_FSOPERATIONS, fd, XFS_FS_GEOMETRY, NULL, &geom);
-
-       uuid_to_string(&geom.uuid, &uuid_str, &status);
-
-       fprintf(stdout, "fshandle %s, uuid %s, %s\n",
-               buffer, uuid_str, argv[1]);
-#endif
        fprintf(stdout, "fshandle %s, %s\n",
                buffer, argv[1]);
        exit(0);
index e6d0086983dd231c0a7bec170c669dbf65a5a86f..ad0193117cb779fcc0adfee9e1a1b0f607ae8124 100644 (file)
@@ -123,31 +123,6 @@ main(
          exit(1);
        }
 
-       /*--------------------------------
-        * EXAMINE /usr/include/sys/dmi.h:
-        *--------------------------------
-        */
-#ifdef __sgi
-#define DMAPI_HDR "/usr/include/sys/dmi.h"
-
-       if (stat(DMAPI_HDR, &stat_buf)==-1){
-         if (errno==ENOENT) { 
-           printf( "You are missing a vital DMAPI file: %s\n", DMAPI_HDR);
-         }
-         else {
-           printf( "ERROR: could not stat %s (%s)\n", DMAPI_HDR, strerror(errno));
-         }
-       }
-       else {
-         if (stat_buf.st_size <= 15000) {
-           printf("You appear to have an old version of a vital DMAPI file: %s\n", DMAPI_HDR);
-         }
-         else if (Vflag) {
-           printf("(You appear to have the correct version of %s\n", DMAPI_HDR);
-         }
-       }
-#endif
-       
        /*--------------------------
         * RESOLVE KERNEL PRESENCE:
         *--------------------------
index c3ecf9295d0c8aaebd6221b68adb99a70324e046..1ad778ed1a3e39d7ffa24e3a36ab1b8db7dd5719 100644 (file)
@@ -736,7 +736,7 @@ handle_message(
       respcode = ENOSPC;
       break;
 
-    case DM_EVENT_DEBUT:               /* not supported on SGI */
+    case DM_EVENT_DEBUT:
       printf(HDR VALS,
             "debut", msg->ev_token, msg->ev_sequence,
             "object",          hans1);
@@ -843,7 +843,7 @@ handle_message(
       respond = 0;
       break;
 
-    case DM_EVENT_CLOSE:       /* not supported on SGI */
+    case DM_EVENT_CLOSE:
       printf(HDR VALS,
             "close", msg->ev_token, msg->ev_sequence,
             "object",          hans1);
@@ -1024,11 +1024,11 @@ set_disposition(
        /* Metadata events. */
 
        DMEV_SET(DM_EVENT_ATTRIBUTE, eventlist);
-#if    ! defined ( __sgi ) && ! defined ( VERITAS ) && ! defined(linux)
-       DMEV_SET(DM_EVENT_CANCEL, eventlist);   /* not supported on SGI */
+#if    !defined(VERITAS) && !defined(linux)
+       DMEV_SET(DM_EVENT_CANCEL, eventlist);
 #endif
-#if !defined(__sgi) && !defined(linux)
-       DMEV_SET(DM_EVENT_CLOSE, eventlist);    /* not supported on SGI */
+#if !defined(linux)
+       DMEV_SET(DM_EVENT_CLOSE, eventlist);
 #endif
        DMEV_SET(DM_EVENT_DESTROY, eventlist);
 
@@ -1103,11 +1103,11 @@ set_events(
        /* Metadata events. */
 
        DMEV_SET(DM_EVENT_ATTRIBUTE, eventlist);
-#if    ! defined ( __sgi ) && ! defined ( VERITAS ) && !defined(linux)
-       DMEV_SET(DM_EVENT_CANCEL, eventlist);   /* not supported on SGI */
+#if    !defined(VERITAS) && !defined(linux)
+       DMEV_SET(DM_EVENT_CANCEL, eventlist);
 #endif
-#if !defined(__sgi) && !defined(linux)
-       DMEV_SET(DM_EVENT_CLOSE, eventlist);    /* not supported on SGI */
+#if !defined(linux)
+       DMEV_SET(DM_EVENT_CLOSE, eventlist);
 #endif
        DMEV_SET(DM_EVENT_DESTROY, eventlist);
 
index a0fc4cc28f0006b609504b86f544a50a8d3a7167..0f8f0b193c4d149ef61f42766d8821e2674e28c0 100644 (file)
@@ -94,18 +94,9 @@ static       struct  {
        FLAG(PROT_READ, FL_PROT),
        FLAG(PROT_WRITE, FL_PROT),
        FLAG(PROT_EXEC, FL_PROT),
-#ifdef __sgi
-       FLAG(PROT_EXECUTE, FL_PROT),
-#endif
        FLAG(MAP_SHARED, FL_MAP),
        FLAG(MAP_PRIVATE, FL_MAP),
        FLAG(MAP_FIXED, FL_MAP),
-#ifdef __sgi
-       FLAG(MAP_RENAME, FL_MAP),
-       FLAG(MAP_AUTOGROW, FL_MAP),
-       FLAG(MAP_LOCAL, FL_MAP),
-       FLAG(MAP_AUTORESRV, FL_MAP),
-#endif
        FLAG(MAP_NONE, FL_MAP),
 };
 
@@ -145,9 +136,6 @@ main(int argc, char * argv[])
        ifile->flags[FL_PROT].value = PROT_READ;
        ifile->flags[FL_OPEN].value = O_RDONLY;
        ofile->flags[FL_MAP].value = MAP_SHARED;
-#ifdef __sgi
-       ofile->flags[FL_MAP].value = MAP_AUTOGROW;
-#endif
        ofile->flags[FL_PROT].value = PROT_WRITE;
        ofile->flags[FL_OPEN].value = O_RDWR|O_CREAT;
 
index 766d7674f30537d2f09aa502cf53af2ce8bf453f..7266713e27faf8e60c3d7863cd0a53a682a95902 100644 (file)
@@ -210,18 +210,9 @@ main(
                      test_file);
            }
            else {
-#ifdef __sgi
-             if ((statbuf.st_atim.tv_sec == checkbuf.st_atim.tv_sec) &&
-             (statbuf.st_atim.tv_nsec == checkbuf.st_atim.tv_nsec) &&
-             (statbuf.st_mtim.tv_sec == checkbuf.st_mtim.tv_sec) &&
-             (statbuf.st_mtim.tv_nsec == checkbuf.st_mtim.tv_nsec) &&
-             (statbuf.st_ctim.tv_sec == checkbuf.st_ctim.tv_sec) &&
-             (statbuf.st_ctim.tv_nsec == checkbuf.st_ctim.tv_nsec))
-#else
              if ((statbuf.st_atime == checkbuf.st_atime) &&
              (statbuf.st_mtime == checkbuf.st_mtime) &&
              (statbuf.st_ctime == checkbuf.st_ctime))
-#endif
                {
                if (Vflag) {
                  printf("Report: time stamp unchanged by write\n");
@@ -267,18 +258,9 @@ main(
                      test_file);
            }
            else {
-#ifdef __sgi
-             if ((statbuf.st_atim.tv_sec == checkbuf.st_atim.tv_sec) &&
-             (statbuf.st_atim.tv_nsec == checkbuf.st_atim.tv_nsec) &&
-             (statbuf.st_mtim.tv_sec == checkbuf.st_mtim.tv_sec) &&
-             (statbuf.st_mtim.tv_nsec == checkbuf.st_mtim.tv_nsec) &&
-             (statbuf.st_ctim.tv_sec == checkbuf.st_ctim.tv_sec) &&
-             (statbuf.st_ctim.tv_nsec == checkbuf.st_ctim.tv_nsec))
-#else
              if ((statbuf.st_atime == checkbuf.st_atime) &&
              (statbuf.st_mtime == checkbuf.st_mtime) &&
              (statbuf.st_ctime == checkbuf.st_ctime))
-#endif
                {
                if (Vflag) {
                  printf("Report: time stamp unchanged by read\n");
@@ -344,31 +326,6 @@ main(
            printf("Report: \"0x%x\" was written and \"0x%x\" was read "
                   "at byte %d million.\n", ch, *(u_char *)bufp, ch);
          }
-
-#ifdef __sgi
-         /* Try writing a character in the 2 gigabyte (2^31) range */
-         sprintf(bufp, "%c", ch);
-         if (dm_write_invis(sid, hanp, hlen, DM_NO_TOKEN, 0, 
-                            2147840000, 1, bufp)==-1){
-           printf("Error invis-writing %s at 2 gigabytes: %s\n", 
-                  (u_char *)bufp, ERR_NAME);
-         }
-         else if (dm_read_invis(sid, hanp, hlen, DM_NO_TOKEN,
-                                2147840000, 1, bufp)==-1){
-           printf("Error invis-reading at 2 gigabytes: %s\n",
-                  ERR_NAME);
-         }
-         else if (((u_char *)bufp)[0]!=ch) {
-           printf("Error: wanted to read %c and instead got %s.\n",
-                  ch, (u_char *)bufp);
-         }
-         else if (Vflag) {
-           printf("Report: \"0x%x\" was written and \"0x%x\" was read "
-                  "at 2147840000 bytes\n\t(a bit over 2 gigabytes).\n", 
-                  ch, *(u_char *)bufp);
-         }
-#endif
-
          printf("\t(errno subtests beginning...)\n");
          /**** WRITE tests ****/
          /*---------------------------------------------------------*/
index fe6b84ad52a7b0a99c5bc72cc9493b782d48d3eb..29580ddec60d93527bcc62c7235e4379ee60014c 100644 (file)
 #define TINFO    16   /* Test information flag */
 #define TCONF    32   /* Test not appropriate for configuration flag */
 
-/*
- * To determine if you are on a Umk or Unicos system,
- * use sysconf(_SC_CRAY_SYSTEM).  But since _SC_CRAY_SYSTEM
- * is not defined until 90, it will be define here if not already
- * defined.
- * if ( sysconf(_SC_CRAY_SYSTEM) == 1 )
- *    on UMK
- * else   # returned 0 or -1 
- *    on Unicos
- * This is only being done on CRAY systems.
- */
-#ifdef CRAY
-#ifndef _SC_CRAY_SYSTEM
-#define _SC_CRAY_SYSTEM  140
-#endif /* ! _SC_CRAY_SYSTEM */
-#endif /* CRAY */
-
 /*
  * Ensure that NUMSIGS is defined.
  * It should be defined in signal.h or sys/signal.h on
index 166e189275b2e0c0bbbf37fea4cd889c208c4fe4..bf85cc5933da6e5738c3674b2c1242994e280a0e 100644 (file)
 #define LIO_IO_SYNCV            00020   /* single-buffer readv/writev */
 #define LIO_IO_SYNCP            00040   /* pread/pwrite */
 
-#ifdef sgi
-#define LIO_IO_ATYPES           00077   /* all io types */
-#define LIO_IO_TYPES            00061   /* all io types, non-async */
-#endif /* sgi */
 #ifdef linux
 #define LIO_IO_TYPES            00021   /* all io types */
 #endif /* linux */
-#ifdef CRAY
-#define LIO_IO_TYPES            00017   /* all io types */
-#endif /* CRAY */
 
 #define LIO_WAIT_NONE           00010000 /* return asap -- use with care */
 #define LIO_WAIT_ACTIVE         00020000 /* spin looking at iosw fields, or EINPROGRESS */
 #define LIO_WAIT_RECALL         00040000 /* call recall(2)/aio_suspend(3) */
 #define LIO_WAIT_SIGPAUSE       00100000 /* call pause */
 #define LIO_WAIT_SIGACTIVE      00200000 /* spin waiting for signal */
-#ifdef sgi
-#define LIO_WAIT_CBSUSPEND      00400000 /* aio_suspend waiting for callback */
-#define LIO_WAIT_SIGSUSPEND     01000000 /* aio_suspend waiting for signal */
-#define LIO_WAIT_ATYPES         01760000 /* all async wait types, except nowait */
-#define LIO_WAIT_TYPES          00020000 /* all sync wait types (sorta) */
-#endif /* sgi */
+
 #ifdef linux
 #define LIO_WAIT_TYPES          00300000 /* all wait types, except nowait */
 #endif /* linux */
-#ifdef CRAY
-#define LIO_WAIT_TYPES          00360000 /* all wait types, except nowait */
-#endif /* CRAY */
 
 /* meta wait io  */
 /*  00  000 0000 */
 
-#ifdef sgi
-/* all callback wait types */
-#define LIO_WAIT_CBTYPES       (LIO_WAIT_CBSUSPEND)
-/* all signal wait types */
-#define LIO_WAIT_SIGTYPES      (LIO_WAIT_SIGPAUSE|LIO_WAIT_SIGACTIVE|LIO_WAIT_SIGSUSPEND)
-/* all aio_{read,write} or lio_listio */
-#define LIO_IO_ASYNC_TYPES     (LIO_IO_ASYNC|LIO_IO_SLISTIO|LIO_IO_ALISTIO)
-#endif /* sgi */
 #ifdef linux
 /* all signal wait types */
 #define LIO_WAIT_SIGTYPES      (LIO_WAIT_SIGPAUSE)
 #endif /* linux */
-#ifdef CRAY
-/* all signal wait types */
-#define LIO_WAIT_SIGTYPES      (LIO_WAIT_SIGPAUSE|LIO_WAIT_SIGACTIVE)
-#endif /* CRAY */
 
 /*
  * This bit provides a way to randomly pick an io type and wait method.
@@ -110,17 +83,6 @@ int  lio_read_buffer(int fd, int method, char *buffer, int size,
                     int sig, char **errmsg, long wrd);
 int  lio_random_methods(long mask);
 
-#if CRAY
-#include <sys/iosw.h>
-int  lio_wait4asyncio(int method, int fd, struct iosw **statptr);
-int  lio_check_asyncio(char *io_type, int size, struct iosw *status);
-#endif /* CRAY */
-#ifdef sgi
-#include <aio.h>
-int  lio_wait4asyncio(int method, int fd, aiocb_t *aiocbp);
-int  lio_check_asyncio(char *io_type, int size, aiocb_t *aiocbp, int method);
-#endif /* sgi */
-
 /*
  * Define the structure that contains the infomation that is used
  * by the parsing and help functions.
index e2fe8b278df5157a1f4c6c6982162037e368923f..193852ffb978b88f6974ccc67986dbf518dedb90 100644 (file)
 #endif
 #endif
 
-#ifndef CRAY
 #ifndef BSIZE 
 #define BSIZE BBSIZE
 #endif
-#endif
 
 /***********************************************************************
  * Define option_t structure type.
index a48cc08b9bbead251bee68066174e1ba21fac440..4a6eaced2435463262aadfa7d2de093e5746153c 100644 (file)
@@ -91,18 +91,10 @@ struct wlog_rec {
  */
 
 struct wlog_rec_disk {
-#ifdef sgi     /* sgi is pissy about fields > 32 bit, even cc -mips3 */
-    uint    w_offset    : 32;      /* file offset                  */
-    uint    w_extra0    : 32;       /* EXTRA BITS IN WORD 0         */
-#endif
 #ifdef linux
     uint    w_offset    : 32;      /* file offset                  */
     uint    w_extra0    : 32;       /* EXTRA BITS IN WORD 0         */
 #endif
-#ifdef CRAY
-    uint    w_offset    : 44;      /* file offset                  */
-    uint    w_extra0    : 20;       /* EXTRA BITS IN WORD 0         */
-#endif
 
     uint    w_nbytes    : 32;      /* # bytes written              */
     uint    w_oflags   : 32;       /* low-order open() flags       */
index f6be3e769be3d28fd9be86ffe48c7726cd1366ce..2e53ad559601ef8a7537a8ca34b8a97d6fac0fcb 100644 (file)
@@ -75,87 +75,8 @@ char *buffer;
 int bsize;
 int offset;
 {
-#if CRAY
-       
-   int cnt;
-   int tmp;
-   char *chr;
-   long *wptr;
-   long word;
-   int woff;   /* file offset for the word */
-   int boff;   /* buffer offset or index */
-   int num_full_words;
-
-    num_full_words = bsize/NBPW;
-    boff = 0;
-
-    if ( cnt=(offset % NBPW) ) {       /* partial word */
-
-       woff = offset - cnt;
-#if DEBUG
-printf("partial at beginning, cnt = %d, woff = %d\n", cnt, woff);
-#endif
-
-       word = ((LOWER16BITS(pid) << 48) | (LOWER32BITS(woff) << 16) | LOWER16BITS(pid));
-
-       chr = (char *)&word;
-
-       for (tmp=0; tmp<cnt; tmp++) {   /* skip unused bytes */
-           chr++;
-        }
-
-       for (; boff<(NBPW-cnt) && boff<bsize; boff++, chr++) {
-           buffer[boff] = *chr;
-       }
-    }
-
-    /*
-     * full words 
-     */
-
-    num_full_words = (bsize-boff)/NBPW;
-       
-    woff = offset+boff;
-       
-    for (cnt=0; cnt<num_full_words; woff += NBPW, cnt++ ) {
-
-       word = ((LOWER16BITS(pid) << 48) | (LOWER32BITS(woff) << 16) | LOWER16BITS(pid));
-
-       chr = (char *)&word;
-       for(tmp=0; tmp<NBPW; tmp++, chr++) {
-           buffer[boff++] = *chr;
-       }
-/****** Only if wptr is a word ellined
-       wptr = (long *)&buffer[boff];
-       *wptr = word;
-       boff += NBPW;
-*****/
-
-    }
-
-    /*
-     * partial word at end of buffer
-     */
-
-    if ( cnt=((bsize-boff) % NBPW) ) {
-#if DEBUG
-printf("partial at end\n");
-#endif
-       word = ((LOWER16BITS(pid) << 48) | (LOWER32BITS(woff) << 16) | LOWER16BITS(pid));
-
-       chr = (char *)&word;
-
-       for (tmp=0; tmp<cnt && boff<bsize; tmp++, chr++) {
-           buffer[boff++] = *chr;
-       }
-    }
-
-    return bsize;
-
-#else
        return -1;      /* not support on non-64 bits word machines  */
 
-#endif
 
 } 
 
@@ -171,112 +92,12 @@ int bsize;
 int offset;
 char **errmsg;
 {
-#if CRAY
-       
-   int cnt;
-   int tmp;
-   char *chr;
-   long *wptr;
-   long word;
-   int woff;   /* file offset for the word */
-   int boff;   /* buffer offset or index */
-   int num_full_words;
-
-
-    if ( errmsg != NULL ) {
-        *errmsg = Errmsg;
-    }
-
-
-    num_full_words = bsize/NBPW;
-    boff = 0;
-
-    if ( cnt=(offset % NBPW) ) {       /* partial word */
-       woff = offset - cnt;
-       word = ((LOWER16BITS(pid) << 48) | (LOWER32BITS(woff) << 16) | LOWER16BITS(pid));
-
-       chr = (char *)&word;
-
-       for (tmp=0; tmp<cnt; tmp++) {   /* skip unused bytes */
-           chr++;
-        }
-
-       for (; boff<(NBPW-cnt) && boff<bsize; boff++, chr++) {
-           if (buffer[boff] != *chr) {
-               sprintf(Errmsg, "Data mismatch at offset %d, exp:%#o, act:%#o",
-                   offset+boff, *chr, buffer[boff]);
-               return offset+boff;
-           }
-       }
-    }
-
-    /*
-     * full words 
-     */
-
-    num_full_words = (bsize-boff)/NBPW;
-       
-    woff = offset+boff;
-       
-    for (cnt=0; cnt<num_full_words; woff += NBPW, cnt++ ) {
-       word = ((LOWER16BITS(pid) << 48) | (LOWER32BITS(woff) << 16) | LOWER16BITS(pid));
-
-       chr = (char *)&word;
-       for(tmp=0; tmp<NBPW; tmp++, boff++, chr++) {
-           if ( buffer[boff] != *chr ) {
-               sprintf(Errmsg, "Data mismatch at offset %d, exp:%#o, act:%#o",
-                   woff, *chr, buffer[boff]);
-               return woff;
-           }
-       }
-
-/****** only if a word elined
-       wptr = (long *)&buffer[boff];
-       if ( *wptr != word ) {
-           sprintf(Errmsg, "Data mismatch at offset %d, exp:%#o, act:%#o",
-               woff, word, *wptr);
-           return woff;
-       }
-       boff += NBPW;
-******/
-    }
-
-    /*
-     * partial word at end of buffer
-     */
-
-    if ( cnt=((bsize-boff) % NBPW) ) {
-#if DEBUG
-printf("partial at end\n");
-#endif
-       word = ((LOWER16BITS(pid) << 48) | (LOWER32BITS(woff) << 16) | LOWER16BITS(pid));
-
-       chr = (char *)&word;
-
-
-       for (tmp=0; tmp<cnt && boff<bsize; boff++, tmp++, chr++) {
-           if ( buffer[boff] != *chr ) {
-               sprintf(Errmsg, "Data mismatch at offset %d, exp:%#o, act:%#o",
-                   offset+boff, *chr, buffer[boff]);
-               return offset+boff;
-           }
-       }
-    }
-
-    sprintf(Errmsg, "all %d bytes match desired pattern", bsize);
-    return -1;      /* buffer is ok */
-
-#else
-       
     if ( errmsg != NULL ) {
         *errmsg = Errmsg;
     }
     sprintf(Errmsg, "Not supported on this OS.");
     return 0;
 
-#endif
-
-
 }       /* end of datapidchk */
 
 #if UNIT_TEST
index cb68fe5e79701e988e1ffcbcb429499175f1beed..2e8dacbffcc8154b1ddfb258d9b3fb664cb410c3 100644 (file)
@@ -338,27 +338,7 @@ char       **errp;
        }
 
        nmults = ((max - min) / mult) + 1;
-#if CRAY 
-        /*
-         * If max is less than 2gb, then the value can fit in 32 bits
-         * and the standard lrand48() routine can be used.
-         */
-        if ( max <= (long)2147483647 ) {
-            return (long) (min + (((long)lrand48() % nmults) * mult));
-        } else {
-            /*
-             * max is greater than 2gb - meeds more than 32 bits.
-             * Since lrand48 only will get a number up to 32bits.
-             */
-           long randnum;
-            randnum=divider(min, max, 0, -1);
-            return (long) (min + ((randnum % nmults) * mult));
-        }
-
-#else
         return (min + ((lrand48() % nmults) * mult));
-#endif
-
 }
 
 /*
@@ -430,7 +410,7 @@ char        **errp;
        }
 
        nmults = ((max - min) / mult) + 1;
-#if CRAY || (_MIPS_SZLONG == 64)
+#if (_MIPS_SZLONG == 64)
         /*
          * If max is less than 2gb, then the value can fit in 32 bits
          * and the standard lrand48() routine can be used.
@@ -648,8 +628,6 @@ random_bit(long mask)
     /*
      * get the number of bits set in mask
      */
-#ifndef CRAY
-
         bit=1L;
         for ( nshift=0; nshift<sizeof(long)*8; nshift++) {
                 if ( mask & bit )
@@ -657,10 +635,6 @@ random_bit(long mask)
                 bit=bit<<1;
         }
 
-#else
-        nbits=_popcnt(mask);
-#endif  /* if CRAY */
-
     /*
      * randomly choose a bit.
      */
@@ -740,14 +714,10 @@ char **argv;
     int ind;
     int cnt, iter=10;
     int imin=0, imult=1, itmin, itmax=0;
-#if CRAY
-    int imax=6*GIG;    /* higher than 32 bits */
-#else
     int imax=1048576;
-#endif
 
     long lret, lmin=0, lmult=1, ltmin, ltmax=0; 
-#if CRAY || (_MIPS_SZLONG == 64)
+#if (_MIPS_SZLONG == 64)
     long lmax=6*(long)GIG;     /* higher than 32 bits */
 #else
     long lmax=1048576;
index 011eaafa6c0ec285a288ef8795ea535dc350c8e9..c0d7d974b731db93abb211af9efa4e4bb297aa21 100644 (file)
  *
  ****************************************************************************/
 
-#if CRAY
-#define B_MULT BSIZE           /* block size */
-#elif sgi
-#define B_MULT BBSIZE          /* block size */
-#elif linux
+#if linux
 #define B_MULT DEV_BSIZE       /* block size */
 #endif
 
index c509af387d96d546425383b42377c0534fe9452d..82386e32504709bad2936b4fcfeb3aedf4162039 100644 (file)
  *                                             char **errmsg, long wrd);
  *  int  lio_read_buffer(int fd, int method, char *buffer, int size,
  *                                             char **errmsg, long wrd);
- *
- *  #ifdef CRAY
- *  int  lio_wait4asyncio(int method, int fd, struct iosw **statptr)
- *  int  lio_check_asyncio(char *io_type, int size, struct iosw *status)
- *  #endif
- *  #ifdef sgi
- *  int  lio_wait4asyncio(int method, int fd, aiocb_t *aiocbp)
- *  int  lio_check_asyncio(char *io_type, int size, aiocb_t *aiocbp, int method)
- *  #endif
- *
  *  int  lio_parse_io_arg1(char *string)
  *  void lio_help1(char *prefix);
  *
 #include <sys/types.h>
 #include <sys/file.h>
 #include <signal.h>
-#ifdef CRAY
-#include <sys/secparm.h>
-#include <sys/iosw.h>
-#include <sys/listio.h>
-#else
-/* for linux or sgi */
 #include <sys/uio.h> /* readv(2)/writev(2) */
 #include <string.h>
 #include <strings.h>
-#endif
-#ifdef sgi
-#include <aio.h>
-#endif
 #include <stdlib.h> /* atoi, abs */
 
 #include "tlibio.h"            /* defines LIO* marcos */
 #ifndef linux
 static void lio_async_signal_handler();
 #endif
-#ifdef sgi
-static void lio_async_callback_handler();
-#endif
 
 /*
  * Define the structure as used in lio_parse_arg1 and lio_help1
@@ -121,17 +98,10 @@ struct lio_info_type  Lio_info1[] = {
     { "p", LIO_IO_ASYNC|LIO_WAIT_SIGACTIVE, "async i/o using a loop to wait for a signal" },
     { "b", LIO_IO_ASYNC|LIO_WAIT_SIGPAUSE, "async i/o using pause" },
     { "a", LIO_IO_ASYNC|LIO_WAIT_RECALL, "async i/o using recall/aio_suspend" },
-#ifdef sgi
-    { "r", 
-       LIO_RANDOM|LIO_IO_TYPES|LIO_WAIT_TYPES, "random sync i/o types and wait methods" },
-    { "R", 
-       LIO_RANDOM|LIO_IO_ATYPES|LIO_WAIT_ATYPES, "random i/o types and wait methods" },
-#else
     { "r", 
        LIO_RANDOM|LIO_IO_TYPES|LIO_WAIT_TYPES, "random i/o types and wait methods" },
     { "R", 
        LIO_RANDOM|LIO_IO_TYPES|LIO_WAIT_TYPES, "random i/o types and wait methods" },
-#endif
     { "l", LIO_IO_SLISTIO|LIO_WAIT_RECALL, "single stride sync listio" },
     { "L", LIO_IO_ALISTIO|LIO_WAIT_RECALL, "single stride async listio using recall" },
     { "X", LIO_IO_ALISTIO|LIO_WAIT_SIGPAUSE, "single stride async listio using pause" },
@@ -165,10 +135,6 @@ char Lio_SysCall[PATH_MAX];        /* string containing last i/o system call */
 
 static volatile int Received_signal = 0;       /* number of signals received */
 static volatile int Rec_signal;
-#ifdef sgi
-static volatile int Received_callback = 0;     /* number of callbacks received */
-static volatile int Rec_callback;
-#endif
 static char Errormsg[500];
 static int Debug_level = 0;
 
@@ -416,25 +382,6 @@ lio_async_signal_handler(int sig)
 }
 #endif
 
-#ifdef sgi
-/***********************************************************************
- * This is an internal callback handler.
- * If the handler is called, it will increment the Received_callback
- * global variable.
- ***********************************************************************/
-static void
-lio_async_callback_handler(sigval_t sigval)
-{
-       if ( Debug_level )
-           printf("DEBUG %s/%d: received callback, nbytes=%d, a callback called %d times\n",
-               __FILE__, __LINE__, sigval.sival_int, Received_callback+1);
-
-       Received_callback++;
-
-       return;
-}
-#endif /* sgi */
-
 /***********************************************************************
  * lio_random_methods
  * This function will randomly choose an io type and wait method
@@ -523,18 +470,7 @@ long wrd;  /* to allow future features, use zero for now */
     int omethod = method;
     int listio_cmd;            /* Holds the listio/lio_listio cmd */
 #endif
-#ifdef  CRAY
-    struct listreq request;    /* Used when a listio is wanted */
-    struct iosw status, *statptr[1];  
-#else
-    /* for linux or sgi */
     struct iovec iov;  /* iovec for writev(2) */
-#endif
-#ifdef sgi
-    aiocb_t aiocbp;    /* POSIX aio control block */
-    aiocb_t *aiolist[1]; /* list of aio control blocks for lio_listio */
-    off64_t poffset;   /* pwrite(2) offset */
-#endif
 
     /*
      * If LIO_RANDOM bit specified, get new method randomly.
@@ -551,64 +487,9 @@ long wrd;  /* to allow future features, use zero for now */
        *errmsg = Errormsg;
 
     Rec_signal=Received_signal;        /* get the current number of signals received */
-#ifdef sgi
-    Rec_callback=Received_callback;    /* get the current number of callbacks received */
-#endif
-
-#ifdef  CRAY
-    bzero(&status, sizeof(struct iosw));
-    bzero(&request, sizeof(struct listreq));
-    statptr[0] = &status;
-#else
-    /* for linux or sgi */
     bzero(&iov, sizeof(struct iovec));
     iov.iov_base = buffer;
     iov.iov_len = size;
-#endif
-#ifdef sgi
-    bzero(&aiocbp, sizeof(aiocb_t));
-    aiocbp.aio_fildes = fd;
-    aiocbp.aio_nbytes = size;
-    aiocbp.aio_buf = buffer;
-/*    aiocbp.aio_offset = lseek( fd, 0, SEEK_CUR ); -- set below */
-    aiocbp.aio_sigevent.sigev_notify = SIGEV_NONE;
-    aiocbp.aio_sigevent.sigev_signo = 0;
-    aiocbp.aio_sigevent.sigev_func = NULL;
-    aiocbp.aio_sigevent.sigev_value.sival_int = 0;
-    aiolist[0] = &aiocbp;
-
-    if( (ret = lseek( fd, 0, SEEK_CUR )) == -1 ){
-       ret = 0;
-       /* If there is an error and it is not ESPIPE then kick out the error.
-        * If the fd is a fifo then we have to make sure that
-        * lio_random_methods() didn't select pwrite/pread; if it did then
-        * switch to write/read.
-        */
-       if( errno == ESPIPE ){
-               if( method & LIO_IO_SYNCP ){
-                       if( omethod & LIO_RANDOM ){
-                               method &= ~LIO_IO_SYNCP;
-                               method |= LIO_IO_SYNC;
-                               if( Debug_level > 2 )
-                                       printf("DEBUG %s/%d: random chosen method switched to %#o for fifo\n", __FILE__, __LINE__, method );
-                       }
-                       else if( Debug_level ){
-                               printf("DEBUG %s/%d: pwrite will fail when it writes to a fifo\n",
-                                      __FILE__, __LINE__ );
-                       }
-               }
-               /* else: let it ride */
-       }
-       else{
-               sprintf(Errormsg, "%s/%d lseek(fd=%d,0,SEEK_CUR) failed, errno=%d  %s",
-                       __FILE__, __LINE__, fd, errno, strerror(errno));
-               return -errno;
-       }
-    }
-    poffset = (off64_t)ret;
-    aiocbp.aio_offset = ret;
-
-#endif
 
     /*
      * If the LIO_USE_SIGNAL bit is not set, only use the signal
@@ -622,11 +503,6 @@ long wrd;  /* to allow future features, use zero for now */
        sig=0;  /* ignore signal parameter */
     }
 
-#ifdef sgi
-    if ( sig && (method & LIO_WAIT_CBTYPES) )
-       sig=0; /* ignore signal parameter */
-#endif
-
     /*
      * only setup signal hander if sig was specified and
      * a sig wait method was specified.
@@ -635,27 +511,6 @@ long wrd;  /* to allow future features, use zero for now */
      *** restoring the signal handler could be added ***
      */
 
-    if ( sig &&  (method & LIO_WAIT_SIGTYPES) ){
-#ifdef CRAY
-        sigctl(SCTL_REG, sig, lio_async_signal_handler);
-#endif
-#ifdef sgi
-        aiocbp.aio_sigevent.sigev_notify = SIGEV_SIGNAL;
-       aiocbp.aio_sigevent.sigev_signo = sig;
-        sigset(sig, lio_async_signal_handler);
-#endif /* sgi */
-    }
-#ifdef sgi
-    else if( method & LIO_WAIT_CBTYPES ){
-       /* sival_int just has to be something that I can use
-        * to identify the callback, and "size" happens to be handy...
-        */
-       aiocbp.aio_sigevent.sigev_notify = SIGEV_CALLBACK;
-       aiocbp.aio_sigevent.sigev_func = lio_async_callback_handler;
-       aiocbp.aio_sigevent.sigev_value.sival_int = size;
-    }
-#endif
-
     /*
      * Determine the system call that will be called and produce
      * the string of the system call and place it in Lio_SysCall.
@@ -700,182 +555,6 @@ long wrd; /* to allow future features, use zero for now */
 
     }
 
-    else if ( method & LIO_IO_ASYNC ) {
-#ifdef CRAY
-       sprintf(Lio_SysCall,
-           "writea(%d, buf, %d, &status, %d)", fd, size, sig);
-       io_type="writea";
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       sigoff();
-       if ((ret = writea(fd, buffer, size, &status, sig)) == -1) {
-           sprintf(Errormsg,
-               "%s/%d writea(%d, buf, %d, &stat, %d) ret:-1, errno=%d %s",
-                   __FILE__, __LINE__,
-               fd, size, sig, errno, strerror(errno));
-           sigon();
-           return -errno;
-       }
-#endif
-#ifdef sgi
-       sprintf(Lio_SysCall,
-           "aio_write(fildes=%d, buf, nbytes=%d, signo=%d)", fd, size, sig);
-       io_type="aio_write";
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       if( sig )
-               sighold( sig );
-       if ((ret = aio_write(&aiocbp)) == -1) {
-           sprintf(Errormsg,
-               "%s/%d aio_write(fildes=%d, buf, nbytes=%d, signo=%d) ret:-1, errno=%d %s",
-                   __FILE__, __LINE__,
-               fd, size, sig, errno, strerror(errno));
-           if( sig )
-               sigrelse( sig );
-           return -errno;
-       }
-#endif
-    } /* LIO_IO_ASYNC */
-
-    else if ( method & LIO_IO_SLISTIO ) {
-#ifdef CRAY
-       request.li_opcode = LO_WRITE;
-       request.li_fildes = fd;
-        request.li_buf = buffer;
-        request.li_nbyte = size;
-        request.li_status = &status;
-        request.li_signo = sig;
-        request.li_nstride = 0;
-        request.li_filstride = 0;
-        request.li_memstride = 0;
-
-       listio_cmd=LC_WAIT;
-       io_type="listio(2) sync write";
-
-       sprintf(Lio_SysCall, 
-               "listio(LC_WAIT, &req, 1) LO_WRITE, fd:%d, nbyte:%d",
-                fd, size);
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       sigoff();
-       if ( listio(listio_cmd, &request, 1) == -1 ) {
-            sprintf(Errormsg, "%s/%d %s failed, fd:%d, nbyte:%d errno=%d %s",
-                   __FILE__, __LINE__,
-               Lio_SysCall, fd, size, errno, strerror(errno));
-           sigon();
-            return -errno;
-        }
-
-       if ( Debug_level > 1 )
-            printf("DEBUG %s/%d: %s did not return -1\n",
-               __FILE__, __LINE__, Lio_SysCall);
-
-       ret=lio_check_asyncio(io_type, size,  &status);
-       return ret;
-
-#endif
-#ifdef sgi
-
-       aiocbp.aio_lio_opcode = LIO_WRITE;
-       listio_cmd=LIO_WAIT;
-       io_type="lio_listio(3) sync write";
-
-       sprintf(Lio_SysCall,
-               "lio_listio(LIO_WAIT, aiolist, 1, NULL) LIO_WRITE, fd:%d, nbyte:%d, sig:%d",
-                fd, size, sig );
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       if( sig )
-           sighold( sig );
-       if ( lio_listio(listio_cmd, aiolist, 1, NULL) == -1 ) {
-            sprintf(Errormsg, "%s/%d %s failed, fd:%d, nbyte:%d errno=%d %s",
-                   __FILE__, __LINE__,
-               Lio_SysCall, fd, size, errno, strerror(errno));
-           if( sig )
-               sigrelse( sig );
-            return -errno;
-        }
-
-       if ( Debug_level > 1 )
-            printf("DEBUG %s/%d: %s did not return -1\n",
-               __FILE__, __LINE__, Lio_SysCall);
-
-       ret=lio_check_asyncio(io_type, size,  &aiocbp, method);
-       return ret;
-#endif
-    } /* LIO_IO_SLISTIO */
-
-    else if ( method & LIO_IO_ALISTIO ) {
-#ifdef CRAY
-       request.li_opcode = LO_WRITE;
-       request.li_fildes = fd;
-        request.li_buf = buffer;
-        request.li_nbyte = size;
-        request.li_status = &status;
-        request.li_signo = sig;
-        request.li_nstride = 0;
-        request.li_filstride = 0;
-        request.li_memstride = 0;
-
-       listio_cmd=LC_START;
-       io_type="listio(2) async write";
-
-       sprintf(Lio_SysCall, 
-               "listio(LC_START, &req, 1) LO_WRITE, fd:%d, nbyte:%d",
-                fd, size);
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       sigoff();
-       if ( listio(listio_cmd, &request, 1) == -1 ) {
-            sprintf(Errormsg, "%s/%d %s failed, fd:%d, nbyte:%d errno=%d %s",
-                   __FILE__, __LINE__,
-               Lio_SysCall, fd, size, errno, strerror(errno));
-           sigon();
-            return -errno;
-        }
-#endif
-#ifdef sgi
-       aiocbp.aio_lio_opcode = LIO_WRITE;
-       listio_cmd=LIO_NOWAIT;
-       io_type="lio_listio(3) async write";
-
-       sprintf(Lio_SysCall,
-               "lio_listio(LIO_NOWAIT, aiolist, 1, NULL) LIO_WRITE, fd:%d, nbyte:%d",
-                fd, size);
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       if( sig )
-               sighold( sig );
-       if ( lio_listio(listio_cmd, aiolist, 1, NULL) == -1 ) {
-            sprintf(Errormsg, "%s/%d %s failed, fd:%d, nbyte:%d errno=%d %s",
-                   __FILE__, __LINE__,
-               Lio_SysCall, fd, size, errno, strerror(errno));
-           if( sig )
-               sigrelse( sig );
-            return -errno;
-        }
-#endif
-    }/* LIO_IO_ALISTIO */
-
-#ifndef CRAY
     else if ( method & LIO_IO_SYNCV ) {
        io_type="writev(2)";
 
@@ -904,54 +583,12 @@ long wrd; /* to allow future features, use zero for now */
 
         return ret;
     } /* LIO_IO_SYNCV */
-#endif
-
-#ifdef sgi
-    else if ( method & LIO_IO_SYNCP ) {
-       io_type="pwrite(2)";
-
-       sprintf(Lio_SysCall, 
-               "pwrite(%d, buf, %d, %lld)", fd, size, poffset);
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-       if ((ret = pwrite(fd, buffer, size, poffset)) == -1) {
-           sprintf(Errormsg, "%s/%d pwrite(%d, buf, %d, %lld) ret:-1, errno=%d %s",
-                   __FILE__, __LINE__,
-               fd, size, poffset, errno, strerror(errno));
-           return -errno;
-       }
-
-       if ( ret != size ) {
-            sprintf(Errormsg,
-               "%s/%d pwrite(%d, buf, %d, %lld) returned=%d",
-                   __FILE__, __LINE__,
-                   fd, size, poffset, ret);
-        }
-        else if ( Debug_level > 1 )
-            printf("DEBUG %s/%d: pwrite completed without error (ret %d)\n",
-                __FILE__, __LINE__, ret);
-
-        return ret;
-    } /* LIO_IO_SYNCP */
-#endif
 
     else {
        printf("DEBUG %s/%d: No I/O method chosen\n", __FILE__, __LINE__ );
        return -1;
     }
 
-    /*
-     * wait for async io to complete.
-     */
-#ifdef CRAY
-    ret=lio_wait4asyncio(method, fd, statptr);
-#endif
-#ifdef sgi
-    ret=lio_wait4asyncio(method, fd, &aiocbp);
-#endif
-
     /*
      * If there was an error waiting for async i/o to complete,
      * return the error value (errno) to the caller.
@@ -976,13 +613,6 @@ long wrd;  /* to allow future features, use zero for now */
      * have been updated but the actual i/o size if returned.
      */
     
-#ifdef CRAY
-    ret=lio_check_asyncio(io_type, size, &status);
-#endif
-#ifdef sgi
-    ret=lio_check_asyncio(io_type, size, &aiocbp, method);
-#endif
-
     return ret;
 }      /* end of lio_write_buffer */
 
@@ -1042,18 +672,7 @@ long wrd; /* to allow future features, use zero for now */
     int listio_cmd;            /* Holds the listio/lio_listio cmd */
     int omethod = method;
 #endif
-#ifdef  CRAY
-    struct listreq request;    /* Used when a listio is wanted */
-    struct iosw status, *statptr[1];  
-#else
-    /* for linux or sgi */
     struct iovec iov; /* iovec for readv(2) */
-#endif
-#ifdef sgi
-    aiocb_t aiocbp;    /* POSIX aio control block */
-    aiocb_t *aiolist[1]; /* list of aio control blocks for lio_listio */
-    off64_t poffset;   /* pread(2) offset */
-#endif
 
     /*
      * If LIO_RANDOM bit specified, get new method randomly.
@@ -1070,64 +689,9 @@ long wrd; /* to allow future features, use zero for now */
        *errmsg = Errormsg;
 
     Rec_signal=Received_signal;        /* get the current number of signals received */
-#ifdef sgi
-    Rec_callback=Received_callback;    /* get the current number of callbacks received */
-#endif
-
-#ifdef  CRAY
-    bzero(&status, sizeof(struct iosw));
-    bzero(&request, sizeof(struct listreq));
-    statptr[0] = &status;
-#else
-    /* for linux or sgi */
     bzero(&iov, sizeof(struct iovec));
     iov.iov_base = buffer;
     iov.iov_len = size;
-#endif
-#ifdef sgi
-    bzero(&aiocbp, sizeof(aiocb_t));
-    aiocbp.aio_fildes = fd;
-    aiocbp.aio_nbytes = size;
-    aiocbp.aio_buf = buffer;
-/*    aiocbp.aio_offset = lseek( fd, 0, SEEK_CUR ); -- set below */
-    aiocbp.aio_sigevent.sigev_notify = SIGEV_NONE;
-    aiocbp.aio_sigevent.sigev_signo = 0;
-    aiocbp.aio_sigevent.sigev_func = NULL;
-    aiocbp.aio_sigevent.sigev_value.sival_int = 0;
-    aiolist[0] = &aiocbp;
-
-    if( (ret = lseek( fd, 0, SEEK_CUR )) == -1 ){
-       ret = 0;
-       /* If there is an error and it is not ESPIPE then kick out the error.
-        * If the fd is a fifo then we have to make sure that
-        * lio_random_methods() didn't select pwrite/pread; if it did then
-        * switch to write/read.
-        */
-       if( errno == ESPIPE ){
-               if( method & LIO_IO_SYNCP ){
-                       if( omethod & LIO_RANDOM ){
-                               method &= ~LIO_IO_SYNCP;
-                               method |= LIO_IO_SYNC;
-                               if( Debug_level > 2 )
-                                       printf("DEBUG %s/%d: random chosen method switched to %#o for fifo\n", __FILE__, __LINE__, method );
-                       }
-                       else if( Debug_level ){
-                               printf("DEBUG %s/%d: pread will fail when it reads from a fifo\n",
-                                      __FILE__, __LINE__ );
-                       }
-               }
-               /* else: let it ride */
-       }
-       else{
-               sprintf(Errormsg, "%s/%d lseek(fd=%d,0,SEEK_CUR) failed, errno=%d  %s",
-                       __FILE__, __LINE__, fd, errno, strerror(errno));
-               return -errno;
-       }
-    }
-    poffset = (off64_t)ret;
-    aiocbp.aio_offset = ret;
-
-#endif
 
     /*
      * If the LIO_USE_SIGNAL bit is not set, only use the signal
@@ -1141,11 +705,6 @@ long wrd; /* to allow future features, use zero for now */
         sig=0;  /* ignore signal parameter */
     }
 
-#ifdef sgi
-    if ( sig && (method & LIO_WAIT_CBTYPES) )
-       sig=0; /* ignore signal parameter */
-#endif
-
     /*
      * only setup signal hander if sig was specified and
      * a sig wait method was specified.
@@ -1154,27 +713,6 @@ long wrd; /* to allow future features, use zero for now */
      *** restoring the signal handler could be added ***
      */
 
-    if ( sig &&  (method & LIO_WAIT_SIGTYPES) ){
-#ifdef CRAY
-           sigctl(SCTL_REG, sig, lio_async_signal_handler);
-#endif
-#ifdef sgi
-           aiocbp.aio_sigevent.sigev_notify = SIGEV_SIGNAL;
-           aiocbp.aio_sigevent.sigev_signo = sig;
-           sigset(sig, lio_async_signal_handler);
-#endif /* CRAY */
-    }
-#ifdef sgi
-    else if( method & LIO_WAIT_CBTYPES ){
-           aiocbp.aio_sigevent.sigev_notify = SIGEV_CALLBACK;
-           aiocbp.aio_sigevent.sigev_func = lio_async_callback_handler;
-           /* sival_int just has to be something that I can use
-            * to identify the callback, and "size" happens to be handy...
-            */
-           aiocbp.aio_sigevent.sigev_value.sival_int = size;
-    }
-#endif
-
     /*
      * Determine the system call that will be called and produce
      * the string of the system call and place it in Lio_SysCall.
@@ -1219,180 +757,6 @@ long wrd;        /* to allow future features, use zero for now */
 
     }
 
-    else if ( method & LIO_IO_ASYNC ) {
-#ifdef CRAY
-       sprintf(Lio_SysCall,
-           "reada(%d, buf, %d, &status, %d)", fd, size, sig);
-       io_type="reada";
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       sigoff();
-       if ((ret = reada(fd, buffer, size, &status, sig)) == -1) {
-           sprintf(Errormsg,
-               "%s/%d reada(%d, buf, %d, &stat, %d) ret:-1, errno=%d %s",
-                   __FILE__, __LINE__,
-               fd, size, sig, errno, strerror(errno));
-           sigon();
-           return -errno;
-       }
-#endif
-#ifdef sgi
-       sprintf(Lio_SysCall,
-           "aio_read(fildes=%d, buf, nbytes=%d, signo=%d)", fd, size, sig);
-       io_type="aio_read";
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       if( sig )
-               sighold( sig );
-       if ((ret = aio_read(&aiocbp)) == -1) {
-           sprintf(Errormsg,
-               "%s/%d aio_read(fildes=%d, buf, nbytes=%d, signo=%d) ret:-1, errno=%d %s",
-                   __FILE__, __LINE__,
-               fd, size, sig, errno, strerror(errno));
-           if( sig )
-               sigrelse( sig );
-           return -errno;
-       }
-#endif
-    } /* LIO_IO_ASYNC */
-
-    else if ( method & LIO_IO_SLISTIO ) {
-#ifdef CRAY
-       request.li_opcode = LO_READ;
-       request.li_fildes = fd;
-        request.li_buf = buffer;
-        request.li_nbyte = size;
-        request.li_status = &status;
-        request.li_signo = sig;
-        request.li_nstride = 0;
-        request.li_filstride = 0;
-        request.li_memstride = 0;
-
-       listio_cmd=LC_WAIT;
-       io_type="listio(2) sync read";
-
-       sprintf(Lio_SysCall, 
-               "listio(LC_WAIT, &req, 1) LO_READ, fd:%d, nbyte:%d",
-                fd, size);
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       sigoff();
-       if ( listio(listio_cmd, &request, 1) == -1 ) {
-            sprintf(Errormsg, "%s/%d %s failed, fd:%d, nbyte:%d errno=%d %s",
-                   __FILE__, __LINE__,
-               Lio_SysCall, fd, size, errno, strerror(errno));
-           sigon();
-            return -errno;
-        }
-
-       if ( Debug_level > 1 )
-            printf("DEBUG %s/%d: %s did not return -1\n",
-               __FILE__, __LINE__, Lio_SysCall);
-
-       ret=lio_check_asyncio(io_type, size,  &status);
-       return ret;
-#endif
-#ifdef sgi
-       aiocbp.aio_lio_opcode = LIO_READ;
-       listio_cmd=LIO_WAIT;
-       io_type="lio_listio(3) sync read";
-
-       sprintf(Lio_SysCall, 
-               "lio_listio(LIO_WAIT, aiolist, 1, NULL) LIO_READ, fd:%d, nbyte:%d",
-                fd, size);
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       if( sig )
-               sighold( sig );
-       if ( lio_listio(listio_cmd, aiolist, 1, NULL) == -1 ) {
-            sprintf(Errormsg, "%s/%d %s failed, fd:%d, nbyte:%d errno=%d %s",
-                   __FILE__, __LINE__,
-               Lio_SysCall, fd, size, errno, strerror(errno));
-           if( sig )
-               sigrelse( sig );
-            return -errno;
-        }
-
-       if ( Debug_level > 1 )
-            printf("DEBUG %s/%d: %s did not return -1\n",
-               __FILE__, __LINE__, Lio_SysCall);
-
-       ret=lio_check_asyncio(io_type, size,  &aiocbp, method);
-       return ret;
-#endif
-    }/* LIO_IO_SLISTIO */
-
-    else if ( method & LIO_IO_ALISTIO ) {
-#ifdef CRAY
-       request.li_opcode = LO_READ;
-       request.li_fildes = fd;
-        request.li_buf = buffer;
-        request.li_nbyte = size;
-        request.li_status = &status;
-        request.li_signo = sig;
-        request.li_nstride = 0;
-        request.li_filstride = 0;
-        request.li_memstride = 0;
-
-       listio_cmd=LC_START;
-       io_type="listio(2) async read";
-
-       sprintf(Lio_SysCall, 
-               "listio(LC_START, &req, 1) LO_READ, fd:%d, nbyte:%d",
-                fd, size);
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       sigoff();
-       if ( listio(listio_cmd, &request, 1) == -1 ) {
-            sprintf(Errormsg, "%s/%d %s failed, fd:%d, nbyte:%d errno=%d %s",
-                   __FILE__, __LINE__,
-               Lio_SysCall, fd, size, errno, strerror(errno));
-           sigon();
-            return -errno;
-        }
-#endif
-#ifdef sgi
-       aiocbp.aio_lio_opcode = LIO_READ;
-       listio_cmd=LIO_NOWAIT;
-       io_type="lio_listio(3) async read";
-
-       sprintf(Lio_SysCall, 
-               "lio_listio(LIO_NOWAIT, aiolist, 1, NULL) LIO_READ, fd:%d, nbyte:%d",
-                fd, size);
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-
-       if( sig )
-               sighold( sig );
-       if ( lio_listio(listio_cmd, aiolist, 1, NULL) == -1 ) {
-            sprintf(Errormsg, "%s/%d %s failed, fd:%d, nbyte:%d errno=%d %s",
-                   __FILE__, __LINE__,
-               Lio_SysCall, fd, size, errno, strerror(errno));
-           if( sig )
-               sigrelse( sig );
-            return -errno;
-        }
-#endif
-    } /* LIO_IO_ALISTIO */
-
-#ifndef CRAY
     else if ( method & LIO_IO_SYNCV ) {
        io_type="readv(2)";
 
@@ -1421,55 +785,12 @@ long wrd;        /* to allow future features, use zero for now */
 
         return ret;
     } /* LIO_IO_SYNCV */
-#endif
-
-#ifdef sgi
-    else if ( method & LIO_IO_SYNCP ) {
-       io_type="pread(2)";
-
-       sprintf(Lio_SysCall, 
-               "pread(%d, buf, %d, %lld)", fd, size, poffset);
-
-        if ( Debug_level ) {
-           printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall);
-        }
-       if ((ret = pread(fd, buffer, size, poffset)) == -1) {
-           sprintf(Errormsg, "%s/%d pread(%d, buf, %d, %lld) ret:-1, errno=%d %s",
-                   __FILE__, __LINE__,
-               fd, size, poffset, errno, strerror(errno));
-           return -errno;
-       }
-
-       if ( ret != size ) {
-            sprintf(Errormsg,
-               "%s/%d pread(%d, buf, %d, %lld) returned=%d",
-                   __FILE__, __LINE__,
-                   fd, size, poffset, ret);
-        }
-        else if ( Debug_level > 1 )
-            printf("DEBUG %s/%d: pread completed without error (ret %d)\n",
-                __FILE__, __LINE__, ret);
-
-        return ret;
-    } /* LIO_IO_SYNCP */
-#endif
 
     else {
        printf("DEBUG %s/%d: No I/O method chosen\n", __FILE__, __LINE__ );
        return -1;
     }
 
-    /*
-     * wait for async io to complete.
-     * Note: Sync io should have returned prior to getting here.
-     */
-#ifdef CRAY
-    ret=lio_wait4asyncio(method, fd, statptr);
-#endif
-#ifdef sgi
-    ret=lio_wait4asyncio(method, fd, &aiocbp);
-#endif
-
     /*
      * If there was an error waiting for async i/o to complete,
      * return the error value (errno) to the caller.
@@ -1494,13 +815,6 @@ long wrd; /* to allow future features, use zero for now */
      * have been updated but the actual i/o size if returned.
      */
     
-#ifdef CRAY
-    ret=lio_check_asyncio(io_type, size, &status);
-#endif
-#ifdef sgi
-    ret=lio_check_asyncio(io_type, size, &aiocbp, method);
-#endif
-
     return ret;
 }      /* end of lio_read_buffer */
 
@@ -1518,37 +832,9 @@ long wrd; /* to allow future features, use zero for now */
  * (rrl 04/96)
  ***********************************************************************/
 int
-#ifdef CRAY
-lio_check_asyncio(char *io_type, int size, struct iosw *status)
-#else
 lio_check_asyncio(char *io_type, int size, aiocb_t *aiocbp, int method)
-#endif
 {
     int ret;
-
-#ifdef CRAY
-    if ( status->sw_error ) {
-        sprintf(Errormsg,
-            "%s/%d %s, sw_error set = %d %s, sw_count = %d",
-               __FILE__, __LINE__, io_type,
-            status->sw_error, strerror(status->sw_error), status->sw_count);
-        return -status->sw_error;
-    }
-    else if ( status->sw_count != size ) {
-        sprintf(Errormsg,
-            "%s/%d %s, sw_count not as expected(%d), but actual:%d",
-               __FILE__, __LINE__, io_type,
-            size, status->sw_count);
-    }
-    else if ( Debug_level > 1 ) {
-        printf("DEBUG %s/%d: %s completed without error (sw_error == 0, sw_count == %d)\n",
-            __FILE__, __LINE__, io_type, status->sw_count);
-    }
-
-    return status->sw_count;
-
-#else
-
     int cnt = 1;
 
     /* The I/O may have been synchronous with signal completion.  It doesn't
@@ -1609,8 +895,6 @@ lio_check_asyncio(char *io_type, int size, aiocb_t *aiocbp, int method)
 
     return ret;
 
-#endif
-
 } /* end of lio_check_asyncio */
 
 
@@ -1633,39 +917,16 @@ lio_check_asyncio(char *io_type, int size, aiocb_t *aiocbp, int method)
  * (rrl 04/96)
  ***********************************************************************/
 int
-#ifdef CRAY
-lio_wait4asyncio(int method, int fd, struct iosw **statptr)
-#else
 lio_wait4asyncio(int method, int fd, aiocb_t *aiocbp)
-#endif
 {
     int cnt;
-#ifdef sgi
-    int ret;
-    const aiocb_t *aioary[1]; 
-#endif
 
     if ( (method & LIO_WAIT_RECALL)
-#ifdef sgi
-       || (method & LIO_WAIT_CBSUSPEND) 
-       || (method & LIO_WAIT_SIGSUSPEND) 
-#endif
        || ((method & LIO_WAIT_TYPES) == 0) ){
        /*
         * If method has LIO_WAIT_RECALL bit set or method does
         * not have any wait method bits set (default), use recall/aio_suspend.
          */
-#ifdef CRAY
-        if ( Debug_level > 2 )
-            printf("DEBUG %s/%d: wait method : recall\n", __FILE__, __LINE__);
-        sigon();
-        if ( recall(fd, 1, statptr) ) {
-           sprintf(Errormsg, "%s/%d recall(%d, 1, stat) failed, errno:%d %s",
-                   __FILE__, __LINE__,
-               fd, errno, strerror(errno));
-           return -errno;
-       }
-#else
         if ( Debug_level > 2 )
             printf("DEBUG %s/%d: wait method : aio_suspend, sigev_notify=%s\n", __FILE__, __LINE__,
                (aiocbp->aio_sigevent.sigev_notify == SIGEV_SIGNAL ? "signal" :
@@ -1698,24 +959,10 @@ lio_wait4asyncio(int method, int fd, aiocb_t *aiocbp)
                fd, errno, strerror(errno));
            return -errno;
        }
-#endif
-
     } else if ( method & LIO_WAIT_ACTIVE ) {
         if ( Debug_level > 2 )
             printf("DEBUG %s/%d: wait method : active\n", __FILE__, __LINE__);
-#ifdef CRAY
-        sigon();
-       /* 
-         * loop until sw_flag, sw_count or sw_error field elements
-        * change to non-zero.
-        */
-        cnt=0;
-        while ( (*statptr)->sw_flag == 0 && 
-               (*statptr)->sw_count == 0 &&
-               (*statptr)->sw_error == 0 ) {
-          cnt++;
-       }
-#else
+
        /* loop while aio_error() returns EINPROGRESS */
        cnt=0;
        while(1){
@@ -1726,7 +973,6 @@ lio_wait4asyncio(int method, int fd, aiocb_t *aiocbp)
                ++cnt;
        }
 
-#endif
        if ( Debug_level > 5 && cnt && (cnt % 50) == 0 )
                printf("DEBUG %s/%d: wait active cnt = %d\n",
                    __FILE__, __LINE__, cnt);
@@ -1734,37 +980,20 @@ lio_wait4asyncio(int method, int fd, aiocb_t *aiocbp)
     } else if ( method & LIO_WAIT_SIGPAUSE ) {
         if ( Debug_level > 2 )
             printf("DEBUG %s/%d: wait method : sigpause\n", __FILE__, __LINE__);
-#ifdef sgi
-       /* note: don't do the sigon() for CRAY in this case.  why? -- roehrich 6/11/97 */
-       if( aiocbp->aio_sigevent.sigev_notify == SIGEV_SIGNAL )
-               sigrelse( aiocbp->aio_sigevent.sigev_signo );
-       else {
-               printf("DEBUG %s/%d: sigev_notify != SIGEV_SIGNAL\n", __FILE__, __LINE__ );
-               return -1;
-       }
-#endif
         pause();
 
     } else if ( method & LIO_WAIT_SIGACTIVE ) {
         if ( Debug_level > 2 )
             printf("DEBUG %s/%d: wait method : sigactive\n", __FILE__, __LINE__);
-#ifdef CRAY
-        sigon();
-#else
        if( aiocbp->aio_sigevent.sigev_notify == SIGEV_SIGNAL )
                sigrelse( aiocbp->aio_sigevent.sigev_signo );
        else {
                printf("DEBUG %s/%d: sigev_notify != SIGEV_SIGNAL\n", __FILE__, __LINE__ );
                return -1;
        }
-#endif
        /* loop waiting for signal */
         while ( Received_signal == Rec_signal ){
-#ifdef CRAY
-                sigon();
-#else
                sigrelse( aiocbp->aio_sigevent.sigev_signo );
-#endif
        }
 
     } else if ( method & LIO_WAIT_NONE ) {
@@ -1779,10 +1008,6 @@ lio_wait4asyncio(int method, int fd, aiocb_t *aiocbp)
         */
        sprintf(Errormsg, "%s/%d LIO_WAIT_NONE was selected (this is broken)\n",
                __FILE__, __LINE__ );
-#ifdef CRAY
-        sigon();
-#endif
-/*        return 1;*/
         return -1;
     }
     else {
index 0fe206d9fd56336e72d505334fa9ae05f7de2b1f..e4f61d82fae4432ea1081489a314998b2d787ff4 100644 (file)
 
 #include "global.h"
 
-#ifdef sgi
-#include <aio.h>       /* for aio_read,write */
-#include <inttypes.h>  /* for uint64_t type */
-#include <siginfo.h>   /* signal handlers & SA_SIGINFO */
-#endif
-
 #include <sys/uio.h>   /* for struct iovec (readv)*/
 #include <sys/mman.h>  /* for mmap(2) */
 #include <sys/ipc.h>   /* for i/o buffer in shared memory */
@@ -55,7 +49,7 @@ int do_xfsctl(struct io_req *);
 #include "string_to_tokens.h"
 
 #ifndef O_SSD
-#define O_SSD 0                /* so code compiles on a CRAY2 */
+#define O_SSD 0                /* so code compiles on a CRAY2 */
 #endif
 
 #define UINT64_T unsigned long long
@@ -66,11 +60,7 @@ int do_xfsctl(struct io_req *);
 
 #define PPID_CHECK_INTERVAL 5          /* check ppid every <-- iterations */
 #define        MAX_AIO         256             /* maximum number of async I/O ops */
-#ifdef _CRAYMPP
-#define        MPP_BUMP        16              /* page un-alignment for MPP */
-#else
 #define        MPP_BUMP        0
-#endif
 
 
 #define        SYSERR strerror(errno)
@@ -187,10 +177,8 @@ struct fd_cache {
        int     c_miniosz;
        int     c_maxiosz;
 #endif
-#ifndef CRAY
        void    *c_memaddr;     /* mmapped address */
        int     c_memlen;       /* length of above region */
-#endif
 };
 
 #define FD_ALLOC_INCR  32      /* allocate this many fd_map structs    */
@@ -221,10 +209,8 @@ void       sigint_handler();       /* Catch SIGINT in parent doio, propagate
 void   die_handler();          /* Bad sig in child doios, exit 1. */
 void   cleanup_handler();      /* Normal kill, exit 0. */
 
-#ifndef CRAY
 void   sigbus_handler();       /* Handle sigbus--check active_mmap_rw to
                                   decide if this should be a normal exit. */
-#endif
 
 void   cb_handler();           /* Posix aio callback handler. */
 void   noop_handler();         /* Delayop alarm, does nothing. */
@@ -287,14 +273,6 @@ struct aio_info {
        int                     fd;
        int                     strategy;
        volatile int            done;
-#ifdef CRAY
-       struct iosw             iosw;
-#endif
-#ifdef sgi
-       aiocb_t                 aiocb;
-       int                     aio_ret;        /* from aio_return */
-       int                     aio_errno;      /* from aio_error */
-#endif
        int                     sig;
        int                     signalled;
        struct sigaction        osa;
@@ -322,9 +300,6 @@ struct smap checkmap[] = {
 struct smap delaymap[] = {
        { "select",     DELAY_SELECT },
        { "sleep",      DELAY_SLEEP },
-#ifdef sgi
-       { "sginap",     DELAY_SGINAP },
-#endif
        { "alarm",      DELAY_ALARM },
        { NULL, 0 },
 };
@@ -352,10 +327,6 @@ char       **argv;
        struct sigaction        sa;
        sigset_t                block_mask, old_mask;
        umask(0);               /* force new file modes to known values */
-#if _CRAYMPP
-       Npes = sysconf(_SC_CRAY_NPES);  /* must do this before parse_cmdline */
-       Vpe = sysconf(_SC_CRAY_VPE);
-#endif
 
        TagName[0] = '\0';
        parse_cmdline(argc, argv, OPTS);
@@ -577,9 +548,7 @@ doio()
        char                    *cp;
        struct io_req           ioreq;
        struct sigaction        sa, def_action, ignore_action, exit_action;
-#ifndef CRAY
        struct sigaction        sigbus_action;
-#endif
 
        Memsize = Sdssize = 0;
 
@@ -653,19 +622,6 @@ doio()
        def_action.sa_flags = 0;
        sigemptyset(&def_action.sa_mask);
 
-#ifdef sgi
-       exit_action.sa_sigaction = cleanup_handler;
-       exit_action.sa_flags = SA_SIGINFO;
-       sigemptyset(&exit_action.sa_mask);
-
-       sa.sa_sigaction = die_handler;
-       sa.sa_flags = SA_SIGINFO;
-       sigemptyset(&sa.sa_mask);
-
-       sigbus_action.sa_sigaction = sigbus_handler;
-       sigbus_action.sa_flags = SA_SIGINFO;
-       sigemptyset(&sigbus_action.sa_mask);
-#else
        exit_action.sa_handler = cleanup_handler;
        exit_action.sa_flags = 0;
        sigemptyset(&exit_action.sa_mask);
@@ -674,12 +630,9 @@ doio()
        sa.sa_flags = 0;
        sigemptyset(&sa.sa_mask);
 
-#ifndef CRAY
        sigbus_action.sa_handler = sigbus_handler;
        sigbus_action.sa_flags = 0;
        sigemptyset(&sigbus_action.sa_mask);
-#endif
-#endif
 
        for (i = 1; i <= NSIG; i++) {
                switch(i) {
@@ -688,12 +641,10 @@ doio()
                        sigaction(i, &exit_action, NULL);
                        break;
 
-#ifndef CRAY
                        /* This depends on active_mmap_rw */
                case SIGBUS:
                        sigaction(i, &sigbus_action, NULL);
                        break;
-#endif
 
                    /* Signals to Ignore... */
                case SIGSTOP:
@@ -790,15 +741,6 @@ doio()
                                alloc_mem(-1);
 #endif
                        }
-
-#ifdef _CRAY1
-                       if (Sdssize) {
-                               ssbreak(-1 * btoc(Sdssize));
-                               Sdsptr = 0;
-                               Sdssize = 0;
-                       }
-#endif /* _CRAY1 */
-
                        alloc_fd(NULL, 0);
                }
 
@@ -835,31 +777,16 @@ doio()
                case LEWRITEA:
                        rval = do_rw(&ioreq);
                        break;
-
-#ifdef CRAY
-               case SSREAD:
-               case SSWRITE:
-                       rval = do_ssdio(&ioreq);
-                       break;
-
-               case LISTIO:
-                       rval = do_listio(&ioreq);
-                       break;
-#endif
-
 #ifndef NO_XFS
                case RESVSP:
                case UNRESVSP:
                        rval = do_xfsctl(&ioreq);
                        break;
 #endif
-
-#ifndef CRAY
                case FSYNC2:
                case FDATASYNC:
                        rval = do_sync(&ioreq);
                        break;
-#endif
                default:
                        doio_fprintf(stderr,
                                     "Don't know how to handle io request type %d\n",
@@ -917,12 +844,6 @@ doio_delay()
                sleep(delaytime);
                break;
 
-#ifdef sgi
-       case DELAY_SGINAP:
-               sginap(delaytime);
-               break;
-#endif
-
        case DELAY_ALARM:
                sa_al.sa_flags = 0;
                sa_al.sa_handler = noop_handler;
@@ -1019,35 +940,9 @@ format_oflags(int oflags)
 
        if(oflags & O_SYNC)
                strcat(flags,"O_SYNC,");
-#ifdef CRAY
-       if(oflags & O_RAW)
-               strcat(flags,"O_RAW,");
-       if(oflags & O_WELLFORMED)
-               strcat(flags,"O_WELLFORMED,");
-#ifdef O_SSD
-       if(oflags & O_SSD)
-               strcat(flags,"O_SSD,");
-#endif
-       if(oflags & O_LDRAW)
-               strcat(flags,"O_LDRAW,");
-       if(oflags & O_PARALLEL)
-               strcat(flags,"O_PARALLEL,");
-       if(oflags & O_BIG)
-               strcat(flags,"O_BIG,");
-       if(oflags & O_PLACE)
-               strcat(flags,"O_PLACE,");
-       if(oflags & O_ASYNC)
-               strcat(flags,"O_ASYNC,");
-#endif
 
        if(oflags & O_DIRECT)
                strcat(flags,"O_DIRECT,");
-#ifdef sgi
-       if(oflags & O_DSYNC)
-               strcat(flags,"O_DSYNC,");
-       if(oflags & O_RSYNC)
-               strcat(flags,"O_RSYNC,");
-#endif
 
        return(strdup(flags));
 }
@@ -1083,11 +978,7 @@ format_rw(
        void            *buffer,
        int             signo,
        char            *pattern,
-#ifdef CRAY
-       struct  iosw    *iosw
-#else
        void            *iosw
-#endif
        )
 {
        static char             *errbuf=NULL;
@@ -1155,44 +1046,6 @@ format_rw(
        return errbuf;
 }
 
-#ifdef CRAY
-char *
-format_sds(
-       struct  io_req  *ioreq,
-       void            *buffer,
-       int             sds,
-       char            *pattern
-       )
-{
-       int                     i;
-       static char             *errbuf=NULL;
-       char                    *cp;
-
-       struct ssread_req       *ssreadp = &ioreq->r_data.ssread;
-       struct sswrite_req      *sswritep = &ioreq->r_data.sswrite;
-
-       if(errbuf == NULL)
-               errbuf = (char *)malloc(32768);
-
-       cp = errbuf;
-       cp += sprintf(cp, "Request number %d\n", Reqno);
-
-
-       switch (ioreq->r_type) {
-       case SSREAD:
-               cp += sprintf(cp, "syscall:  ssread(%#o, %#o, %d)\n",
-                             buffer, sds, ssreadp->r_nbytes);
-               break;
-
-       case SSWRITE:
-               cp += sprintf(cp, "syscall:  sswrite(%#o, %#o, %d) - pattern was %s\n",
-                             buffer, sds, sswritep->r_nbytes, pattern);
-               break;
-       }
-       return errbuf;
-}
-#endif /* CRAY */
-
 /*
  * Perform the various sorts of disk reads
  */
@@ -1203,10 +1056,6 @@ struct io_req    *req;
 {
        int                     fd, offset, nbytes, oflags, rval;
        char                    *addr, *file;
-#ifdef CRAY
-       struct aio_info         *aiop;
-       int                     aio_id, aio_strat, signo;
-#endif
 #ifndef NO_XFS
        struct fd_cache         *fdc;
 #endif
@@ -1241,28 +1090,6 @@ struct io_req    *req;
 #define wtob(x)        (x * sizeof(UINT64_T))
 #endif
 
-#ifdef CRAY
-       if (oflags & O_SSD) {
-               if (alloc_sds(nbytes) == -1)
-                       return -1;
-
-               addr = (char *)Sdsptr;
-       } else {
-               if ((rval = alloc_mem(nbytes + wtob(1) * 2 + MPP_BUMP * sizeof(UINT64_T))) < 0) {
-                       return rval;
-               }
-
-               addr = Memptr;
-
-               /*
-                * if io is not raw, bump the offset by a random amount
-                * to generate non-word-aligned io.
-                */
-               if (! (req->r_data.read.r_uflags & F_WORD_ALIGNED)) {
-                       addr += random_range(0, wtob(1) - 1, 1, NULL);
-               }
-       }
-#else
 #ifndef NO_XFS
        /* get memory alignment for using DIRECT I/O */
        fdc = alloc_fdcache(file, oflags);
@@ -1290,8 +1117,7 @@ struct io_req     *req;
        }
 
        addr = Memptr;
-#endif /* !CRAY && sgi */
-#endif /* CRAY */
+#endif /* !NO_XFS */
 
 
        switch (req->r_type) {
@@ -1320,66 +1146,6 @@ struct io_req    *req;
                        return -1;
                }
                break;
-
-#ifdef CRAY
-       case READA:
-               /*
-                * Async read
-                */
-
-               /* move to the desired file position. */
-               if (lseek(fd, offset, SEEK_SET) == -1) {
-                       doio_fprintf(stderr,
-                                    "lseek(%d, %d, SEEK_SET) failed:  %s (%d)\n",
-                                    fd, offset, SYSERR, errno);
-                       return -1;
-               }
-
-               aio_strat = req->r_data.read.r_aio_strat;
-               signo = (aio_strat == A_SIGNAL) ? SIGUSR1 : 0;
-
-               aio_id = aio_register(fd, aio_strat, signo);
-               aiop = aio_slot(aio_id);
-
-               if (reada(fd, addr, nbytes, &aiop->iosw, signo) == -1) {
-                       doio_fprintf(stderr, "reada() failed: %s (%d)\n%s\n",
-                                    SYSERR, errno,
-                                    format_rw(req, fd, addr, signo, NULL, &aiop->iosw));
-                       aio_unregister(aio_id);
-                       doio_upanic(U_RVAL);
-                       rval = -1;
-               } else {
-                       /*
-                        * Wait for io to complete
-                        */
-
-                       aio_wait(aio_id);
-
-                       /*
-                        * make sure the io completed without error
-                        */
-
-                       if (aiop->iosw.sw_count != nbytes) {
-                               doio_fprintf(stderr,
-                                            "Bad iosw from reada()\nExpected (%d,%d,%d), got (%d,%d,%d)\n%s\n",
-                                            1, 0, nbytes,
-                                            aiop->iosw.sw_flag,
-                                            aiop->iosw.sw_error,
-                                            aiop->iosw.sw_count,
-                                    format_rw(req, fd, addr, signo, NULL, &aiop->iosw));
-                               aio_unregister(aio_id);
-                               doio_upanic(U_IOSW);
-                               rval = -1;
-                       } else {
-                               aio_unregister(aio_id);
-                               rval = 0;
-                       }
-               }
-
-               if (rval == -1)
-                       return rval;
-               break;
-#endif /* CRAY */
        }
 
        return 0;               /* if we get here, everything went ok */
@@ -1401,10 +1167,6 @@ struct io_req    *req;
        long                    offset, woffset = 0;
        char                    *addr, pattern, *file, *msg;
        struct wlog_rec         wrec;
-#ifdef CRAY
-       int                     aio_strat, aio_id;
-       struct aio_info         *aiop;
-#endif
 #ifndef NO_XFS
        struct fd_cache         *fdc;
 #endif
@@ -1444,54 +1206,6 @@ struct io_req    *req;
         * Allocate SDS space for backdoor write if desired
         */
 
-#ifdef CRAY
-       if (oflags & O_SSD) {
-#ifndef _CRAYMPP
-               if ((rval = alloc_mem(nbytes + wtob(1))) < 0) {
-                       return rval;
-               }
-
-               (*Data_Fill)(Memptr, nbytes, Pattern, Pattern_Length, 0);
-               /*pattern_fill(Memptr, nbytes, Pattern, Pattern_Length, 0);*/
-
-               if (alloc_sds(nbytes) == -1)
-                       return -1;
-
-               if (sswrite((long)Memptr, Sdsptr, btoc(nbytes)) == -1) {
-                       doio_fprintf(stderr, "sswrite(%d, %d, %d) failed:  %s (%d)\n",
-                                    (long)Memptr, Sdsptr, btoc(nbytes), 
-                                    SYSERR, errno);
-                       fflush(stderr);
-                       return -1;
-               }
-
-               addr = (char *)Sdsptr;
-#else
-               doio_fprintf(stderr, "Invalid O_SSD flag was generated for MPP system\n");
-               fflush(stderr);
-               return -1;
-#endif /* !CRAYMPP */
-       } else {
-               if ((rval = alloc_mem(nbytes + wtob(1)) < 0)) {
-                       return rval;
-               }
-
-               addr = Memptr;
-
-               /*
-                * if io is not raw, bump the offset by a random amount
-                * to generate non-word-aligned io.
-                */
-
-               if (! (req->r_data.write.r_uflags & F_WORD_ALIGNED)) {
-                       addr += random_range(0, wtob(1) - 1, 1, NULL);
-               }
-
-               (*Data_Fill)(Memptr, nbytes, Pattern, Pattern_Length, 0);
-               if( addr != Memptr )
-                       memmove( addr, Memptr, nbytes);
-       }
-#else /* CRAY */
 #ifndef NO_XFS
        /* get memory alignment for using DIRECT I/O */
        fdc = alloc_fdcache(file, oflags);
@@ -1528,7 +1242,6 @@ struct io_req     *req;
        if( addr != Memptr )
                memmove( addr, Memptr, nbytes);
 #endif /* sgi */
-#endif /* CRAY */
 
        rval = -1;
        got_lock = 0;
@@ -1625,68 +1338,6 @@ struct io_req    *req;
                }
 
                break;
-
-#ifdef CRAY
-       case WRITEA:
-               /*
-                * async write
-                */
-               if (lseek(fd, offset, SEEK_SET) == -1) {
-                       doio_fprintf(stderr,
-                                    "lseek(%d, %d, SEEK_SET) failed:  %s (%d)\n",
-                                    fd, offset, SYSERR, errno);
-                       return -1;
-               }
-
-               aio_strat = req->r_data.write.r_aio_strat;
-               signo = (aio_strat == A_SIGNAL) ? SIGUSR1 : 0;
-
-               aio_id = aio_register(fd, aio_strat, signo);
-               aiop = aio_slot(aio_id);
-
-               /*
-                * init iosw and do the async write
-                */
-
-               if (writea(fd, addr, nbytes, &aiop->iosw, signo) == -1) {
-                       doio_fprintf(stderr,
-                                    "writea() failed: %s (%d)\n%s\n",
-                                    SYSERR, errno,
-                                    format_rw(req, fd, addr, -1, Pattern, NULL));
-                       doio_upanic(U_RVAL);
-                       aio_unregister(aio_id);
-                       rval = -1;
-               } else {
-
-                       /*
-                        * Wait for io to complete
-                        */
-
-                       aio_wait(aio_id);
-
-                       /*
-                        * check that iosw is ok
-                        */
-
-                       if (aiop->iosw.sw_count != nbytes) {
-                               doio_fprintf(stderr,
-                                            "Bad iosw from writea()\nExpected (%d,%d,%d), got (%d,%d,%d)\n%s\n",
-                                            1, 0, nbytes,
-                                            aiop->iosw.sw_flag,
-                                            aiop->iosw.sw_error,
-                                            aiop->iosw.sw_count,
-                                            format_rw(req, fd, addr, -1, Pattern, &aiop->iosw));
-                               aio_unregister(aio_id);
-                               doio_upanic(U_IOSW);
-                               rval = -1;
-                       } else {
-                               aio_unregister(aio_id);
-                               rval = 0;
-                       }
-               }
-               break;
-
-#endif /* CRAY */
        }
 
        /*
@@ -1701,11 +1352,7 @@ struct io_req    *req;
                if (msg != NULL) {
                        doio_fprintf(stderr, "%s%s\n",
                                     msg,
-#ifdef CRAY
-                                    format_rw(req, fd, addr, -1, Pattern, &aiop->iosw)
-#else
                                     format_rw(req, fd, addr, -1, Pattern, NULL)
-#endif
                                );
                        doio_upanic(U_CORRUPTION);
                        exit(E_COMPARE);
@@ -1773,515 +1420,97 @@ int    nbytes;
        return 0;
 }
 
-/*
- * Perform a listio request.
+int
+do_listio(req)
+struct io_req  *req;
+{
+       return -1;
+}
+
+/* ---------------------------------------------------------------------------
+ *
+ * A new paradigm of doing the r/w system call where there is a "stub"
+ * function that builds the info for the system call, then does the system
+ * call; this is called by code that is common to all system calls and does
+ * the syscall return checking, async I/O wait, iosw check, etc.
+ *
+ * Flags:
+ *     WRITE, ASYNC, SSD/SDS,
+ *     FILE_LOCK, WRITE_LOG, VERIFY_DATA,
  */
 
-#ifdef CRAY
+struct status {
+       int     rval;           /* syscall return */
+       int     err;            /* errno */
+       int     *aioid;         /* list of async I/O structures */
+};
+
+struct syscall_info {
+       char            *sy_name;
+       int             sy_type;
+       struct status   *(*sy_syscall)();
+       int             (*sy_buffer)();
+       char            *(*sy_format)();
+       int             sy_flags;
+       int             sy_bits;
+};
+
+#define        SY_WRITE                00001
+#define        SY_ASYNC                00010
+#define        SY_IOSW                 00020
+#define        SY_SDS                  00100
+
 char *
-format_listio(
-       struct  io_req  *ioreq,
-       int             lcmd,
-       struct listreq  *list,
-       int             nent,
-       int             fd,
-       char            *pattern
-       )
+fmt_ioreq(struct io_req *ioreq, struct syscall_info *sy, int fd)
 {
-       static  char            *errbuf=NULL;
-       struct  listio_req      *liop = &ioreq->r_data.listio;
-       struct  listreq         *listreq;
-       char                    *cp, *cmd, *opcode, *aio_strat;
-       int                     i;
-
-       switch (lcmd) {
-       case LC_START:  cmd = "LC_START";       break;
-       case LC_WAIT:   cmd = "LC_WAIT";        break;
-       default:        cmd = "???";            break;
-       }
+       static char             *errbuf=NULL;
+       char                    *cp;
+       struct rw_req           *io;
+       struct smap             *aname;
 
        if(errbuf == NULL)
                errbuf = (char *)malloc(32768);
 
+       io = &ioreq->r_data.io;
+
+       /*
+        * Look up async I/O completion strategy
+        */
+       for(aname=aionames;
+           aname->value != -1 && aname->value != io->r_aio_strat;
+           aname++)
+               ;
+
        cp = errbuf;
        cp += sprintf(cp, "Request number %d\n", Reqno);
 
-       cp += sprintf(cp, "syscall:  listio(%s, %#o, %d)\n\n",
-                     cmd, list, nent);
+       cp += sprintf(cp, "          fd %d is file %s - open flags are %#o %s\n",
+                     fd, io->r_file, io->r_oflags, format_oflags(io->r_oflags));
 
-       aio_strat = format_strat(liop->r_aio_strat);
+       if(sy->sy_flags & SY_WRITE) {
+               cp += sprintf(cp, "          write done at file offset %d - pattern is %c (%#o)\n",
+                             io->r_offset,
+                             (io->r_pattern == '\0') ? '?' : io->r_pattern,
+                             io->r_pattern);
+       } else {
+               cp += sprintf(cp, "          read done at file offset %d\n",
+                     io->r_offset);
+       }
 
-       for (i = 0; i < nent; i++) {
-               cp += sprintf(cp, "struct lioreq for request element %d\n", i);
-               cp += sprintf(cp, "----------------------------------------\n");
+       if(sy->sy_flags & SY_ASYNC) {
+               cp += sprintf(cp, "          async io completion strategy is %s\n",
+                             aname->string);
+       }
 
-               listreq = list + i;
+       cp += sprintf(cp, "          number of requests is %d, strides per request is %d\n",
+                     io->r_nent, io->r_nstrides);
 
-               switch (listreq->li_opcode) {
-               case LO_READ:   opcode = "LO_READ";     break;
-               case LO_WRITE:  opcode = "LO_WRITE";    break;
-               default:        opcode = "???";         break;
-               }
-                       
-               cp += sprintf(cp, "          li_opcode =    %s\n", opcode);
-               cp += sprintf(cp, "          li_drvr =      %#o\n", listreq->li_drvr);
-               cp += sprintf(cp, "          li_flags =     %#o\n", listreq->li_flags);
-               cp += sprintf(cp, "          li_offset =    %d\n", listreq->li_offset);
-               cp += sprintf(cp, "          li_fildes =    %d\n", listreq->li_fildes);
-               cp += sprintf(cp, "          li_buf =       %#o\n", listreq->li_buf);
-               cp += sprintf(cp, "          li_nbyte =     %d\n", listreq->li_nbyte);
-               cp += sprintf(cp, "          li_status =    %#o (%d, %d, %d)\n", listreq->li_status, listreq->li_status->sw_flag, listreq->li_status->sw_error, listreq->li_status->sw_count);
-               cp += sprintf(cp, "          li_signo =     %d\n", listreq->li_signo);
-               cp += sprintf(cp, "          li_nstride =   %d\n", listreq->li_nstride);
-               cp += sprintf(cp, "          li_filstride = %d\n", listreq->li_filstride);
-               cp += sprintf(cp, "          li_memstride = %d\n", listreq->li_memstride);
-               cp += sprintf(cp, "          io completion strategy is %s\n", aio_strat);
-       }
-       return errbuf;
-}
-#endif /* CRAY */
-
-int
-do_listio(req)
-struct io_req  *req;
-{
-#ifdef CRAY
-       struct listio_req       *lio;
-       int                     fd, oflags, signo, nb, i;
-       int                     logged_write, rval, got_lock;
-       int                     aio_strat, aio_id;
-       int                     min_byte, max_byte;
-       int                     mem_needed;
-       int                     foffset, fstride, mstride, nstrides;
-       char                    *moffset;
-       long                    offset, woffset;
-       char                    *addr, *msg;
-       sigset_t                block_mask, omask;
-       struct wlog_rec         wrec;
-       struct aio_info         *aiop;
-       struct listreq          lio_req;
-
-       lio = &req->r_data.listio;
-
-       /*
-        * If bytes per stride is less than the stride size, drop the request
-        * since it will cause overlapping strides, and we cannot predict
-        * the order they will complete in.
-        */
-
-       if (lio->r_filestride && abs(lio->r_filestride) < lio->r_nbytes) {
-               doio_fprintf(stderr, "do_listio():  Bogus listio request - abs(filestride) [%d] < nbytes [%d]\n",
-                            abs(lio->r_filestride), lio->r_nbytes);
-               return -1;
-       }
-
-       /*
-        * Allocate core memory.  Initialize the data to be written.  Make
-        * sure we get enough, based on the memstride.
-        */
-
-       mem_needed = 
-               stride_bounds(0, lio->r_memstride, lio->r_nstrides,
-                             lio->r_nbytes, NULL, NULL);
-
-       if ((rval = alloc_mem(mem_needed + wtob(1))) < 0) {
-               return rval;
-       }
-
-       /*
-        * Set the memory address pointer.  If the io is not raw, adjust
-        * addr by a random amount, so that non-raw io is not necessarily
-        * word aligned.
-        */
-
-       addr = Memptr;
-
-       if (! (lio->r_uflags & F_WORD_ALIGNED)) {
-               addr += random_range(0, wtob(1) - 1, 1, NULL);
-       }
-
-       if (lio->r_opcode == LO_WRITE) {
-               Pattern[0] = lio->r_pattern;
-               (*Data_Fill)(Memptr, mem_needed, Pattern, Pattern_Length, 0);
-               if( addr != Memptr )
-                       memmove( addr, Memptr, mem_needed);
-       }
-
-       /*
-        * Get a descriptor to do the io on.  No need to do an lseek, as this
-        * is encoded in the listio request.
-        */
-
-       if ((fd = alloc_fd(lio->r_file, lio->r_oflags)) == -1) {
-               return -1;
-       }
-
-       rval = -1;
-       got_lock = 0;
-       logged_write = 0;
-
-       /*
-        * If the opcode is LO_WRITE, lock all regions of the file that
-        * are touched by this listio request.  Currently, we use
-        * stride_bounds() to figure out the min and max bytes affected, and
-        * lock the entire region, regardless of the file stride.
-        */
-
-       if (lio->r_opcode == LO_WRITE && k_opt) {
-               stride_bounds(lio->r_offset,
-                             lio->r_filestride, lio->r_nstrides,
-                             lio->r_nbytes, &min_byte, &max_byte);
-
-               if (lock_file_region(lio->r_file, fd, F_WRLCK,
-                                    min_byte, (max_byte-min_byte+1)) < 0) {
-                       doio_fprintf(stderr, "stride_bounds(%d, %d, %d, %d, ..., ...) set min_byte to %d, max_byte to %d\n",
-                                    lio->r_offset, lio->r_filestride,
-                                    lio->r_nstrides, lio->r_nbytes, min_byte,
-                                    max_byte);
-                       return -1;
-               } else {
-                       got_lock = 1;
-               }
-       }
-
-       /*
-        * async write
-        */
-
-       aio_strat = lio->r_aio_strat;
-       signo = (aio_strat == A_SIGNAL) ? SIGUSR1 : 0;
-
-       aio_id = aio_register(fd, aio_strat, signo);
-       aiop = aio_slot(aio_id);
-
-       /*
-        * Form the listio request, and make the call.
-        */
-
-       lio_req.li_opcode = lio->r_opcode;
-       lio_req.li_drvr = 0;
-       lio_req.li_flags = LF_LSEEK;
-       lio_req.li_offset = lio->r_offset;
-       lio_req.li_fildes = fd;
-
-       if (lio->r_memstride >= 0 || lio->r_nstrides <= 1) {
-               lio_req.li_buf = addr;
-       } else {
-               lio_req.li_buf = addr + mem_needed - lio->r_nbytes;
-       }
-
-       lio_req.li_nbyte = lio->r_nbytes;
-       lio_req.li_status = &aiop->iosw;
-       lio_req.li_signo = signo;
-       lio_req.li_nstride = lio->r_nstrides;
-       lio_req.li_filstride = lio->r_filestride;
-       lio_req.li_memstride = lio->r_memstride;
-
-       /*
-        * If signo != 0, block signo while we're in the system call, so that
-        * we don't get interrupted syscall failures.
-        */
-
-       if (signo) {
-               sigemptyset(&block_mask);
-               sigaddset(&block_mask, signo);
-               sigprocmask(SIG_BLOCK, &block_mask, &omask);
-       }
-
-       if (listio(lio->r_cmd, &lio_req, 1) < 0) {
-               doio_fprintf(stderr,
-                            "listio() failed: %s (%d)\n%s\n",
-                            SYSERR, errno,
-                            format_listio(req, lio->r_cmd, &lio_req, 1, fd, Pattern));
-               aio_unregister(aio_id);
-               doio_upanic(U_RVAL);
-               goto lio_done;
-       }
-
-       if (signo) {
-               sigprocmask(SIG_SETMASK, &omask, NULL);
-       }
-
-       /*
-        * Wait for io to complete
-        */
-
-       aio_wait(aio_id);
-
-       nstrides = lio->r_nstrides ? lio->r_nstrides : 1;
-       if (aiop->iosw.sw_count != lio->r_nbytes * nstrides) {
-               doio_fprintf(stderr,
-                            "Bad iosw from listio()\nExpected (%d,%d,%d), got (%d,%d,%d)\n%s\n",
-                            1, 0, lio->r_nbytes * lio->r_nstrides,
-                            aiop->iosw.sw_flag,
-                            aiop->iosw.sw_error, aiop->iosw.sw_count,
-                            format_listio(req, lio->r_cmd, &lio_req, 1, fd, Pattern));
-               aio_unregister(aio_id);
-               doio_upanic(U_IOSW);
-               goto lio_done;
-       } 
-
-       aio_unregister(aio_id);
-
-       /*
-        * Verify that the data was written correctly - check_file() returns
-        * a non-null pointer which contains an error message if there are
-        * problems.
-        *
-        * For listio, we basically have to make 1 call to check_file for each
-        * stride.
-        */
-
-       if (v_opt && lio_req.li_opcode == LO_WRITE) {
-               fstride = lio->r_filestride ? lio->r_filestride : lio->r_nbytes;
-               mstride = lio->r_memstride ? lio->r_memstride : lio->r_nbytes;
-               foffset = lio->r_offset;
-
-               if (mstride> 0 || lio->r_nstrides <= 1) {
-                       moffset = addr;
-               } else {
-                       moffset = addr + mem_needed - lio->r_nbytes;
-               }
-
-               for (i = 0; i < lio_req.li_nstride; i++) {
-                       msg = check_file(lio->r_file,
-                                        foffset, lio->r_nbytes,
-                                        Pattern, Pattern_Length,
-                                        moffset - addr,
-                                        lio->r_oflags & O_PARALLEL);
-
-                       if (msg != NULL) {
-                               doio_fprintf(stderr, "%s\n%s\n",
-                                            msg,
-                            format_listio(req, lio->r_cmd, &lio_req, 1, fd, Pattern));
-                               doio_upanic(U_CORRUPTION);
-                               exit(E_COMPARE);
-                       }
-
-                       moffset += mstride;
-                       foffset += fstride;
-               }
-
-       }
-
-       rval = 0;
-
- lio_done:
-
-       /*
-        * General cleanup ...
-        *
-        */
-
-       /*
-        * Release file locks if necessary
-        */
-
-       if (got_lock) {
-               if (lock_file_region(lio->r_file, fd, F_UNLCK,
-                                    min_byte, (max_byte-min_byte+1)) < 0) {
-                       return -1;
-               }
-       }
-
-       return rval;
-#else
-       return -1;
-#endif
-}
-
-/*
- * perform ssread/sswrite operations
- */
-
-#ifdef _CRAY1
-
-int
-do_ssdio(req)
-struct io_req  *req;
-{
-       int         nbytes, nb;
-       char    errbuf[BSIZE];
-
-       nbytes = req->r_data.ssread.r_nbytes;
-
-       /*
-        * Grab core and sds space
-        */
-
-       if ((nb = alloc_mem(nbytes)) < 0)
-               return nb;
-
-       if (alloc_sds(nbytes) == -1)
-               return -1;
-
-       if (req->r_type == SSWRITE) {
-
-               /*
-                * Init data and ship it to the ssd
-                */
-
-               Pattern[0] = req->r_data.sswrite.r_pattern;
-               /*pattern_fill(Memptr, nbytes, Pattern, Pattern_Length, 0);*/
-               (*Data_Fill)(Memptr, nbytes, Pattern, Pattern_Length, 0);
-
-               if (sswrite((long)Memptr, (long)Sdsptr, btoc(nbytes)) == -1) {
-                       doio_fprintf(stderr, "sswrite() failed:  %s (%d)\n%s\n",
-                                    SYSERR, errno,
-                                    format_sds(req, Memptr, Sdsptr, Pattern));
-                       doio_upanic(U_RVAL);
-                       return -1;
-               }
-       } else {
-               /*
-                * read from sds
-                */
-
-               if (ssread((long)Memptr, (long)Sdsptr, btoc(nbytes)) == -1) {
-                       doio_fprintf(stderr, "ssread() failed: %s (%d)\n%s\n",
-                                    SYSERR, errno,
-                                    format_sds(req, Memptr, Sdsptr, Pattern));
-
-                       doio_upanic(U_RVAL);
-                       return -1;
-               }
-       }
-
-       /*
-        * Verify data if SSWRITE and v_opt
-        */
-
-       if (v_opt && req->r_type == SSWRITE) {
-               ssread((long)Memptr, (long)Sdsptr, btoc(nbytes));
-
-               if (pattern_check(Memptr, nbytes, Pattern, Pattern_Length, 0) == -1) {
-                       doio_fprintf(stderr,
-                                    "sds DATA COMPARE ERROR - ABORTING\n%s\n",
-                                    format_sds(req, Memptr, Sdsptr, Pattern));
-
-                       doio_upanic(U_CORRUPTION);
-                       exit(E_COMPARE);
-               }
-       }
-}
-
-#else
-
-#ifdef CRAY
-
-int
-do_ssdio(req)
-struct io_req  *req;
-{
-       doio_fprintf(stderr,
-                    "Internal Error - do_ssdio() called on a non-cray1 system\n");
-       alloc_mem(-1);
-       exit(E_INTERNAL);
-}
-
-#endif
-
-#endif /* _CRAY1 */
-
-\f
-/* ---------------------------------------------------------------------------
- * 
- * A new paradigm of doing the r/w system call where there is a "stub"
- * function that builds the info for the system call, then does the system
- * call; this is called by code that is common to all system calls and does
- * the syscall return checking, async I/O wait, iosw check, etc.
- *
- * Flags:
- *     WRITE, ASYNC, SSD/SDS, 
- *     FILE_LOCK, WRITE_LOG, VERIFY_DATA,
- */
-
-struct status {
-       int     rval;           /* syscall return */
-       int     err;            /* errno */
-       int     *aioid;         /* list of async I/O structures */
-};
-
-struct syscall_info {
-       char            *sy_name;
-       int             sy_type;
-       struct status   *(*sy_syscall)();
-       int             (*sy_buffer)();
-       char            *(*sy_format)();
-       int             sy_flags;
-       int             sy_bits;
-};
-
-#define        SY_WRITE                00001
-#define        SY_ASYNC                00010
-#define        SY_IOSW                 00020
-#define        SY_SDS                  00100
-
-char *
-fmt_ioreq(struct io_req *ioreq, struct syscall_info *sy, int fd)
-{
-       static char             *errbuf=NULL;
-       char                    *cp;
-       struct rw_req           *io;
-       struct smap             *aname;
-#ifdef CRAY
-       struct stat             sbuf;
-#endif
-
-       if(errbuf == NULL)
-               errbuf = (char *)malloc(32768);
-
-       io = &ioreq->r_data.io;
-
-       /*
-        * Look up async I/O completion strategy
-        */
-       for(aname=aionames;
-           aname->value != -1 && aname->value != io->r_aio_strat;
-           aname++)
-               ;
-
-       cp = errbuf;
-       cp += sprintf(cp, "Request number %d\n", Reqno);
-
-       cp += sprintf(cp, "          fd %d is file %s - open flags are %#o %s\n",
-                     fd, io->r_file, io->r_oflags, format_oflags(io->r_oflags));
-
-       if(sy->sy_flags & SY_WRITE) {
-               cp += sprintf(cp, "          write done at file offset %d - pattern is %c (%#o)\n",
-                             io->r_offset,
-                             (io->r_pattern == '\0') ? '?' : io->r_pattern, 
-                             io->r_pattern);
-       } else {
-               cp += sprintf(cp, "          read done at file offset %d\n",
-                     io->r_offset);
-       }
-
-       if(sy->sy_flags & SY_ASYNC) {
-               cp += sprintf(cp, "          async io completion strategy is %s\n",
-                             aname->string);
-       }
-
-       cp += sprintf(cp, "          number of requests is %d, strides per request is %d\n",
-                     io->r_nent, io->r_nstrides);
-
-       cp += sprintf(cp, "          i/o byte count = %d\n",
-                     io->r_nbytes);
+       cp += sprintf(cp, "          i/o byte count = %d\n",
+                     io->r_nbytes);
 
        cp += sprintf(cp, "          memory alignment is %s\n",
                      (io->r_uflags & F_WORD_ALIGNED) ? "aligned" : "unaligned");
 
-#ifdef CRAY
-       if(io->r_oflags & O_RAW) {
-               cp += sprintf(cp, "          RAW I/O: offset %% 4096 = %d length %% 4096 = %d\n",
-                             io->r_offset % 4096, io->r_nbytes % 4096);
-               fstat(fd, &sbuf);
-               cp += sprintf(cp, "          optimal file xfer size: small: %d large: %d\n",
-                             sbuf.st_blksize, sbuf.st_oblksize);
-               cp += sprintf(cp, "          cblks %d cbits %#o\n",
-                             sbuf.st_cblks, sbuf.st_cbits);
-       }
-#endif
 #ifndef NO_XFS
        if(io->r_oflags & O_DIRECT) {
                struct dioattr  finfo;
@@ -2307,136 +1536,6 @@ fmt_ioreq(struct io_req *ioreq, struct syscall_info *sy, int fd)
        return(errbuf);
 }
 
-/*
- * Issue listio requests
- */
-#ifdef CRAY
-struct status *
-sy_listio(req, sysc, fd, addr)
-struct io_req  *req;
-struct syscall_info *sysc;
-int fd;
-char *addr;
-{
-       int             offset, nbytes, nstrides, nents, aio_strat;
-       int             aio_id, signo, o, i, lc;
-       char            *a;
-       struct listreq  *lio_req, *l;
-       struct aio_info *aiop;
-       struct status   *status;
-
-       /*
-        * Initialize common fields - assumes r_oflags, r_file, r_offset, and
-        * r_nbytes are at the same offset in the read_req and reada_req
-        * structures.
-        */
-       offset    = req->r_data.io.r_offset;
-       nbytes    = req->r_data.io.r_nbytes;
-       nstrides  = req->r_data.io.r_nstrides;
-       nents     = req->r_data.io.r_nent;
-       aio_strat = req->r_data.io.r_aio_strat;
-
-       lc = (sysc->sy_flags & SY_ASYNC) ? LC_START : LC_WAIT;
-
-       status = (struct status *)malloc(sizeof(struct status));
-       if( status == NULL ){
-               doio_fprintf(stderr, "malloc failed, %s/%d\n",
-                       __FILE__, __LINE__);
-               return NULL;
-       }
-       status->aioid = (int *)malloc( (nents+1) * sizeof(int) );
-       if( status->aioid == NULL ){
-               doio_fprintf(stderr, "malloc failed, %s/%d\n",
-                       __FILE__, __LINE__);
-               return NULL;
-       }
-
-       signo = (aio_strat == A_SIGNAL) ? SIGUSR1 : 0;
-
-       lio_req = (struct listreq *)malloc(nents * sizeof(struct listreq));
-       if( lio_req == NULL ){
-               doio_fprintf(stderr, "malloc failed, %s/%d\n",
-                       __FILE__, __LINE__);
-               return NULL;
-       }
-       for(l=lio_req,a=addr,o=offset,i=0;
-           i < nents;
-           l++, a+=nbytes, o+=nbytes, i++) {
-
-               aio_id = aio_register(fd, aio_strat, signo);
-               aiop = aio_slot(aio_id);
-               status->aioid[i] = aio_id;
-
-               l->li_opcode    = (sysc->sy_flags & SY_WRITE) ? LO_WRITE : LO_READ;
-               l->li_offset    = o;
-               l->li_fildes    = fd;
-               l->li_buf       = a;
-               l->li_nbyte     = nbytes;
-               l->li_status    = &aiop->iosw;
-               l->li_signo     = signo;
-               l->li_nstride   = nstrides;
-               l->li_filstride = 0;
-               l->li_memstride = 0;
-               l->li_drvr      = 0;
-               l->li_flags     = LF_LSEEK;
-       }
-
-       status->aioid[nents] = -1;              /* end sentinel */
-
-       if( (status->rval = listio(lc, lio_req, nents)) == -1) {
-               status->err = errno;
-       }
-
-       free(lio_req);
-       return(status);
-}
-
-/*
- * Calculate the size of a request in bytes and min/max boundaries
- *
- * This assumes filestride & memstride = 0.
- */
-int
-listio_mem(struct io_req *req, int offset, int fmstride,
-          int *min, int *max)
-{
-       int     i, size;
-
-       size = stride_bounds(offset, fmstride,
-                            req->r_data.io.r_nstrides*req->r_data.io.r_nent,
-                            req->r_data.io.r_nbytes, min, max);
-       return(size);
-}
-
-char *
-fmt_listio(struct io_req *req, struct syscall_info *sy, int fd, char *addr)
-{
-       static char     *errbuf = NULL;
-       char            *cp;
-       char            *c, *opcode;
-       int             i;
-
-       if(errbuf == NULL){
-               errbuf = (char *)malloc(32768);
-               if( errbuf == NULL ){
-               doio_fprintf(stderr, "malloc failed, %s/%d\n",
-                       __FILE__, __LINE__);
-                       return NULL;
-               }
-       }
-
-       c = (sy->sy_flags & SY_ASYNC) ? "lc_wait" : "lc_start";
-
-       cp = errbuf;
-       cp += sprintf(cp, "syscall:  listio(%s, (?), %d)\n",
-                     c, req->r_data.io.r_nent);
-
-       cp += sprintf(cp, "          data buffer at %#o\n", addr);
-
-       return(errbuf);
-}
-#endif /* CRAY */
-
 struct status *
 sy_pread(req, sysc, fd, addr)
 struct io_req  *req;
@@ -2510,7 +1609,6 @@ fmt_pread(struct io_req *req, struct syscall_info *sy, int fd, char *addr)
        return(errbuf);
 }
 
-#ifndef CRAY
 struct status *
 sy_readv(req, sysc, fd, addr)
 struct io_req  *req;
@@ -2584,116 +1682,6 @@ fmt_readv(struct io_req *req, struct syscall_info *sy, int fd, char *addr)
                      sy->sy_name, fd);
        return(errbuf);
 }
-#endif /* !CRAY */
-
-#ifdef sgi
-struct status *
-sy_aread(req, sysc, fd, addr)
-struct io_req *req;
-struct syscall_info *sysc;
-int fd;
-char *addr;
-{
-       struct status *sy_arw();
-       return sy_arw(req, sysc, fd, addr, 0);
-}
-
-struct status *
-sy_awrite(req, sysc, fd, addr)
-struct io_req *req;
-struct syscall_info *sysc;
-int fd;
-char *addr;
-{
-       struct status *sy_arw();
-       return sy_arw(req, sysc, fd, addr, 1);
-}
-
-/*
-  #define sy_aread(A, B, C, D) sy_arw(A, B, C, D, 0)
-  #define sy_awrite(A, B, C, D)        sy_arw(A, B, C, D, 1)
- */
-
-struct status *
-sy_arw(req, sysc, fd, addr, rw)
-struct io_req *req;
-struct syscall_info *sysc;
-int fd;
-char *addr;
-int rw;
-{
-       /* POSIX 1003.1b-1993 Async read */
-       struct status           *status;
-       int                     rc;
-       int                     aio_id, aio_strat, signo;
-       struct aio_info         *aiop;
-
-       status = (struct status *)malloc(sizeof(struct status));
-       if( status == NULL ){
-               doio_fprintf(stderr, "malloc failed, %s/%d\n",
-                       __FILE__, __LINE__);
-               return NULL;
-       }
-       aio_strat = req->r_data.io.r_aio_strat;
-       signo = (aio_strat == A_SIGNAL) ? SIGUSR1 : 0;
-
-       aio_id = aio_register(fd, aio_strat, signo);
-       aiop = aio_slot(aio_id);
-
-       memset( (void *)&aiop->aiocb, 0, sizeof(aiocb_t));
-
-       aiop->aiocb.aio_fildes = fd;
-       aiop->aiocb.aio_nbytes = req->r_data.io.r_nbytes;
-       aiop->aiocb.aio_offset = req->r_data.io.r_offset;
-       aiop->aiocb.aio_buf = addr;
-       aiop->aiocb.aio_reqprio = 0;    /* must be 0 */
-       aiop->aiocb.aio_lio_opcode = 0;
-
-       if(aio_strat == A_SIGNAL) {     /* siginfo(2) stuff */
-               aiop->aiocb.aio_sigevent.sigev_notify = SIGEV_SIGNAL;
-               aiop->aiocb.aio_sigevent.sigev_signo = signo;
-       } else if(aio_strat == A_CALLBACK) {
-               aiop->aiocb.aio_sigevent.sigev_signo = 0;
-               aiop->aiocb.aio_sigevent.sigev_notify = SIGEV_CALLBACK;
-               aiop->aiocb.aio_sigevent.sigev_func = cb_handler;
-               aiop->aiocb.aio_sigevent.sigev_value.sival_int = aio_id;
-       } else {
-               aiop->aiocb.aio_sigevent.sigev_notify = SIGEV_NONE;
-               aiop->aiocb.aio_sigevent.sigev_signo = 0;
-       }
-
-       if(rw)
-               rc = aio_write(&aiop->aiocb);
-       else
-               rc = aio_read(&aiop->aiocb);
-
-       status->aioid = (int *)malloc( 2 * sizeof(int) );
-       if( status->aioid == NULL ){
-               doio_fprintf(stderr, "malloc failed, %s/%d\n",
-                       __FILE__, __LINE__);
-               return NULL;
-       }
-       status->aioid[0] = aio_id;
-       status->aioid[1] = -1;
-       status->rval = rc;
-       status->err = errno;
-       return(status);
-}
-
-char *
-fmt_aread(struct io_req *req, struct syscall_info *sy, int fd, char *addr)
-{
-       static char     errbuf[32768];
-       char            *cp;
-
-       cp = errbuf;
-       cp += sprintf(cp, "syscall:  %s(&aiop->aiocb)\n",
-                     sy->sy_name);
-       return(errbuf);
-}
-#endif /* sgi */
-
-#ifndef CRAY
 
 struct status *
 sy_mmread(req, sysc, fd, addr)
@@ -2811,70 +1799,8 @@ fmt_mmrw(struct io_req *req, struct syscall_info *sy, int fd, char *addr)
                      
        return(errbuf);
 }
-#endif /* !CRAY */
-
-struct syscall_info syscalls[] = {
-#ifdef CRAY
-       { "listio-read-sync",           LREAD,
-         sy_listio,    NULL,           fmt_listio,
-         SY_IOSW
-       },
-       { "listio-read-strides-sync",   LSREAD,
-         sy_listio,    listio_mem,     fmt_listio,
-         SY_IOSW
-       },
-       { "listio-read-reqs-sync",      LEREAD,
-         sy_listio,    listio_mem,     fmt_listio,
-         SY_IOSW
-       },
-       { "listio-read-async",          LREADA,
-         sy_listio,    NULL,           fmt_listio,
-         SY_IOSW | SY_ASYNC
-       },
-       { "listio-read-strides-async",  LSREADA,
-         sy_listio,    listio_mem,     fmt_listio,
-         SY_IOSW | SY_ASYNC
-       },
-       { "listio-read-reqs-async",     LEREADA,
-         sy_listio,    listio_mem,     fmt_listio,
-         SY_IOSW | SY_ASYNC
-       },
-       { "listio-write-sync",          LWRITE,
-         sy_listio,    listio_mem,     fmt_listio,
-         SY_IOSW | SY_WRITE
-       },
-       { "listio-write-strides-sync",  LSWRITE,
-         sy_listio,    listio_mem,     fmt_listio,
-         SY_IOSW | SY_WRITE
-       },
-       { "listio-write-reqs-sync",     LEWRITE,
-         sy_listio,    listio_mem,     fmt_listio,
-         SY_IOSW | SY_WRITE
-       },
-       { "listio-write-async",         LWRITEA,
-         sy_listio,    listio_mem,     fmt_listio,
-         SY_IOSW | SY_WRITE | SY_ASYNC
-       },
-       { "listio-write-strides-async", LSWRITEA,
-         sy_listio,    listio_mem,     fmt_listio,
-         SY_IOSW | SY_WRITE | SY_ASYNC
-       },
-       { "listio-write-reqs-async",    LEWRITEA,
-         sy_listio,    listio_mem,     fmt_listio,
-         SY_IOSW | SY_WRITE | SY_ASYNC
-       },
-#endif
 
-#ifdef sgi
-       { "aread",                      AREAD,
-         sy_aread,     NULL,           fmt_aread,
-         SY_IOSW | SY_ASYNC
-       },
-       { "awrite",                     AWRITE,
-         sy_awrite,    NULL,           fmt_aread,
-         SY_IOSW | SY_WRITE | SY_ASYNC
-       },
-#endif
+struct syscall_info syscalls[] = {
        { "pread",                      PREAD,
          sy_pread,     NULL,           fmt_pread,
          0
@@ -2884,7 +1810,6 @@ struct syscall_info syscalls[] = {
          SY_WRITE
        },
 
-#ifndef CRAY
        { "readv",                      READV,
          sy_readv,     NULL,           fmt_readv,
          0
@@ -2901,7 +1826,6 @@ struct syscall_info syscalls[] = {
          sy_mmwrite,   NULL,           fmt_mmrw,
          SY_WRITE
        },
-#endif
 
        { NULL,                         0,
          0,            0,              0,
@@ -2922,13 +1846,6 @@ do_rw(req)
        struct status           *s;
        struct wlog_rec         wrec;
        struct syscall_info     *sy;
-#ifdef sgi
-       struct aio_info         *aiop;
-#endif
-#ifdef CRAY
-       /* REFERENCED */
-       struct iosw             *iosw;
-#endif
 #ifndef NO_XFS
        struct fd_cache         *fdc;
 #endif
@@ -2990,11 +1907,6 @@ do_rw(req)
                mem_needed = nbytes;
        }
 
-#ifdef CRAY
-       if ((rval = alloc_mem(mem_needed + wtob(1) * 2 + MPP_BUMP * sizeof(UINT64_T))) < 0) {
-               return rval;
-       }
-#else
 #ifndef NO_XFS
        /* get memory alignment for using DIRECT I/O */
        fdc = alloc_fdcache(file, oflags);
@@ -3007,7 +1919,6 @@ do_rw(req)
                return rval;
        }
 #endif
-#endif /* CRAY */
 
        Pattern[0] = pattern;
 
@@ -3016,35 +1927,9 @@ do_rw(req)
         */
 
        if (oflags & O_SSD) {
-#ifdef CRAY
-#ifndef _CRAYMPP
-               if (alloc_sds(nbytes) == -1)
-                       return -1;
-
-               if( sy->sy_flags & SY_WRITE ) {
-                       /*pattern_fill(Memptr, mem_needed, Pattern, Pattern_Length, 0);*/
-                       (*Data_Fill)(Memptr, nbytes, Pattern, Pattern_Length, 0);
-
-                       if (sswrite((long)Memptr, Sdsptr, btoc(mem_needed)) == -1) {
-                               doio_fprintf(stderr, "sswrite(%d, %d, %d) failed:  %s (%d)\n",
-                                            (long)Memptr, Sdsptr, 
-                                            btoc(mem_needed), SYSERR, errno);
-                               fflush(stderr);
-                               return -1;
-                       }
-               }
-
-               addr = (char *)Sdsptr;
-#else
-               doio_fprintf(stderr, "Invalid O_SSD flag was generated for MPP system\n");
-               fflush(stderr);
-               return -1;
-#endif /* _CRAYMPP */
-#else  /* CRAY */
                doio_fprintf(stderr, "Invalid O_SSD flag was generated for non-Cray system\n");
                fflush(stderr);
                return -1;
-#endif /* CRAY */
        } else {
                addr = Memptr;
 
@@ -3057,9 +1942,6 @@ do_rw(req)
                 */
 
                if (! (req->r_data.io.r_uflags & F_WORD_ALIGNED)) {
-#ifdef _CRAYMPP
-                       addr += random_range(0, MPP_BUMP, 1, NULL) * sizeof(int);
-#endif
                        addr += random_range(0, wtob(1) - 1, 1, NULL);
                }
 
@@ -3186,80 +2068,7 @@ do_rw(req)
                 * structure.
                 */
 
-               if( sy->sy_flags & SY_IOSW ) {
-#ifdef CRAY
-                       for( i=0; i < nents; i++ ) {
-                               if(s->aioid == NULL)
-                                       break; /* >>> error condition? */
-                               aiop = aio_slot(s->aioid[i]);
-                               iosw = &aiop->iosw;
-                               if(iosw->sw_error != 0) {
-                                       doio_fprintf(stderr,
-                                                    "%s() iosw error set: %s\n%s\n%s\n",
-                                                    sy->sy_name,
-                                                    strerror(iosw->sw_error),
-                                                    fmt_ioreq(req, sy, fd),
-                                                    (*sy->sy_format)(req, sy, fd, addr));
-                                       doio_upanic(U_IOSW);
-                                       rval = -1;
-                               } else if(iosw->sw_count != nbytes*nstrides) {
-                                       doio_fprintf(stderr,
-                                                    "Bad iosw from %s() #%d\nExpected (%d,%d,%d), got (%d,%d,%d)\n%s\n%s\n",
-                                                    sy->sy_name, i,
-                                                    1, 0, nbytes*nstrides,
-                                                    iosw->sw_flag,
-                                                    iosw->sw_error,
-                                                    iosw->sw_count,
-                                                    fmt_ioreq(req, sy, fd),
-                                                    (*sy->sy_format)(req, sy, fd, addr));
-                                       doio_upanic(U_IOSW);
-                                       rval = -1;
-                               }
-
-                               aio_unregister(s->aioid[i]);
-                       }
-#endif /* CRAY */
-#ifdef sgi
-                       for( i=0; s->aioid[i] != -1; i++ ) {
-                               if(s->aioid == NULL) {
-                                       doio_fprintf(stderr,
-                                                    "aioid == NULL!\n");
-                                       break;
-                               }
-                               aiop = aio_slot(s->aioid[i]);
-
-                               /*
-                                * make sure the io completed without error
-                                */
-                               if (aiop->aio_errno != 0) {
-                                       doio_fprintf(stderr,
-                                                    "%s() aio error set: %s (%d)\n%s\n%s\n",
-                                                    sy->sy_name,
-                                                    strerror(aiop->aio_errno),
-                                                    aiop->aio_errno,
-                                                    fmt_ioreq(req, sy, fd),
-                                                    (*sy->sy_format)(req, sy, fd, addr));
-                                       doio_upanic(U_IOSW);
-                                       rval = -1;
-                               } else if (aiop->aio_ret != nbytes) {
-                                       doio_fprintf(stderr,
-                                                    "Bad aio return from %s() #%d\nExpected (%d,%d), got (%d,%d)\n%s\n%s\n",
-                                                    sy->sy_name, i,
-                                                    0, nbytes,
-                                                    aiop->aio_errno,
-                                                    aiop->aio_ret,
-                                                    fmt_ioreq(req, sy, fd),
-                                                    (*sy->sy_format)(req, sy, fd, addr));
-                                       aio_unregister(s->aioid[i]);
-                                       doio_upanic(U_IOSW);
-                                       return -1;
-                               } else {
-                                       aio_unregister(s->aioid[i]);
-                                       rval = 0;
-                               }
-                       }
-#endif /* sgi */
-               } else {
+               if( !(sy->sy_flags & SY_IOSW) ) {
 
                        if(s->rval != mem_needed) {
                                doio_fprintf(stderr,
@@ -3428,7 +2237,6 @@ do_xfsctl(req)
 /*
  *  fsync(2) and fdatasync(2)
  */
-#ifndef CRAY
 int
 do_sync(req)
        struct io_req   *req;
@@ -3465,8 +2273,6 @@ do_sync(req)
        }
        return (rval == -1) ? -1 : 0;
 }
-#endif
-
 
 int
 doio_pat_fill(char *addr, int mem_needed, char *Pattern, int Pattern_Length,
@@ -3583,11 +2389,6 @@ int      fsa;
                flags = Validation_Flags | O_RDONLY;
        } else {
                flags = O_RDONLY;
-               if (fsa) {
-#ifdef CRAY
-                       flags |= O_PARALLEL | O_RAW | O_WELLFORMED;
-#endif
-               }
        }
 
        if ((fd = alloc_fd(file, flags)) == -1) {
@@ -3690,7 +2491,7 @@ doio_fprintf(FILE *stream, char *format, ...)
  * Simple function for allocating core memory.  Uses Memsize and Memptr to
  * keep track of the current amount allocated.
  */
-#ifndef CRAY
+
 int
 alloc_mem(nbytes)
 int nbytes;
@@ -3703,9 +2504,6 @@ int nbytes;
        char            filename[255];
 #ifdef linux
        struct shmid_ds shm_ds;
-#endif
-
-#ifdef linux
        bzero( &shm_ds, sizeof(struct shmid_ds) );
 #endif
 
@@ -3718,36 +2516,17 @@ int nbytes;
 
                        switch(Memalloc[me].memtype) {
                        case MEM_DATA:
-#ifdef sgi
-                               if(Memalloc[me].flags & MEMF_MPIN)
-                                       munpin(Memalloc[me].space,
-                                              Memalloc[me].size);
-#endif
                                free(Memalloc[me].space);
                                Memalloc[me].space = NULL;
                                Memptr = NULL;
                                Memsize = 0;
                                break;
                        case MEM_SHMEM:
-#ifdef sgi
-                               if(Memalloc[me].flags & MEMF_MPIN)
-                                       munpin(Memalloc[me].space,
-                                              Memalloc[me].size);
-#endif
                                shmdt(Memalloc[me].space);
                                Memalloc[me].space = NULL;
-#ifdef sgi
-                               shmctl(Memalloc[me].fd, IPC_RMID);
-#else
                                shmctl(Memalloc[me].fd, IPC_RMID, &shm_ds);
-#endif
                                break;
                        case MEM_MMAP:
-#ifdef sgi
-                               if(Memalloc[me].flags & MEMF_MPIN)
-                                       munpin(Memalloc[me].space,
-                                              Memalloc[me].size);
-#endif
                                munmap(Memalloc[me].space, 
                                       Memalloc[me].size);
                                close(Memalloc[me].fd);
@@ -3778,10 +2557,6 @@ int nbytes;
        case MEM_DATA:
                if( nbytes > M->size ) {
                        if( M->space != NULL ){
-#ifdef sgi
-                               if( M->flags & MEMF_MPIN )
-                                       munpin( M->space, M->size );
-#endif
                                free(M->space);
                        }
                        M->space = NULL;
@@ -3794,14 +2569,6 @@ int nbytes;
                                             nbytes, SYSERR, errno);
                                return -1;
                        }
-#ifdef sgi
-                       if(M->flags & MEMF_MPIN) {
-                               if( mpin(cp, nbytes) == -1 ) {
-                                       doio_fprintf(stderr, "mpin(0x%lx, %d) failed:  %s (%d)\n",
-                                            cp, nbytes, SYSERR, errno);
-                               }
-                       }
-#endif
                        M->space = (void *)cp;
                        M->size = nbytes;
                }
@@ -3810,10 +2577,6 @@ int nbytes;
        case MEM_MMAP:
                if( nbytes > M->size ) {
                        if( M->space != NULL ) {
-#ifdef sgi
-                               if( M->flags & MEMF_MPIN )
-                                       munpin(M->space, M->size);
-#endif
                                munmap(M->space, M->size);
                                close(M->fd);
                                if( M->flags & MEMF_FILE )
@@ -3846,14 +2609,6 @@ int nbytes;
                        /* bias flags on MEMF_PRIVATE etc */
                        if(M->flags & MEMF_PRIVATE)
                                flags |= MAP_PRIVATE;
-#ifdef sgi
-                       if(M->flags & MEMF_LOCAL)
-                               flags |= MAP_LOCAL;
-                       if(M->flags & MEMF_AUTORESRV)
-                               flags |= MAP_AUTORESRV;
-                       if(M->flags & MEMF_AUTOGROW)
-                               flags |= MAP_AUTOGROW;
-#endif
                        if(M->flags & MEMF_SHARED)
                                flags |= MAP_SHARED;
 
@@ -3870,11 +2625,6 @@ int nbytes;
                                             M->name);
                                doio_fprintf(stderr, "\t%s%s%s%s%s",
                                             (flags & MAP_PRIVATE) ? "private " : "",
-#ifdef sgi
-                                            (flags & MAP_LOCAL) ? "local " : "",
-                                            (flags & MAP_AUTORESRV) ? "autoresrv " : "",
-                                            (flags & MAP_AUTOGROW) ? "autogrow " : "",
-#endif
                                             (flags & MAP_SHARED) ? "shared" : "");
                                return(-1);
                        }
@@ -3884,16 +2634,7 @@ int nbytes;
        case MEM_SHMEM:
                if( nbytes > M->size ) {
                        if( M->space != NULL ) {
-#ifdef sgi
-                               if( M->flags & MEMF_MPIN )
-                                       munpin(M->space, M->size);
-#endif
-                               shmdt( M->space );
-#ifdef sgi
-                               shmctl( M->fd, IPC_RMID );
-#else
                                shmctl( M->fd, IPC_RMID, &shm_ds );
-#endif
                        }
                        M->space = NULL;
                        M->size = 0;
@@ -3929,14 +2670,6 @@ int nbytes;
                                             shmid, SYSERR, errno);
                                return(-1);
                        }
-#ifdef sgi
-                       if(M->flags & MEMF_MPIN) {
-                               if( mpin(M->space, M->size) == -1 ) {
-                                       doio_fprintf(stderr, "mpin(0x%lx, %d) failed:  %s (%d)\n",
-                                                    M->space, M->size, SYSERR, errno);
-                           }
-                       }
-#endif
                }
                break;
 
@@ -3952,123 +2685,6 @@ int nbytes;
        mturn++;
        return 0;
 }
-#endif /* !CRAY */
-
-#ifdef CRAY
-int
-alloc_mem(nbytes)
-int nbytes;
-{
-       char    *cp;
-       int     ip;
-       static  char    *malloc_space;
-
-       /*
-        * The "unicos" version of this did some stuff with sbrk;
-        * this caused problems with async I/O on irix, and now appears
-        * to be causing problems with FSA I/O on unicos/mk.
-        */
-#ifdef NOTDEF
-       if (nbytes > Memsize) {
-               if ((cp = (char *)sbrk(nbytes - Memsize)) == (char *)-1) {
-                       doio_fprintf(stderr, "sbrk(%d) failed:  %s (%d)\n",
-                                    nbytes - Memsize, SYSERR, errno);
-                       return -1;
-               }
-
-               if (Memsize == 0)
-                       Memptr = cp;
-               Memsize += nbytes - Memsize;
-       }
-#else
-
-       /* nbytes = -1 means "free all allocated memory" */
-       if( nbytes == -1 ) {
-               free( malloc_space );
-               Memptr = NULL;
-               Memsize = 0;
-               return 0;
-       }
-
-       if( nbytes > Memsize ) {
-           if( Memsize != 0 )
-               free( malloc_space );
-
-           if( (cp = malloc_space = malloc( nbytes )) == NULL ) {
-               doio_fprintf(stderr, "malloc(%d) failed:  %s (%d)\n",
-                            nbytes, SYSERR, errno);
-               return -1;
-           }
-
-#ifdef _CRAYT3E
-           /* T3E requires memory to be aligned on 0x40 word boundaries */
-           ip = (int)cp;
-           if( ip & 0x3F != 0 ) {
-               doio_fprintf(stderr, "malloc(%d) = 0x%x(0x%x) not aligned by 0x%x\n",
-                            nbytes, cp, ip, ip & 0x3f);
-
-               free(cp);
-               if( (cp = malloc_space = malloc( nbytes + 0x40 )) == NULL ) {
-                   doio_fprintf(stderr, "malloc(%d) failed:  %s (%d)\n",
-                                nbytes, SYSERR, errno);
-                   return -1;
-               }
-               ip = (int)cp;
-               cp += (0x40 - (ip & 0x3F));
-           }
-#endif /* _CRAYT3E */
-           Memptr = cp;
-           Memsize = nbytes;
-       }
-#endif /* NOTDEF */
-       return 0;
-}
-#endif /* CRAY */
-
-/*
- * Simple function for allocating sds space.  Uses Sdssize and Sdsptr to
- * keep track of location and size of currently allocated chunk.
- */
-
-#ifdef _CRAY1
-
-int
-alloc_sds(nbytes)
-int nbytes;
-{
-       int nblks;
-
-       if (nbytes > Sdssize) {
-               if ((nblks = ssbreak(btoc(nbytes - Sdssize))) == -1) {
-                       doio_fprintf(stderr, "ssbreak(%d) failed:  %s (%d)\n",
-                                    btoc(nbytes - Sdssize), SYSERR, errno);
-                       return -1;
-               }
-
-               Sdssize = ctob(nblks);
-               Sdsptr = 0;
-       }
-
-       return 0;
-}
-
-#else
-
-#ifdef CRAY
-
-int
-alloc_sds(nbytes)
-int    nbytes;
-{
-       doio_fprintf(stderr,
-                    "Internal Error - alloc_sds() called on a CRAY2 system\n");
-       alloc_mem(-1);
-       exit(E_INTERNAL);
-}
-
-#endif
-
-#endif /* _CRAY1 */
 
 /*
  * Function to maintain a file descriptor cache, so that doio does not have
@@ -4119,11 +2735,9 @@ int      oflags;
                        if (cp->c_fd != -1) {
                                close(cp->c_fd);
                        }
-#ifndef CRAY
                        if (cp->c_memaddr != NULL) {
                                munmap(cp->c_memaddr, cp->c_memlen);
                        }
-#endif
                }
 
                free(cache);
@@ -4146,11 +2760,7 @@ int      oflags;
                if (cp->c_fd != -1 &&
                    cp->c_oflags == oflags &&
                    strcmp(cp->c_file, file) == 0) {
-#ifdef CRAY
-                       cp->c_rtc = _rtc();
-#else
                        cp->c_rtc = Reqno;
-#endif
                        return cp;
                }
 
@@ -4234,11 +2844,7 @@ int      oflags;
        free_slot->c_fd = fd;
        free_slot->c_oflags = oflags;
        strcpy(free_slot->c_file, file);
-#ifdef CRAY
-       free_slot->c_rtc = _rtc();
-#else
        free_slot->c_rtc = Reqno;
-#endif
 
 #ifndef NO_XFS
        if (oflags & O_DIRECT) {
@@ -4257,10 +2863,8 @@ int      oflags;
        free_slot->c_miniosz = finfo.d_miniosz;
        free_slot->c_maxiosz = finfo.d_maxiosz;
 #endif
-#ifndef CRAY
        free_slot->c_memaddr = NULL;
        free_slot->c_memlen = 0;
-#endif
 
        return free_slot;
 }
@@ -4272,104 +2876,6 @@ int     oflags;
  *
  */
 
-#ifdef sgi
-/*
- * "caller-id" for signals
- */
-void
-signal_info(int sig, siginfo_t *info, void *v)
-{
-       int haveit = 0;
-
-       if(info != NULL) {
-               switch(info->si_code) {
-               case SI_USER:
-                       doio_fprintf(stderr,
-                                    "signal_info: si_signo %d si_errno %d si_code SI_USER pid %d uid %d\n",
-                                    info->si_signo, info->si_errno, 
-                                    info->si_pid, info->si_uid);
-                       haveit = 1;
-                       break;
-
-               case SI_QUEUE:
-                       doio_fprintf(stderr, "signal_info  si_signo %d si_code = SI_QUEUE\n",
-                                    info->si_signo);
-                       haveit = 1;
-                       break;
-               }
-
-               if( ! haveit ){
-                       if( (info->si_signo == SIGSEGV) ||
-                          (info->si_signo == SIGBUS) ){
-                               doio_fprintf(stderr, "signal_info  si_signo %d si_errno %d si_code = %d  si_addr=%p  active_mmap_rw=%d havesigint=%d\n",
-                                            info->si_signo, info->si_errno,
-                                            info->si_code, info->si_addr,
-                                            active_mmap_rw,
-                                            havesigint);
-                               haveit = 1;
-                          }
-               }
-
-               if( !haveit ){
-                       doio_fprintf(stderr, "signal_info: si_signo %d si_errno %d unknown code %d\n",
-                                    info->si_signo, info->si_errno,
-                                    info->si_code);
-               }
-       } else {
-               doio_fprintf(stderr, "signal_info: sig %d\n", sig);
-       }
-}
-#endif
-
-#ifdef sgi
-void
-cleanup_handler(int sig, siginfo_t *info, void *v)
-{
-       havesigint=1; /* in case there's a followup signal */
-       /*signal_info(sig, info, v);*/  /* be quiet on "normal" kill */
-       alloc_mem(-1);
-       exit(0);
-}
-
-
-void
-die_handler(int sig, siginfo_t *info, void *v)
-{
-       doio_fprintf(stderr, "terminating on signal %d\n", sig);
-       signal_info(sig, info, v);
-       alloc_mem(-1);
-       exit(1);
-}
-
-void
-sigbus_handler(int sig, siginfo_t *info, void *v)
-{
-       /* While we are doing a memcpy to/from an mmapped region we can
-          get a SIGBUS for a variety of reasons--and not all of them
-          should be considered failures.
-
-          Under normal conditions if we get a SIGINT it means we've been
-          told to shutdown.  However, if we're currently doing the above-
-          mentioned memcopy then the kernel will follow that SIGINT with
-          a SIGBUS.  We can guess that we're in this situation by seeing
-          that the si_errno field in the siginfo structure has EINTR as
-          an errno.  (We might make the guess stronger by looking at the
-          si_addr field to see that it's not faulting off the end of the
-          mmapped region, but it seems that in such a case havesigint
-          would not have been set so maybe that doesn't make the guess
-          stronger.)
-        */
-
-       
-       if( active_mmap_rw && havesigint && (info->si_errno == EINTR) ){
-               cleanup_handler( sig, info, v );
-       }
-       else{
-               die_handler( sig, info, v );
-       }
-}
-#else
-
 void
 cleanup_handler()
 {
@@ -4387,7 +2893,6 @@ int sig;
        exit(1);
 }
 
-#ifndef CRAY
 void
 sigbus_handler(sig)
 int sig;
@@ -4402,9 +2907,6 @@ int sig;
        else
                die_handler(sig);
 }
-#endif /* !CRAY */
-#endif /* sgi */
-
 
 void
 noop_handler(sig)
@@ -4483,34 +2985,6 @@ dump_aio()
        fprintf(stderr, "%d active async i/os\n", count);
 }
 
-
-#ifdef sgi
-/*
- * Signal handler called as a callback, not as a signal.
- * 'val' is the value from sigev_value and is assumed to be the
- * Aio_Info[] index.
- */
-void
-cb_handler(val)
-sigval_t val;
-{
-       struct aio_info *aiop;
-
-/*printf("cb_handler requesting slot %d\n", val.sival_int);*/
-       aiop = aio_slot( val.sival_int );
-/*printf("cb_handler, aiop=%p\n", aiop);*/
-
-/*printf("%d in cb_handler\n", getpid() );*/
-       if (aiop->strategy == A_CALLBACK) {
-               aiop->signalled++;
-
-               if (aio_done(aiop)) {
-                       aiop->done++;
-               }
-       }
-}
-#endif
-
 struct aio_info *
 aio_slot(aio_id)
 int    aio_id;
@@ -4563,9 +3037,6 @@ int               sig;
        aiop->fd = fd;
        aiop->strategy = strategy;
        aiop->done = 0;
-#ifdef CRAY
-       bzero((char *)&aiop->iosw, sizeof(aiop->iosw));
-#endif
 
        if (strategy == A_SIGNAL) {
                aiop->sig = sig;
@@ -4610,111 +3081,6 @@ int     aio_id;
 #endif
        sigset_t        sigset;
        struct aio_info *aiop;
-#ifdef CRAY
-       struct iosw     *ioswlist[1];
-#endif
-#ifdef sgi
-       const aiocb_t   *aioary[1];
-#endif
-       int r, cnt;
-
-
-       aiop = aio_slot(aio_id);
-/*printf("%d aiop B =%p\n", getpid(), aiop);*/
-
-       switch (aiop->strategy) {
-       case A_POLL:
-               while (! aio_done(aiop))
-                       ;
-               break;
-
-       case A_SIGNAL:
-               sigemptyset(&sigset);
-               sighold( aiop->sig );
-
-               while ( !aiop->signalled || !aiop->done ) {
-                       sigsuspend(&sigset);
-                       sighold( aiop->sig );
-               }
-               break;
-
-#ifdef CRAY
-       case A_RECALL:
-               ioswlist[0] = &aiop->iosw;
-               if (recall(aiop->fd, 1, ioswlist) < 0) {
-                       doio_fprintf(stderr, "recall() failed:  %s (%d)\n",
-                                    SYSERR, errno);
-                       exit(E_SETUP);
-               }
-               break;
-
-#ifdef RECALL_SIZEOF
-
-       case A_RECALLA:
-               RECALL_INIT(mask);
-               RECALL_SET(mask, aiop->fd);
-               if (recalla(mask) < 0) {
-                       doio_fprintf(stderr, "recalla() failed:  %s (%d)\n",
-                                    SYSERR, errno);
-                       exit(E_SETUP);
-               }
-
-               RECALL_CLR(mask, aiop->fd);
-               break;
-#endif
-
-       case A_RECALLS:
-               ioswlist[0] = &aiop->iosw;
-               if (recalls(1, ioswlist) < 0) {
-                       doio_fprintf(stderr, "recalls failed:  %s (%d)\n",
-                               SYSERR, errno);
-                       exit(E_SETUP);
-               }
-               break;
-#endif /* CRAY */
-
-#ifdef sgi
-       case A_CALLBACK:
-               aioary[0] = &aiop->aiocb;
-               cnt=0;
-               do {
-                       r = aio_suspend(aioary, 1, NULL);
-                       if( r == -1 ){
-                               doio_fprintf(stderr, "aio_suspend failed: %s (%d)\n",
-                                            SYSERR, errno );
-                               exit(E_SETUP);
-                       }
-                       cnt++;
-               } while(aiop->done == 0);
-
-#if 0
-               /*
-                * after having this set for a while, I've decided that
-                * it's too noisy
-                */
-               if(cnt > 1)
-                       doio_fprintf(stderr, "aio_wait: callback wait took %d tries\n", cnt);
-#endif
-
-               /* 
-                * Note: cb_handler already calls aio_done
-                */
-               break;
-
-
-       case A_SUSPEND:
-               aioary[0] = &aiop->aiocb;
-               r = aio_suspend(aioary, 1, NULL);
-               if( r == -1 ){
-                       doio_fprintf(stderr, "aio_suspend failed: %s (%d)\n",
-                                    SYSERR, errno );
-                       exit(E_SETUP);
-               }
-
-               aio_done(aiop);
-               break;
-#endif
-       }
 
 /*printf("aio_wait: errno %d return %d\n", aiop->aio_errno, aiop->aio_ret);*/
 
@@ -4747,29 +3113,7 @@ time_t   t;
 int
 aio_done(struct aio_info *ainfo)
 {
-#ifdef CRAY
-       return ainfo->iosw.sw_flag;
-#endif
-
-#ifdef sgi
-       if( (ainfo->aio_errno = aio_error(&ainfo->aiocb)) == -1 ){
-               doio_fprintf(stderr, "aio_done: aio_error failed: %s (%d)\n",
-                            SYSERR, errno );
-               exit(E_SETUP);
-       }
-       /*printf("%d aio_done aio_errno=%d\n", getpid(), ainfo->aio_errno);*/
-       if( ainfo->aio_errno != EINPROGRESS ){
-               if( (ainfo->aio_ret = aio_return(&ainfo->aiocb)) == -1 ){
-                       doio_fprintf(stderr, "aio_done: aio_return failed: %s (%d)\n",
-                                    SYSERR, errno );
-                       exit(E_SETUP);
-               }
-       }
-
-       return (ainfo->aio_errno != EINPROGRESS);
-#else
         return -1;   /* invalid */
-#endif
 }
 
 /*
@@ -4789,18 +3133,6 @@ int      mask;
        if (U_opt == 0 || (mask & Upanic_Conditions) == 0) {
                return;
        }
-
-#ifdef CRAY
-       if (upanic(PA_SET) < 0) {
-               doio_fprintf(stderr, "WARNING - Could not set the panic flag - upanic(PA_SET) failed:  %s (%d)\n",
-                            SYSERR, errno);
-       }
-
-       upanic(PA_PANIC);
-#endif
-#ifdef sgi
-       syssgi(1005);   /* syssgi test panic - DEBUG kernels only */
-#endif
        doio_fprintf(stderr, "WARNING - upanic() failed\n");
 }
 
@@ -4905,16 +3237,11 @@ char    *opts;
                        break;
 
                case 'M':       /* memory allocation types */
-#ifndef CRAY
                        nmemargs = string_to_tokens(optarg, memargs, 32, ",");
                        for(ma=0; ma < nmemargs; ma++) {
                                parse_memalloc(memargs[ma]);
                        }
                        /*dump_memalloc();*/
-#else
-                       fprintf(stderr, "%s%s: Error: -M isn't supported on this platform\n", Prog, TagName);
-                       exit(1);
-#endif
                        M_opt++;
                        break;
 
@@ -4964,14 +3291,6 @@ char     *opts;
                                Validation_Flags = O_SYNC;
                        } else if (strcasecmp(optarg, "buffered") == 0) {
                                Validation_Flags = 0;
-#ifdef CRAY
-                       } else if (strcasecmp(optarg, "parallel") == 0) {
-                               Validation_Flags = O_PARALLEL;
-                       } else if (strcasecmp(optarg, "ldraw") == 0) {
-                               Validation_Flags = O_LDRAW;
-                       } else if (strcasecmp(optarg, "raw") == 0) {
-                               Validation_Flags = O_RAW;
-#endif
                        } else if (strcasecmp(optarg, "direct") == 0) {
                                Validation_Flags = O_DIRECT;
                        } else {
@@ -5097,7 +3416,6 @@ char      *opts;
  *     NBLKS
  *     nblks worth of directories - 1 int pids
  */
-#ifndef CRAY
 void
 parse_memalloc(char *arg)
 {
@@ -5223,8 +3541,6 @@ dump_memalloc()
        }
 }
 
-#endif /* !CRAY */
-
 /*
  * -d <op>:<time> - doio inter-operation delay
  *     currently this permits ONE type of delay between operations.
@@ -5312,9 +3628,6 @@ FILE      *stream;
        fprintf(stream, "\t                     Operations are:\n");
        fprintf(stream, "\t                         select:time (1 second=1000000)\n");
        fprintf(stream, "\t                         sleep:time (1 second=1)\n");
-#ifdef sgi
-       fprintf(stream, "\t                         sginap:time (1 second=CLK_TCK=100)\n");
-#endif
        fprintf(stream, "\t                         alarm:time (1 second=1)\n");
        fprintf(stream, "\t-e                   Re-exec children before entering the main\n");
        fprintf(stream, "\t                     loop.  This is useful for spreading\n");
@@ -5323,35 +3636,19 @@ FILE    *stream;
        fprintf(stream, "\t-v                   Verify writes - this is done by doing a buffered\n");
        fprintf(stream, "\t                     read() of the data if file io was done, or\n");
        fprintf(stream, "\t                     an ssread()of the data if sds io was done\n");
-#ifndef CRAY
        fprintf(stream, "\t-M                   Data buffer allocation method\n");
        fprintf(stream, "\t                     alloc-type[,type]\n");
-#ifdef sgi
-       fprintf(stream, "\t                         data:flags\n");
-       fprintf(stream, "\t                             p - mpin buffer\n");
-       fprintf(stream, "\t                         shmem:shmid:size:flags\n");
-       fprintf(stream, "\t                             p - mpin buffer\n");
-#else
        fprintf(stream, "\t                         data\n");
        fprintf(stream, "\t                         shmem:shmid:size\n");
-#endif /* sgi */
        fprintf(stream, "\t                         mmap:flags:filename\n");
        fprintf(stream, "\t                             p - private\n");
-#ifdef sgi
-       fprintf(stream, "\t                             s - shared\n");
-       fprintf(stream, "\t                             l - local\n");
-       fprintf(stream, "\t                             a - autoresrv\n");
-       fprintf(stream, "\t                             G - autogrow\n");
-#else
        fprintf(stream, "\t                             s - shared (shared file must exist\n"),
        fprintf(stream, "\t                                 and have needed length)\n");
-#endif
        fprintf(stream, "\t                             f - fixed address (not used)\n");
        fprintf(stream, "\t                             a - specify address (not used)\n");
        fprintf(stream, "\t                             U - Unlink file when done\n");
        fprintf(stream, "\t                             The default flag is private\n");
        fprintf(stream, "\n");
-#endif /* !CRAY */
        fprintf(stream, "\t-m message_interval  Generate a message every 'message_interval'\n");
        fprintf(stream, "\t                     requests.  An interval of 0 suppresses\n");
        fprintf(stream, "\t                     messages.  The default is 0.\n");
@@ -5368,11 +3665,6 @@ FILE     *stream;
        fprintf(stream, "\t                     'buffered' - validate using bufferd read\n");
        fprintf(stream, "\t                     'sync'     - validate using O_SYNC read\n");
        fprintf(stream, "\t                     'direct    - validate using O_DIRECT read'\n");
-#ifdef CRAY
-       fprintf(stream, "\t                     'ldraw'    - validate using O_LDRAW read\n");
-       fprintf(stream, "\t                     'parallel' - validate using O_PARALLEL read\n");
-       fprintf(stream, "\t                     'raw'      - validate using O_RAW read\n");
-#endif
        fprintf(stream, "\t                     By default, 'parallel'\n");
        fprintf(stream, "\t                     is used if the write was done with O_PARALLEL\n");
        fprintf(stream, "\t                     or 'buffered' for all other writes.\n");
index fa53ff1ae60261b4485516e09e6ede12a66fe5a2..bf8d581501327fc003f86d16bc5ab9e7c06f3c5e 100644 (file)
 #define UNRESVSP 123           /* xfsctl(XFS_IOC_UNRESVSP) */
 #define        FSYNC2  125             /* fsync(2) */
 #define        FDATASYNC 126           /* fdatasync(2) */
-
-#ifdef CRAY
-/* used: <<doio>> 1.? <<DOIO>> 1.5 <-DOIO-> 1.7*/
-#define DOIO_MAGIC  '<[DOIO]>'
-#else
 #define DOIO_MAGIC  07116601
-#endif
 
 /*
  * Define various user flags (r_uflag field) that io requests can have
index 52c90798a6f9987f6c7a9bd14671ca51516b0b8b..b322d494db8587e27cff86ce759917c48d18cd7e 100644 (file)
@@ -168,11 +168,7 @@ int mult_size=1;           /* when random iosz, iosz must be mult of mult_size */
 /* the *_lseek variables are only used when radon lseek option (-R) is used */
 int min_lseek=0;               /* also set in option parsing */
 int max_lseek=-1;              /* -1 means size of file */
-#ifdef CRAY
-int Pattern=PATTERN_OFFSET;    /* This pattern is 64 bit word based */
-#else
 int Pattern=PATTERN_ASCII;
-#endif
 int Seed=-1;                   /* random number seed, < 0 == uninitialized  */
 int Nseeds=0;                  /* Number of seed specified by the user */
 int *Seeds;                    /* malloc'ed arrary of ints holding user spec seeds */
@@ -229,32 +225,6 @@ struct fileinfo_t {
  * to use.
  */
 int Open_flags[] = { 
-#ifdef CRAY
-       O_RDWR|O_CREAT,
-       O_RDWR|O_CREAT|O_RAW,
-       O_RDWR|O_CREAT|O_BIG,
-       O_RDWR|O_CREAT|O_APPEND,
-       O_RDWR|O_CREAT|O_NDELAY,
-       O_RDWR|O_CREAT|O_PLACE,
-       O_RDWR|O_CREAT|O_SYNC,
-       O_RDWR|O_CREAT|O_RAW|O_SYNC,
-       O_RDWR|O_CREAT|O_NDELAY|O_SYNC,
-       O_RDWR|O_CREAT|O_NDELAY|O_SYNC|O_BIG,
-       O_RDWR|O_CREAT|O_RAW,
-       O_RDWR|O_CREAT|O_RAW|O_APPEND,
-       O_RDWR|O_CREAT|O_RAW|O_BIG,
-       O_RDWR|O_CREAT|O_RAW|O_APPEND|O_BIG,
-/***
- * O_WELLFORMED makes -o random require well formed i/o
- ***/
-#if ALLOW_O_WELLFORMED
-#if O_PARALLEL
-       O_RDWR|O_CREAT|O_PARALLEL|O_WELLFORMED|O_RAW,
-       O_RDWR|O_CREAT|O_PARALLEL|O_WELLFORMED|O_RAW|O_TRUNC,
-#endif /* O_PARALLEL */
-#endif
-
-#else /* CRAY */
        O_RDWR|O_CREAT,
        O_RDWR|O_CREAT|O_APPEND,
        O_RDWR|O_CREAT|O_NDELAY,
@@ -262,7 +232,6 @@ int Open_flags[] = {
        O_RDWR|O_CREAT|O_SYNC|O_NDELAY,
        O_RDWR|O_CREAT|O_APPEND|O_NDELAY,
 
-#endif /* CRAY */
 };
 
 #define REXEC_INIT     0       /* don't do re-exec of childern */
@@ -270,11 +239,7 @@ int Open_flags[] = {
 #define REXEC_DONE     2       /* We've already been re-exec'ed */
 
 #ifndef BSIZE
-#ifdef CRAY
-#define BSIZE  1024
-#else
 #define BSIZE  512
-#endif  /* CRAY */
 #endif  /* BSIZE */
 
 #define USECS_PER_SEC  1000000  /* microseconds per second */
@@ -428,9 +393,6 @@ extern int Forker_npids;    /* num of forked pid, defined in forker.c */
 
                case 'd':
                        auto_dir=optarg;
-#ifdef CRAY
-                       unsetenv("TMPDIR");     /* force the use of auto_dir */
-#endif
                        if ( stat(auto_dir, &statbuf) == -1 ) {
                            if ( mkdir(auto_dir, 0777) == -1 ) {
                                if ( errno != EEXIST ) {
@@ -612,18 +574,9 @@ extern int Forker_npids;   /* num of forked pid, defined in forker.c */
                        break;
 
                case 'P':
-#ifdef CRAY
-                       if (strcmp(optarg, "PANIC") != 0 ) {
-                               fprintf(stderr, "%s%s: --P arg must be PANIC\n", Progname, TagName);
-                               exit(1);
-                       }
-                       Upanic_on_error++;
-                       printf("%s: Will call upanic after writes\n");
-#else
                        printf("%s%s: --P is illegal option on non-cray system\n",
                                Progname, TagName);
                        exit(1);
-#endif
                        break;
 
                case 'q':       /* file content or pattern */
@@ -904,11 +857,6 @@ no whole file checking will be performed!\n", Progname, TagName, (int)getpid());
            background(Progname);       /* give user their prompt back */
        }
 
-#if CRAY
-       if ( Sync_with_others )
-          setpgrp();
-#endif
-
        if ( Debug > 3 ) {
 #if NEWIO
            lio_set_debug(Debug-3);
@@ -1227,18 +1175,9 @@ no whole file checking will be performed!\n", Progname, TagName, (int)getpid());
        /*
         * If delaying between iterations, get amount time to
         * delaysecs in clocks or usecs.
-        * If on the CRAY, delaytime is in clocks since
-        * _rtc() will be used, which does not have the overhead
-         * of gettimeofday(2).
         */
        if ( delaysecs ) {
-#if CRAY
-          int hz;
-          hz=sysconf(_SC_CLK_TCK);
-          delaytime=(int)((float)hz * delaysecs);
-#else
           delaytime=(int)((float)USECS_PER_SEC * delaysecs);
-#endif
         }
 
        /*
@@ -1398,13 +1337,6 @@ no whole file checking will be performed!\n", Progname, TagName, (int)getpid());
                if ( delaytime ) {
                
                    int ct, end;
-#ifdef CRAY
-                   ct=_rtc();
-                   end=ct+delaytime;
-                   while ( ct < end ) {
-                       ct = _rtc();
-                   }
-#else
                    struct timeval curtime;
                    gettimeofday(&curtime, NULL);
                    ct=curtime.tv_sec*USECS_PER_SEC + curtime.tv_usec;
@@ -1414,7 +1346,6 @@ no whole file checking will be performed!\n", Progname, TagName, (int)getpid());
                        gettimeofday(&curtime, NULL);
                        ct=curtime.tv_sec*USECS_PER_SEC + curtime.tv_usec;
                    }
-#endif
                }
            }
 #ifndef NO_XFS
@@ -1472,10 +1403,6 @@ set_sig()
                 case SIGKILL:
                 case SIGSTOP:
                 case SIGCONT:
-#ifdef CRAY
-                case SIGINFO:
-                case SIGRECOVERY:
-#endif /* CRAY */
 #ifdef SIGCKPT
                case SIGCKPT:
 #endif /* SIGCKPT */
@@ -1486,12 +1413,7 @@ set_sig()
                     break;
 
                 default:
-#ifdef sgi
-                   sigset( sig, sig_handler );
-#else
-/* linux and cray */
                     signal(sig, sig_handler);
-#endif
                 break;
             }
         } /* endfor */
@@ -1512,9 +1434,7 @@ int sig;
     if ( sig == SIGUSR2 ) {
        fprintf(stdout, "%s%s: %d %s/%d: received SIGUSR2 (%d) - stopping.\n",
            Progname, TagName, Pid, __FILE__, __LINE__, sig);
-#ifndef sgi
         signal(sig, sig_handler);      /* allow us to get this signal more than once */
-#endif
         
     } else if( sig == SIGINT ){
        /* The user has told us to cleanup, don't pretend it's an error. */
@@ -1552,13 +1472,6 @@ notify_others()
 
     if ( Sync_with_others && send_signals == 0 ) {
 
-#if CRAY
-       send_signals=1; /* only send signals once */
-       if ( Debug > 1 )
-           printf("%s%s: %d DEBUG2 %s/%d: Sending SIGUSR2 to pgrp\n",
-                 Progname, TagName, Pid, __FILE__, __LINE__);
-       killm(C_PGRP, getpgrp(), SIGUSR2);
-#else
        send_signals=1; /* only send signals once */
 
         for (ind=0; ind< Forker_npids; ind++) {
@@ -1568,7 +1481,6 @@ notify_others()
                        Progname, TagName, Pid, __FILE__, __LINE__, Forker_pids[ind]);
                kill(Forker_pids[ind], SIGUSR2);
         }
-#endif
     }
 
 }
@@ -1583,12 +1495,6 @@ handle_error()
 {
     Errors++;
 
-#ifdef CRAY
-    if ( Errors & Upanic_on_error ) {
-        upanic(PA_PANIC);
-    }
-#endif
-
     if ( Maxerrs && Errors >= Maxerrs ) {
        printf("%s%s: %d %s/%d: %d Hit max errors value of %d\n", 
            Progname, TagName, Pid, __FILE__, __LINE__, Iter_cnt, Maxerrs);
@@ -2030,25 +1936,6 @@ unsigned char *buf;
                                        Progname, TagName, __FILE__, __LINE__, errno, strerror(errno) );
                                return -1;
                        }
-#if NEWIO
-#ifdef sgi
-                       /* If this is POSIX I/O and it is via aio_{read,write}
-                        * or lio_listio then after completion of the I/O the
-                        * value of the file offset for the file is
-                        * unspecified--which means we cannot trust what
-                        * tell() told us.  Fudge it here.
-                        */
-                       if( (io_type & LIO_IO_ASYNC_TYPES) || (io_type & LIO_RANDOM) ){
-                               if( tmp != Woffset + grow_incr ){
-                                       if( Debug > 5 ){
-                                               printf("%s: %d DEBUG6 %s/%d: posix fudge, forcing tmp (%d) to match Woffset+grow_incr (%d)\n",
-                                                      Progname, Pid, __FILE__, __LINE__, tmp, Woffset+grow_incr);
-                                       }
-                                       tmp = Woffset + grow_incr;
-                               }
-                       }
-#endif
-#endif
                }
 
                lkfile(fd, LOCK_UN, LKLVL0);    
@@ -2140,9 +2027,6 @@ int just_trunc;           /* lseek has already been done for you */
     int cur_offset;
     int new_offset;
     int ret;
-#ifdef CRAY
-    int offset;
-#endif
 
        shrink_cnt++;
 
@@ -2184,19 +2068,6 @@ int just_trunc;          /* lseek has already been done for you */
             else {
                 new_offset=random_range(min_lseek, max_lseek, 1, NULL);
             }
-
-#ifdef CRAY
-            if ((offset=lseek(fd, new_offset, SEEK_SET)) == -1 ) {
-                fprintf(stderr, "%s%s: %d %s/%d: lseek(%d, %d, SEEK_SET) l3 failed: %s\n",
-                    Progname, TagName, Pid, __FILE__, __LINE__, fd, new_offset, strerror(errno));
-               lkfile(fd, LOCK_UN, LKLVL0);
-                return -1;
-            }
-            else if ( Debug > 3 )
-                printf("%s: %d DEBUG4 %s/%d: lseeked to random offset %d\n",
-                    Progname, Pid, __FILE__, __LINE__, offset);
-    
-#endif
         }
 
        else {  /* remove trunc_incr from file */
@@ -2205,41 +2076,19 @@ int just_trunc;         /* lseek has already been done for you */
 
            if ( new_offset < 0 )
                new_offset=0;
-       
-#ifdef CRAY
-           if (  lseek(fd, new_offset, SEEK_SET) == -1 ) {
-               fprintf(stderr, "%s%s: %d %s/%d: lseek(fd, %d, SEEK_SET) l4 failed: %s\n",
-                       Progname, TagName, Pid, __FILE__, __LINE__, new_offset, strerror(errno));
-               lkfile(fd, LOCK_UN, LKLVL0);
-               return -1;
-           }
-            else if ( Debug > 3 )
-                printf("%s: %d DEBUG4 %s/%d: lseeked to offset %d, %d bytes from end\n",
-                    Progname, Pid, __FILE__, __LINE__, new_offset, trunc_incr);
-#endif
        }
 
-
-#ifdef CRAY
-       ret=trunc(fd);
-#else
        ret=ftruncate(fd, new_offset );
        if( (ret == 0) && (Debug > 3) ){
                 printf("%s: %d DEBUG4 %s/%d: ftruncated to offset %d, %d bytes from end\n",
                     Progname, Pid, __FILE__, __LINE__, new_offset, trunc_incr);
        }
-#endif
 
        lkfile(fd, LOCK_UN, LKLVL0);
 
        if ( ret == -1 ) {
-#ifdef CRAY
-               fprintf(stderr, "%s%s: %d %s/%d: trunc failed: %s\n",
-                       Progname, TagName, Pid, __FILE__, __LINE__, strerror(errno));
-#else
                fprintf(stderr, "%s%s: %d %s/%d: ftruncate failed: %s\n",
                        Progname, TagName, Pid, __FILE__, __LINE__, strerror(errno));
-#endif
                return -1;
        }
 
@@ -2756,17 +2605,6 @@ int fd;
 int size;
 {
 
-#ifdef CRAY
-    long avl;
-
-        if ( ialloc(fd, size, IA_CONT, &avl) == -1 ) {
-                fprintf(stderr, "%s%s %s/%d: Unable to pre-alloc space: ialloc failed: %d  %s\n",
-                       Progname, TagName,
-                        __FILE__, __LINE__, errno, strerror(errno));
-                return -1;
-        }
-#endif
-
 #ifndef NO_XFS
 #ifdef XFS_IOC_RESVSP
     struct xfs_flock64 f;
index b83b8f48d9da16e0de135e32c9429694b4136017..fadd5e1ed58a7c1550dc49b7698aab776c78e009 100644 (file)
@@ -146,21 +146,6 @@ struct strmap      Aio_Strat_Map[] = {
 #else
        { "none",       0       },
 #endif /* !linux */
-#ifdef CRAY
-#if _UMK || RELEASE_LEVEL >= 8000
-       { "recall",     A_RECALL        },
-#endif
-
-#ifdef RECALL_SIZEOF
-       { "recalla",    A_RECALLA       },
-#endif
-       { "recalls",    A_RECALLS       },
-#endif /* CRAY */
-
-#ifdef sgi
-       { "suspend",    A_SUSPEND       },
-       { "callback",   A_CALLBACK      },
-#endif
        { NULL,         -1              }
 };
 
@@ -195,80 +180,20 @@ struct strmap     Omode_Map[] = {
 struct strmap  Syscall_Map[] = {
        { "read",               READ,           0                       },
        { "write",              WRITE,          SY_WRITE                },
-#ifdef CRAY
-       { "reada",              READA,          SY_ASYNC                },
-       { "writea",             WRITEA,         SY_WRITE|SY_ASYNC       },
-#ifndef _CRAYMPP
-       { "ssread",             SSREAD,         SY_SDS                  },
-       { "sswrite",            SSWRITE,        SY_WRITE|SY_SDS         },
-#endif
-       { "listio",             LISTIO,         SY_ASYNC                },
-
-       /* listio as 4 system calls */
-       { "lread",              LREAD,          0                       },
-       { "lreada",             LREADA,         SY_ASYNC                },
-       { "lwrite",             LWRITE,         SY_WRITE                },
-       { "lwritea",            LWRITEA,        SY_WRITE|SY_ASYNC       },
-
-       /* listio with nstrides > 1 */
-       { "lsread",             LSREAD,         0                       },
-       { "lsreada",            LSREADA,        SY_ASYNC                },
-       { "lswrite",            LSWRITE,        SY_WRITE                },
-       { "lswritea",           LSWRITEA,       SY_WRITE|SY_ASYNC       },
-
-       /* listio with nents > 1 */
-       { "leread",             LEREAD,         0|SY_NENT               },
-       { "lereada",            LEREADA,        SY_ASYNC|SY_NENT        },
-       { "lewrite",            LEWRITE,        SY_WRITE|SY_NENT        },
-       { "lewritea",           LEWRITEA,       SY_WRITE|SY_ASYNC|SY_NENT },
-
-       /* listio with nents > 1 & nstrides > 1 */
-
-       /* all listio system calls under one name */
-       { "listio+",            LREAD,          0                       },
-       { "listio+",            LREADA,         SY_ASYNC                },
-       { "listio+",            LWRITE,         SY_WRITE                },
-       { "listio+",            LWRITEA,        SY_WRITE|SY_ASYNC       },
-       { "listio+",            LSREAD,         0                       },
-       { "listio+",            LSREADA,        SY_ASYNC                },
-       { "listio+",            LSWRITE,        SY_WRITE                },
-       { "listio+",            LSWRITEA,       SY_WRITE|SY_ASYNC       },
-       { "listio+",            LEREAD,         0|SY_NENT               },
-       { "listio+",            LEREADA,        SY_ASYNC|SY_NENT        },
-       { "listio+",            LEWRITE,        SY_WRITE|SY_NENT        },
-       { "listio+",            LEWRITEA,       SY_WRITE|SY_ASYNC|SY_NENT },
-#endif
-
        { "pread",              PREAD                                   },
        { "pwrite",             PWRITE,         SY_WRITE                },
-#ifdef sgi
-       { "aread",              AREAD,          SY_ASYNC                },
-       { "awrite",             AWRITE,         SY_WRITE|SY_ASYNC       },
-#if 0
-       /* not written yet */
-       { "llread",             LLREAD,         0                       },
-       { "llaread",            LLAREAD,        SY_ASYNC                },
-       { "llwrite",            LLWRITE,        0                       },
-       { "llawrite",           LLAWRITE,       SY_ASYNC                },
-       { "ffsync",             DFFSYNC,        SY_WRITE                },
-#endif
-#endif /* SGI */
 #ifndef NO_XFS
        { "resvsp",             RESVSP,         SY_WRITE                },
        { "unresvsp",           UNRESVSP,       SY_WRITE                },
        { "reserve",            RESVSP,         SY_WRITE                },
        { "unreserve",          UNRESVSP,       SY_WRITE                },
 #endif
-
-#ifndef CRAY
        { "readv",              READV                                   },
        { "writev",             WRITEV,         SY_WRITE                },
        { "mmread",             MMAPR                                   },
        { "mmwrite",            MMAPW,          SY_WRITE                },
        { "fsync2",             FSYNC2,         SY_WRITE                },
        { "fdatasync",          FDATASYNC,      SY_WRITE                },
-#endif
-
        { NULL,                 -1      }
 };
 
@@ -280,36 +205,7 @@ struct strmap      Syscall_Map[] = {
 struct strmap  Flag_Map[] = {
        { "buffered",           0,                      0       },
        { "sync",               O_SYNC,                 0       },
-#ifdef CRAY
-       { "raw",                O_RAW,                  FLG_RAW },
-       { "raw+wf",             O_RAW | O_WELLFORMED,   FLG_RAW },
-       { "raw+wf+ldraw",       O_RAW | O_WELLFORMED | O_LDRAW, FLG_RAW },
-       { "raw+wf+ldraw+sync",  O_RAW | O_WELLFORMED | O_LDRAW | O_SYNC, FLG_RAW },
-#ifdef O_SSD
-       { "ssd",                O_SSD,                  FLG_RAW },
-#endif
-#ifdef O_LDRAW
-       { "ldraw",              O_LDRAW,                0       },
-#endif
-#ifdef O_PARALLEL
-       { "parallel",           O_PARALLEL | O_RAW | O_WELLFORMED,
-                 FLG_RAW },
-       { "parallel+sync",      O_PARALLEL | O_RAW | O_WELLFORMED | O_SYNC,
-                 FLG_RAW },
-       { "parallel+ldraw",     O_PARALLEL | O_RAW | O_WELLFORMED | O_LDRAW,
-                 FLG_RAW },
-       { "parallel+ldraw+sync",
-                 O_PARALLEL | O_RAW | O_WELLFORMED | O_LDRAW | O_SYNC,
-                 FLG_RAW },
-#endif
-#endif /* CRAY */
-
        { "direct",             O_DIRECT,               FLG_RAW },
-#ifdef sgi
-       { "dsync",              O_DSYNC         },      /* affects writes */
-       { "rsync",              O_RSYNC         },      /* affects reads */
-       { "rsync+dsync",        O_RSYNC|O_DSYNC },
-#endif
        { NULL,             -1          }
 };
 
@@ -353,13 +249,7 @@ char       **argv;
     struct io_req   req;
     
     umask(0);
-
-#ifdef CRAY
-    Sds_Avail = sysconf(_SC_CRAY_SDS);
-#else
     Sds_Avail = 0;
-#endif
-
     TagName[0] = '\0';
     parse_cmdline(argc, argv, OPTS);
 
@@ -557,9 +447,6 @@ struct io_req   *req;
     char               pattern, *errp;
     struct strmap      *flags, *sc, *aio_strat;
     struct file_info   *fptr;
-#ifdef CRAY
-    int                 opcode, cmd;
-#endif
 
     /*
      * Choose system call, flags, and file
@@ -568,32 +455,11 @@ struct io_req   *req;
     sc = Syscall_List[random_range(0, Nsyscalls-1, 1, NULL)];
     req->r_type = sc->m_value;
 
-#ifdef CRAY
-    if (sc->m_value == LISTIO ) {
-           opcode = random_range(0, 1, 1, NULL) ? LO_READ : LO_WRITE;
-           cmd = random_range(0, 1, 1, NULL) ? LC_START : LC_WAIT;
-    }
-#endif
-
     if( sc->m_flags & SY_WRITE )
            pattern = Byte_Patterns[random_range(0, sizeof(Byte_Patterns) - 1, 1, NULL)];
     else
            pattern = 0;
 
-#if CRAY
-    /*
-     * If sds io, simply choose a length (possibly pattern) and return
-     */
-
-    if (sc->m_flags & SY_SDS ) {
-           req->r_data.ssread.r_nbytes = random_range(Mintrans, Maxtrans, BSIZE, NULL);
-           if (sc->m_flags & SY_WRITE)
-                   req->r_data.sswrite.r_pattern = pattern;
-
-           return 0;
-    }
-#endif
-
     /*
      * otherwise, we're doing file io.  Choose starting offset, length,
      * open flags, and possibly a pattern (for write/writea).
@@ -856,25 +722,6 @@ struct io_req   *req;
        break;
 
     case LISTIO:
-#ifdef CRAY
-       strcpy(req->r_data.listio.r_file, fptr->f_path);
-       req->r_data.listio.r_offset = offset;
-       req->r_data.listio.r_cmd = cmd;
-       req->r_data.listio.r_aio_strat = (aio_strat==NULL) ? 0 : aio_strat->m_value;
-       req->r_data.listio.r_filestride = 0;
-       req->r_data.listio.r_memstride = 0;
-       req->r_data.listio.r_opcode = opcode;
-       req->r_data.listio.r_nstrides = 1;
-       req->r_data.listio.r_nbytes = length;
-       req->r_data.listio.r_uflags = (flags->m_flags & FLG_RAW) ? F_WORD_ALIGNED : 0;
-
-       if (opcode == LO_WRITE) {
-               req->r_data.listio.r_pattern = pattern;
-               req->r_data.listio.r_oflags = O_WRONLY | flags->m_value;
-       } else {
-               req->r_data.listio.r_oflags = O_RDONLY | flags->m_value;
-       }
-#endif
        break;
     }
 
@@ -897,9 +744,6 @@ get_file_info(rec)
 struct file_info    *rec;
 {
     struct stat                        sbuf;
-#ifdef CRAY
-    struct lk_device_info      dinfo;
-#endif
 #ifndef NO_XFS
     int                                fd;
     struct dioattr             finfo;
@@ -916,13 +760,6 @@ struct file_info    *rec;
        return -1;
     }
 
-#if _CRAY2
-    if ((! S_ISREG(sbuf.st_mode)) || strncmp(rec->f_path, "/dev/", 5) == 0) {
-       fprintf(stderr, "iogen%s:  device level io not supported on cray2\n", TagName);
-       return -1;
-    }
-#endif
-
     rec->f_type = sbuf.st_mode & S_IFMT;
 
     /*
@@ -947,17 +784,6 @@ struct file_info    *rec;
        }
 
        rec->f_riou = BSIZE;
-#ifdef CRAY
-       if (lk_rawdev(rec->f_path, dinfo.path, sizeof(dinfo.path), 0) == -1)
-           return -1;
-
-       if (lk_devinfo(&dinfo, 0) == -1) {
-           /* can't get raw I/O unit -- use stat to fudge it */
-           rec->f_riou = sbuf.st_blksize;
-       } else {
-           rec->f_riou = ctob(dinfo.iou);
-       }
-#endif
 #ifndef NO_XFS
        if( (fd = open(rec->f_path, O_RDWR|O_DIRECT, 0)) != -1 ) {
 #ifdef XFS_IOC_DIOINFO
@@ -980,34 +806,10 @@ bozo!
            rec->f_riou = BBSIZE;
        }
 #endif
-
     } else {
 
-#ifdef CRAY
-       /*
-        * Otherwise, file is a device.  Use lk_devinfo() to get its logical
-        * sector size.  This is the iou and riou
-        */
-
-       strcpy(dinfo.path, rec->f_path);
-
-       if (lk_devinfo(&dinfo, 0) == -1) {
-           fprintf(stderr, "iogen%s: %s:  %s\n", TagName, Lk_err_func, Lk_err_mesg);
-           return -1;
-       }
-
-       rec->f_iou = ctob(dinfo.iou);
-       rec->f_riou = ctob(dinfo.iou);
-       rec->f_length = ctob(dinfo.length);
-#else
-#ifdef sgi
-       rec->f_riou = BBSIZE;
-       rec->f_length = BBSIZE;
-#else
        rec->f_riou = BSIZE;
        rec->f_length = BSIZE;
-#endif /* sgi */
-#endif /* CRAY */
     }
 
     return 0;
@@ -1393,32 +1195,12 @@ char    *opts;
     struct file_info   *fptr;
     int                        nopenargs;
     char               *openargs[5];   /* Flags, cbits, cblks */
-#ifdef CRAY
-    char               *errmsg;
-    char               *ranges;
-    struct strmap      *type;
-#endif
-
     while ((o = getopt(argc, argv, opts)) != EOF) {
         switch ((char)o) {
 
        case 'a':
-#ifndef CRAY
            fprintf(stderr, "iogen%s:  Unrecognized option -a on this platform\n", TagName);
            exit(2);
-#else
-           cp = strtok(optarg, ",");
-           while (cp != NULL) {
-               if ((type = str_lookup(Aio_Strat_Map, cp)) == NULL) {
-                   fprintf(stderr, "iogen%s:  Unrecognized aio completion strategy:  %s\n", TagName, cp);
-                   exit(2);
-               }
-
-               Aio_Strat_List[Naio_Strat_Types++] = type;
-               cp = strtok(NULL, ",");
-           }
-           a_opt++;
-#endif
            break;
 
        case 'f':
@@ -1480,23 +1262,8 @@ char     *opts;
            break;
 
        case 'L':
-#ifndef CRAY
            fprintf(stderr, "iogen%s:  Unrecognized option -L on this platform\n", TagName);
            exit(2);
-#else
-           if( parse_ranges(optarg, 1, 255, 1, NULL, &ranges, 
-                            &errmsg ) == -1 ) {
-                   fprintf(stderr, "iogen%s: error parsing listio range '%s': %s\n",
-                           TagName, optarg, errmsg);
-                   exit(1);
-           }
-
-           Minstrides = range_min(ranges, 0);
-           Maxstrides = range_max(ranges, 0);
-
-           free(ranges);
-           L_opt++;
-#endif
            break;
 
        case 'm':
@@ -1519,19 +1286,6 @@ char     *opts;
        case 'O':
 
            nopenargs = string_to_tokens(optarg, openargs, 4, ":/");
-
-#ifdef CRAY
-           if(nopenargs)
-               sscanf(openargs[1],"%i", &Ocbits);
-           if(nopenargs > 1)
-               sscanf(openargs[2],"%i", &Ocblks);
-
-           Oflags = parse_open_flags(openargs[0], &errmsg);
-           if(Oflags == -1) {
-               fprintf(stderr, "iogen%s: -O %s error: %s\n", TagName, optarg, errmsg);
-               exit(1);
-           }
-#endif
 #ifndef NO_XFS
            if(!strcmp(openargs[0], "realtime")) {
                /*
@@ -1685,28 +1439,12 @@ char    *opts;
        Nsyscalls = 0;
        Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "read");
        Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "write");
-#ifdef CRAY
-       Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "reada");
-       Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "writea");
-       Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "lread");
-       Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "lreada");
-       Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "lwrite");
-       Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "lwritea");
-#endif
-
        Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "pread");
        Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "pwrite");
-#ifdef sgi
-       /*Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "aread");*/
-       /*Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "awrite");*/
-#endif
-
-#ifndef CRAY
        Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "readv");
        Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "writev");
        Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "mmread");
        Syscall_List[Nsyscalls++] = str_lookup(Syscall_Map, "mmwrite");
-#endif
 
         Fileio = 1;
     }
@@ -1724,18 +1462,6 @@ char     *opts;
            Nflags = 0;
            Flag_List[Nflags++] = str_lookup(Flag_Map, "buffered");
            Flag_List[Nflags++] = str_lookup(Flag_Map, "sync");
-#ifdef CRAY
-           Flag_List[Nflags++] = str_lookup(Flag_Map, "raw+wf");
-           Flag_List[Nflags++] = str_lookup(Flag_Map, "ldraw");
-#endif
-
-#ifdef sgi
-           /* Warning: cannot mix direct i/o with others! */
-           Flag_List[Nflags++] = str_lookup(Flag_Map, "dsync");
-           Flag_List[Nflags++] = str_lookup(Flag_Map, "rsync");
-           /* Flag_List[Nflags++] = str_lookup(Flag_Map, "rsync+sync");*/
-           /* Flag_List[Nflags++] = str_lookup(Flag_Map, "rsync+dsync");*/
-#endif
     }
 
     if (Fileio) {
@@ -1897,26 +1623,12 @@ FILE    *stream;
     fprintf(stream, "\n");
 #ifndef linux
     fprintf(stream, "\t-a aio_type,...  Async io completion types to choose.  Supported types\n");
-#ifdef CRAY
-#if _UMK || RELEASE_LEVEL >= 8000
-    fprintf(stream, "\t                 are:  poll, signal, recall, recalla, and recalls.\n");
-#else
-    fprintf(stream, "\t                 are:  poll, signal, recalla, and recalls.\n");
-#endif
-#else
     fprintf(stream, "\t                 are:  poll, signal, suspend, and callback.\n");
-#endif
     fprintf(stream, "\t                 Default is all of the above.\n");
 #else /* !linux */
     fprintf(stream, "\t-a               (Not used on Linux).\n");
 #endif /* !linux */
     fprintf(stream, "\t-f flag,...      Flags to use for file IO.  Supported flags are\n");
-#ifdef CRAY
-    fprintf(stream, "\t                 raw, ssd, buffered, ldraw, sync,\n");
-    fprintf(stream, "\t                 raw+wf, raw+wf+ldraw, raw+wf+ldraw+sync,\n");
-    fprintf(stream, "\t                 and parallel (unicos/mk on MPP only).\n");
-    fprintf(stream, "\t                 Default is 'raw,ldraw,sync,buffered'.\n");
-#else
 #ifndef NO_XFS
     fprintf(stream, "\t                 buffered, direct, sync.\n");
     fprintf(stream, "\t                 Default is 'buffered,sync'.\n");
@@ -1924,17 +1636,12 @@ FILE    *stream;
     fprintf(stream, "\t                 buffered, sync.\n");
     fprintf(stream, "\t                 Default is 'buffered,sync'.\n");
 #endif /* sgi */
-#endif /* CRAY */
     fprintf(stream, "\t-h               This help.\n");
     fprintf(stream, "\t-i iterations[s] # of requests to generate.  0 means causes iogen\n");
     fprintf(stream, "\t                 to run until it's killed.  If iterations is suffixed\n");
     fprintf(stream, "\t                 with 's', then iterations is the number of seconds\n");
     fprintf(stream, "\t                 that iogen should run for.  Default is '0'.\n");
-#ifndef CRAY
     fprintf(stream, "\t-L min:max       listio nstrides / nrequests range\n");
-#else
-    fprintf(stream, "\t-L               (Not used on this platform).\n");
-#endif /* !CRAY */
     fprintf(stream, "\t-m offset-mode   The mode by which iogen chooses the offset for\n");
     fprintf(stream, "\t                 consectutive transfers within a given file.\n");
     fprintf(stream, "\t                 Allowed values are 'random', 'sequential',\n");
@@ -1943,9 +1650,6 @@ FILE      *stream;
     fprintf(stream, "\t-N tagname       Tag name, for Monster.\n");
     fprintf(stream, "\t-o               Form overlapping consecutive requests.\n");
     fprintf(stream, "\t-O               Open flags for creating files\n");
-#ifdef CRAY
-    fprintf(stream, "\t                 {O_PLACE,O_BIG,etc}[:CBITS[:CBLKS]]\n");
-#endif
 #ifndef NO_XFS
     fprintf(stream, "\t                 realtime:extsize - put file on real-time volume\n");
     fprintf(stream, "\t                 allocate - allocate space with F_ALLOCSP\n");
@@ -1959,17 +1663,6 @@ FILE     *stream;
     fprintf(stream, "\t-q               Quiet mode.  Normally iogen spits out info\n");
     fprintf(stream, "\t                 about test files, options, etc. before starting.\n");
     fprintf(stream, "\t-s syscall,...   Syscalls to do.  Supported syscalls are\n");
-#ifdef sgi
-    fprintf(stream, "\t                 read, write, pread, pwrite, readv, writev\n");
-    fprintf(stream, "\t                 aread, awrite, resvsp, unresvsp, ffsync,\n");
-    fprintf(stream, "\t                 mmread, mmwrite, fsync2, fdatasync,\n");
-    fprintf(stream, "\t                 Default is 'read,write,pread,pwrite,readv,writev,mmread,mmwrite'.\n");
-#endif
-#ifdef CRAY
-    fprintf(stream, "\t                 read, write, reada, writea, listio,\n");
-    fprintf(stream, "\t                 ssread (PVP only), and sswrite (PVP only).\n");
-    fprintf(stream, "\t                 Default is 'read,write,reada,writea,listio'.\n");
-#endif
 #ifdef linux
     fprintf(stream, "\t                 read, write, pread, pwrite, readv, writev,\n");
     fprintf(stream, "\t                 mmread, mmwrite, fsync2, fdatasync,\n");
index 459ae34c48fff845ee8d87ac11f4e5d43c404975..01af858d37b24bd5d2243badb232fc054be488ce 100644 (file)
@@ -28,9 +28,7 @@
 #include <string.h>
 #include <unistd.h>
 
-#ifndef __sgi__
 typedef unsigned int uint_t;
-#endif
 
 /*
  * Loop over directory sizes:
index bcd0625bbbaa2513a72f6b2bf78e95b76174118e..245e529c379a79b15c21e6b2fdad8ac791bf09a5 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#ifdef  sgi
-#include <sys/attributes.h>
-#else
 #include <attr/attributes.h>
-#endif
 
-#ifndef sgi
 typedef unsigned int uint_t;
-#endif
 
 /*
  * Loop over directory sizes:
index 61862f60b92e26518223a056e296585716f1df2a..e6a2c2bcbc61e501a484c07c2f4c7ce6d76ab93f 100644 (file)
 
 #include <config.h>
 
-#ifdef sgi
-#include <../../irix/include/xfs/platform_defs.h>
-#include <../../xfsprogs/include/irix.h>
-#endif
-
 #ifdef HAVE_XFS_XFS_H
 #include <xfs/xfs.h>
 #endif
index d5d54763f8944fdb2c6824796295ba25a4d4ac23..51a405efaab41f18828119aac12f965a6d99e41c 100644 (file)
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
-#ifdef  sgi
-#include <sys/attributes.h>
-#else
 #include <attr/attributes.h>
-#endif
 
 #define MAX_EA_NAME 30
 
index b43da81c1fc14c55968a4b0fa4b27d830870ee00..545ee8edc7ecd743695f3ae977b76389ec3f8a08 100644 (file)
@@ -54,13 +54,8 @@ static int test;
  * F_FSGETXATTR (Irix).
  *
  */
-#ifdef __sgi__ /* Irix */
-#  define xfscntl(filename, fd, cmd, arg) \
-               fcntl((fd), F_ ## cmd, (arg))
-#else  /* ! __sgi__ */
 #  define xfscntl(filename, fd, cmd, arg) \
                xfsctl((filename), (fd), XFS_IOC_ ## cmd, (arg))
-#endif /* ! __sgi__ */
 
 static void
 usage(char *progname)