*flags|=H5FD_FEAT_DATA_SIEVE;       /* OK to perform data sieving for faster raw data reads & writes */
 
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Copyright by the Board of Trustees of the University of Illinois.         *
 * All rights reserved.                                                      *
 *                                                                           *
 * This file is part of HDF5.  The full HDF5 copyright notice, including     *
 * terms governing use, modification, and redistribution, is contained in    *
 * the files COPYING and Copyright.html.  COPYING can be found at the root   *
 * of the source code distribution tree; Copyright.html can be found at the  *
 * root level of an installed copy of the electronic HDF5 document set and   *
 * is linked from the top-level documents page.  It can also be found at     *
 * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html.  If you do not have     *
 * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
 * Programmer:  Saurabh Bagchi (bagchi@uiuc.edu)
 *              Thursday, August 12 -Tuesday, August 17, 1999
 *
 * Purpose: This is the GASS I/O driver.
 *
 */
/* Pablo information */
/* (Put before include files to avoid problems with inline functions) */
#define PABLO_MASK  H5FD_gass_mask
#include "H5private.h"      /* Generic Functions            */
#include "H5Eprivate.h"     /* Error handling           */
#include "H5Fprivate.h"         /* Files access                         */
#include "H5FDprivate.h"    /* File drivers             */
#include "H5FDgass.h"           /* GASS file driver         */
#include "H5Iprivate.h"     /* IDs                  */
#include "H5MMprivate.h"    /* Memory management            */
#include "H5Pprivate.h"     /* Property lists           */
#ifdef H5_HAVE_GASS
/* The driver identification number, initialized at runtime */
static hid_t H5FD_GASS_g = 0;
/* File operations */
#define OP_UNKNOWN  0
#define OP_READ     1
#define OP_WRITE    2
/*
 * The description of a file belonging to this driver. The `eoa' and `eof'
 * determine the amount of hdf5 address space in use and the high-water mark
 * of the file (the current size of the underlying Unix file). The `pos'
 * value is used to eliminate file position updates when they would be a
 * no-op. Unfortunately we've found systems that use separate file position