SIONlib  1.7.7
Scalable I/O library for parallel access to task-local files
Macros | Functions
sion_generic.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <time.h>
#include <sys/time.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include "sion.h"
#include "sion_debug.h"
#include "sion_error_handler.h"
#include "sion_internal.h"
#include "sion_fd.h"
#include "sion_filedesc.h"
#include "sion_printts.h"
#include "sion_flags.h"
#include "sion_generic_internal.h"
#include "sion_generic_apidesc.h"
#include "sion_generic_mapped.h"
#include "sion_generic_buddy.h"
#include "sion_generic.h"
Include dependency graph for sion_generic.c:

Go to the source code of this file.

Macros

#define _XOPEN_SOURCE   700
 

Functions

int sion_generic_create_api (char *name)
 
int sion_generic_free_api (int aid)
 
int sion_generic_register_create_local_commgroup_cb (int aid, int create_lcg_cb(void **, void *, int, int, int, int, int, int))
 
int sion_generic_register_free_local_commgroup_cb (int aid, int free_lcg_cb(void *))
 
int sion_generic_register_barrier_cb (int aid, int barrier_cb(void *))
 
int sion_generic_register_bcastr_cb (int aid, int bcastr_cb(void *, void *, int, int, int))
 
int sion_generic_register_gatherr_cb (int aid, int gatherr_cb(void *, void *, void *, int, int, int))
 
int sion_generic_register_gathervr_cb (int aid, int gathervr_cb(void *, void *, void *, int, int *, int, int))
 
int sion_generic_register_scatterr_cb (int aid, int scatterr_cb(void *, void *, void *, int, int, int))
 
int sion_generic_register_scattervr_cb (int aid, int scattervr_cb(void *, void *, void *, int, int *, int, int))
 
int sion_generic_register_gather_and_execute_cb (int aid, int gather_execute_cb(const void *, sion_int64 *, int, sion_int64, void *, int, int, int, int, int process_cb(const void *, sion_int64 *, int)))
 
int sion_generic_register_execute_and_scatter_cb (int aid, int execute_scatter_cb(void *, sion_int64 *, int, sion_int64, void *, int, int, int, int, int process_cb(void *, sion_int64 *, int)))
 
int sion_generic_register_get_multi_filename_cb (int aid, char *get_multi_filename_cb(const char *, int))
 
int sion_generic_register_get_capability_cb (int aid, int get_capability_cb(void *))
 
int sion_generic_paropen (int aid, const char *fname, const char *file_mode, sion_int64 *chunksize, sion_int32 *fsblksize, void *gcommgroup, int grank, int gsize, int *filenumber, int *numfiles, const int *lrank, const int *lsize, FILE **fileptr, char **newfname)
 Open a sion file a generic interface. More...
 
int sion_generic_parclose (int sid)
 
int sion_generic_paropen_mapped (int aid, char *fname, const char *file_mode, int *numFiles, void *gcommgroup, int grank, int gsize, int *nlocaltasks, int **globalranks, sion_int64 **chunksizes, int **mapping_filenrs, int **mapping_lranks, sion_int32 *fsblksize, FILE **fileptr)
 
int sion_generic_parclose_mapped (int sid)
 
int _sion_generic_get_and_distribute_info_from_file (_sion_generic_gendata *sion_gendata, const char *fname)
 
int sion_generic_parreinit (int sid, sion_int64 chunksize)
 

Detailed Description

Generic API Generic API

Definition in file sion_generic.c.

Function Documentation

◆ sion_generic_paropen()

int sion_generic_paropen ( int  aid,
const char *  fname,
const char *  file_mode,
sion_int64 *  chunksize,
sion_int32 *  fsblksize,
void *  gcommgroup,
int  grank,
int  gsize,
int *  filenumber,
int *  numfiles,
const int *  lrank,
const int *  lsize,
FILE **  fileptr,
char **  newfname 
)

Open a sion file a generic interface.

For a description please see the description of sion_paropen_mpi.

Parameters
[in]aidsion API id
[in]fnamename of file, should be equal on all tasks
[in]file_modelike the type parameter of fopen (currently recognized options: "rb", "wb")
[in,out]chunksizemaximum size to be written with single write call
[in,out]fsblksizefile system block size (-1 for automatic)
[in]gcommgroupglobal communicator
[in]grankglobal rank of process
[in]gsizesize of global communicator
[in,out]filenumberfile number (for multiple file mode)
[in,out]numfilesnumber of files to use (-1 for automatic choosing from local communicator)
[in]lranklocal rank of process
[in]lsizesize of local communicator
[in,out]fileptrfile pointer (NULL for not using an external file pointer)
[out]newfnamereturn value for actual file name if using multiple files
Return values
sidsion file handle or -1 if error occured

Definition at line 351 of file sion_generic.c.