⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adio.h

📁 fortran并行计算包
💻 H
📖 第 1 页 / 共 2 页
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//*  *   Copyright (C) 1997 University of Chicago.  *   See COPYRIGHT notice in top-level directory. *//* main include file for ADIO.   contains general definitions, declarations, and macros independent    of the underlying file system *//* Functions and datataypes that are "internal" to the ADIO implementation    prefixed ADIOI_. Functions and datatypes that are part of the   "externally visible" (documented) ADIO interface are prefixed ADIO_.   An implementation of MPI-IO, or any other high-level interface, should   not need to use any of the ADIOI_ functions/datatypes.    Only someone implementing ADIO on a new file system, or modifying    an existing ADIO implementation, would need to use the ADIOI_   functions/datatypes. */#ifndef ADIO_INCLUDE#define ADIO_INCLUDE#ifdef SPPUX#define _POSIX_SOURCE#endif#ifdef USE_FORT_STDCALL#define FORT_CALL __stdcall#elif defined (USE_FORT_CDECL)#define FORT_CALL __cdecl#else#define FORT_CALL#endif#ifdef USE_FORT_MIXED_STR_LEN#define FORT_MIXED_LEN_DECL   , int#define FORT_END_LEN_DECL#define FORT_MIXED_LEN(a)     , int a#define FORT_END_LEN(a)#else#define FORT_MIXED_LEN_DECL#define FORT_END_LEN_DECL     , int#define FORT_MIXED_LEN(a)#define FORT_END_LEN(a)       , int a#endif#ifdef HAVE_FORTRAN_API# ifdef FORTRAN_EXPORTS#  define FORTRAN_API __declspec(dllexport)# else#  define FORTRAN_API __declspec(dllimport)# endif#else# define FORTRAN_API#endif/* Use this macro for each parameter to a function that is not referenced in the body of the function */#ifdef HAVE_WINDOWS_H#define ADIOI_UNREFERENCED_ARG(a) a#else#define ADIOI_UNREFERENCED_ARG(a)#endif/* Include romioconf.h if we haven't already (some include files may   need to include romioconf before some system includes) */#ifndef ROMIOCONF_H_INCLUDED#include "romioconf.h"#define ROMIOCONF_H_INCLUDED#endif#include "mpi.h"#include "mpio.h"#ifdef HAVE_FCNTL_H#include <fcntl.h>#endif#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif#include <sys/stat.h>#include <string.h>#include <stdio.h>#include <stdlib.h>#include <errno.h>#ifdef SPPUX#include <sys/cnx_fcntl.h>#endif#ifdef ROMIO_NTFS#include <winsock2.h>#include <windows.h>#define FDTYPE HANDLE#else#define FDTYPE int#endif#ifdef MPI_OFFSET_IS_INT   typedef int ADIO_Offset;#  define ADIO_OFFSET MPI_INT#elif defined(HAVE_LONG_LONG_64)   typedef long long ADIO_Offset;#  ifdef HAVE_MPI_LONG_LONG_INT#     define ADIO_OFFSET MPI_LONG_LONG_INT#  else#     define ADIO_OFFSET MPI_DOUBLE#  endif#elif defined(HAVE_INT64)   typedef __int64 ADIO_Offset;#  define ADIO_OFFSET MPI_DOUBLE#else   typedef long ADIO_Offset;#  define ADIO_OFFSET MPI_LONG#endif#ifndef SX4#   define MPI_AINT MPI_LONG    /* may need to change this later */#else#   if (defined(_SX) && !defined(_LONG64))#       define MPI_AINT MPI_LONG_LONG_INT#   else#       define MPI_AINT MPI_LONG#   endif#endif#define ADIO_Status MPI_Status   #ifndef MPIO_INCLUDE#  ifdef NEEDS_MPI_FINT      typedef int MPI_Fint; #  endif#endif#if (!defined(HAVE_MPI_INFO) && !defined(MPIO_INCLUDE))   typedef struct MPIR_Info *MPI_Info;#  define MPI_INFO_NULL 0#  define MPI_MAX_INFO_VAL      1024int MPI_Info_create(MPI_Info *info);int MPI_Info_set(MPI_Info info, char *key, char *value);int MPI_Info_delete(MPI_Info info, char *key);int MPI_Info_get(MPI_Info info, char *key, int valuelen,                          char *value, int *flag);int MPI_Info_get_valuelen(MPI_Info info, char *key, int *valuelen, int *flag);int MPI_Info_get_nkeys(MPI_Info info, int *nkeys);int MPI_Info_get_nthkey(MPI_Info info, int n, char *key);int MPI_Info_dup(MPI_Info info, MPI_Info *newinfo);int MPI_Info_free(MPI_Info *info);#ifdef MPI_Info_f2c#undef MPI_Info_f2c#endif#ifdef MPI_Info_c2f#undef MPI_Info_c2f#endif/* above needed for some versions of mpi.h in MPICH!! */MPI_Fint MPI_Info_c2f(MPI_Info info);MPI_Info MPI_Info_f2c(MPI_Fint info);int PMPI_Info_create(MPI_Info *info);int PMPI_Info_set(MPI_Info info, char *key, char *value);int PMPI_Info_delete(MPI_Info info, char *key);int PMPI_Info_get(MPI_Info info, char *key, int valuelen,                          char *value, int *flag);int PMPI_Info_get_valuelen(MPI_Info info, char *key, int *valuelen, int *flag);int PMPI_Info_get_nkeys(MPI_Info info, int *nkeys);int PMPI_Info_get_nthkey(MPI_Info info, int n, char *key);int PMPI_Info_dup(MPI_Info info, MPI_Info *newinfo);int PMPI_Info_free(MPI_Info *info);MPI_Fint PMPI_Info_c2f(MPI_Info info);MPI_Info PMPI_Info_f2c(MPI_Fint info);#endif/* style: allow:strdup:1 sig:0 */#if defined(HAVE_STRDUP) && defined(NEEDS_STRDUP_DECL) && !defined(strdup)char *strdup(const char *s);# endif#if defined(HAVE_READLINK) && defined(NEEDS_READLINK_DECL) && !defined(readlink)int readlink(const char *path, char *buf, size_t bufsiz);# endif#if defined(HAVE_LSTAT) && defined(NEEDS_LSTAT_DECL) && !defined(lstat)int lstat(const char *file_name, struct stat *buf);# endif#if defined(HAVE_FSYNC) && defined(NEEDS_FSYNC_DECL) && !defined(fsync)int fsync(int fd);# endif#if defined(HAVE_FTRUNCATE) && defined(NEEDS_FTRUNCATE_DECL) && !defined(ftruncate)int ftruncate(int fd, off_t length);# endiftypedef struct ADIOI_Fns_struct ADIOI_Fns;typedef struct ADIOI_Hints_struct ADIOI_Hints;typedef struct ADIOI_FileD {    int cookie;              /* for error checking */    FDTYPE fd_sys;              /* system file descriptor */    int fd_direct;           /* On XFS, this is used for direct I/O;                                 fd_sys is used for buffered I/O */    int direct_read;         /* flag; 1 means use direct read */    int direct_write;        /* flag; 1 means use direct write  */    /* direct I/O attributes */    unsigned d_mem;          /* data buffer memory alignment */    unsigned d_miniosz;      /* min xfer size, xfer size multiple,                                and file seek offset alignment */    unsigned d_maxiosz;      /* max xfer size */    ADIO_Offset fp_ind;      /* individual file pointer in MPI-IO (in bytes)*/    ADIO_Offset fp_sys_posn; /* current location of the system file-pointer                                in bytes */    ADIOI_Fns *fns;          /* struct of I/O functions to use */    MPI_Comm comm;           /* communicator indicating who called open */    MPI_Comm agg_comm;      /* deferred open: aggregators who called open */    int is_open;	    /* deferred open: 0: not open yet 1: is open */    char *filename;          

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -