*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
*/
#include "gmxpre.h"
-#include "config.h"
-
-#include <errno.h>
-#include <stdio.h>
-
-#ifdef HAVE_IO_H
-#include <io.h>
-#endif
-
-#include "gromacs/fileio/filenm.h"
#include "gromacs/fileio/gmxfio.h"
-#include "gromacs/fileio/gmxfio_int.h"
-#include "gromacs/fileio/md5.h"
-#include "gromacs/legacyheaders/macros.h"
-#include "gromacs/utility/futil.h"
-#include "gromacs/utility/smalloc.h"
+#include "gmxfio-impl.h"
/*******************************************************************
*
*
*******************************************************************/
-gmx_bool gmx_fio_reade_real(t_fileio *fio, real *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, 1, eioREAL, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_reade_float(t_fileio *fio, float *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, 1, eioFLOAT, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-
-gmx_bool gmx_fio_reade_double(t_fileio *fio, double *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, 1, eioDOUBLE, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_reade_int(t_fileio *fio, int *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, 1, eioINT, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_reade_int64(t_fileio *fio, gmx_int64_t *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, 1, eioINT64, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_reade_uchar(t_fileio *fio, unsigned char *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, 1, eioUCHAR, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-
-gmx_bool gmx_fio_reade_ushort(t_fileio *fio, unsigned short *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, 1, eioUSHORT, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_reade_rvec(t_fileio *fio, rvec *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, 1, eioRVEC, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_reade_ivec(t_fileio *fio, ivec *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, 1, eioIVEC, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_reade_string(t_fileio *fio, char *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, 1, eioSTRING, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-
-/* Write */
-
-gmx_bool gmx_fio_writee_real(t_fileio *fio, real item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nwrite(fio, &item, 1, eioREAL, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_writee_float(t_fileio *fio, float item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nwrite(fio, &item, 1, eioFLOAT, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_writee_double(t_fileio *fio, double item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nwrite(fio, &item, 1, eioDOUBLE, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-
-gmx_bool gmx_fio_writee_int(t_fileio *fio, int item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nwrite(fio, &item, 1, eioINT, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_writee_int64(t_fileio *fio, gmx_int64_t item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nwrite(fio, &item, 1, eioINT64, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_writee_uchar(t_fileio *fio, unsigned char item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nwrite(fio, &item, 1, eioUCHAR, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_writee_ushort(t_fileio *fio, unsigned short item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nwrite(fio, &item, 1, eioUSHORT, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_writee_rvec(t_fileio *fio, rvec *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nwrite(fio, item, 1, eioRVEC, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_writee_ivec(t_fileio *fio, ivec *item,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nwrite(fio, item, 1, eioIVEC, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
gmx_bool gmx_fio_writee_string(t_fileio *fio, const char *item,
const char *desc, const char *srcfile, int line)
{
return ret;
}
-
-
-/* Read/write functions */
-
gmx_bool gmx_fio_doe_real(t_fileio *fio, real *item,
const char *desc, const char *srcfile, int line)
{
}
-
-
-
-
-
/* Array reading & writing */
-gmx_bool gmx_fio_nreade_real(t_fileio *fio, real *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nread(fio, &(item[i]), 1, eioREAL, desc, srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nreade_float(t_fileio *fio, float *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nread(fio, &(item[i]), 1, eioFLOAT, desc,
- srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-
-gmx_bool gmx_fio_nreade_double(t_fileio *fio, double *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nread(fio, &(item[i]), 1, eioDOUBLE, desc,
- srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nreade_int(t_fileio *fio, int *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nread(fio, &(item[i]), 1, eioINT, desc, srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nreade_int64(t_fileio *fio, gmx_int64_t *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nread(fio, &(item[i]), 1, eioINT64, desc,
- srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-
-gmx_bool gmx_fio_nreade_uchar(t_fileio *fio, unsigned char *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, n, eioNUCHAR, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nreade_ushort(t_fileio *fio, unsigned short *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nread(fio, &(item[i]), 1, eioUSHORT, desc,
- srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nreade_rvec(t_fileio *fio, rvec *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nread(fio, item, n, eioNRVEC, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nreade_ivec(t_fileio *fio, ivec *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nread(fio, item[i], 1, eioIVEC, desc, srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nreade_string(t_fileio *fio, char *item[], int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nread(fio, item[i], 1, eioSTRING, desc, srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-
-
-
-/* Array writing */
-
-gmx_bool gmx_fio_nwritee_real(t_fileio *fio, const real *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nwrite(fio, &(item[i]), 1, eioREAL, desc,
- srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nwritee_float(t_fileio *fio, const float *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nwrite(fio, &(item[i]), 1, eioFLOAT, desc,
- srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nwritee_double(t_fileio *fio, const double *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nwrite(fio, &(item[i]), 1, eioDOUBLE, desc,
- srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nwritee_int(t_fileio *fio, const int *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nwrite(fio, &(item[i]), 1, eioINT, desc, srcfile,
- line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nwritee_int64(t_fileio *fio,
- const gmx_int64_t *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nwrite(fio, &(item[i]), 1, eioINT64,
- desc, srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nwritee_uchar(t_fileio *fio, const unsigned char *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nwrite(fio, item, n, eioNUCHAR, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nwritee_ushort(t_fileio *fio, const unsigned short *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nwrite(fio, &(item[i]), 1, eioUSHORT, desc,
- srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-
-gmx_bool gmx_fio_nwritee_rvec(t_fileio *fio, const rvec *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret;
- gmx_fio_lock(fio);
- ret = fio->iotp->nwrite(fio, item, n, eioNRVEC, desc, srcfile, line);
- gmx_fio_unlock(fio);
- return ret;
-}
-
-gmx_bool gmx_fio_nwritee_ivec(t_fileio *fio, const ivec *item, int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nwrite(fio, &(item[i]), 1, eioIVEC, desc,
- srcfile, line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-
-gmx_bool gmx_fio_nwritee_string(t_fileio *fio, const char *item[], int n,
- const char *desc, const char *srcfile, int line)
-{
- gmx_bool ret = TRUE;
- int i;
- gmx_fio_lock(fio);
- for (i = 0; i < n; i++)
- {
- ret = ret && fio->iotp->nwrite(fio, &(item[i]), 1, eioSTRING, desc, srcfile,
- line);
- }
- gmx_fio_unlock(fio);
- return ret;
-}
-
-
-
-/* array read/write functions */
-
gmx_bool gmx_fio_ndoe_real(t_fileio *fio, real *item, int n,
const char *desc, const char *srcfile, int line)
{