/****************************************************************************
**  SIONLIB     http://www.fz-juelich.de/jsc/sionlib                       **
*****************************************************************************
**  Copyright (c) 2008-2018                                                **
**  Forschungszentrum Juelich, Juelich Supercomputing Centre               **
**                                                                         **
**  See the file COPYRIGHT in the package base directory for details       **
****************************************************************************/

#ifndef PARTEST_OPTS_H_
#define PARTEST_OPTS_H_

#include <stdint.h>

#define FNAMELEN 255

struct _test_options_struct {
  int64_t bufsize;
  int64_t totalsize;
  int64_t globalsize;
  int64_t chunksize;
  int32_t fsblksize;
  int type;
  int bluegene;
  int bluegene_np;
  int bluegene_sort;
  int verbose;
  int debug;
  int Debug;
  int numfiles;
  int startoffset;
  int read_task_offset;
  int collectiveopenforread;
  int collectiveread;
  int collectivewrite;
  int unlink_files;
  int suppress_checksum;
  int serialize_blocknum;
  int mpiio_lb;
  int mpiio_bs;
  int mpiio_sa;
  double factor;
  int do_read;
  int do_write;
  int use_posix;
  char filename[FNAMELEN];
};

typedef struct _test_options_struct _test_options;

int init_options(_test_options *options);
int parse_options_std(int argc, char **argv, _test_options *options);
int parse_options_long(int argc, char **argv, _test_options *options);
int distribute_options_mpi(_test_options *options);
void usage(char *name);
void usage_long(char *name);
int64_t to_bytes(char *option);
#endif /* PARTEST_OPTS_H_ */
