00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "adio.h"
00010
00011 ADIOI_Flatlist_node *ADIOI_Flatlist;
00012 ADIOI_Async_node *ADIOI_Async_list_head, *ADIOI_Async_list_tail;
00013
00014 ADIOI_Async_node *ADIOI_Async_avail_head, *ADIOI_Async_avail_tail;
00015
00016 ADIOI_Malloc_async *ADIOI_Malloc_async_head, *ADIOI_Malloc_async_tail;
00017
00018
00019 ADIOI_Req_node *ADIOI_Req_avail_head, *ADIOI_Req_avail_tail;
00020
00021 ADIOI_Malloc_req *ADIOI_Malloc_req_head, *ADIOI_Malloc_req_tail;
00022
00023
00024
00025 ADIO_File *ADIOI_Ftable;
00026 int ADIOI_Ftable_ptr, ADIOI_Ftable_max;
00027 ADIO_Request *ADIOI_Reqtable;
00028 int ADIOI_Reqtable_ptr, ADIOI_Reqtable_max;
00029 #ifndef HAVE_MPI_INFO
00030 MPI_Info *MPIR_Infotable;
00031 int MPIR_Infotable_ptr, MPIR_Infotable_max;
00032 #endif
00033
00034 #ifdef XFS
00035 int ADIOI_Direct_read, ADIOI_Direct_write;
00036 #endif
00037
00038 int ADIO_Init_keyval=MPI_KEYVAL_INVALID;
00039
00040 MPI_Errhandler ADIOI_DFLT_ERR_HANDLER = MPI_ERRORS_RETURN;
00041
00042 void ADIO_Init(int *argc, char ***argv, int *error_code)
00043 {
00044 #ifdef XFS
00045 char *c;
00046 #endif
00047
00048
00049 ADIOI_Flatlist = (ADIOI_Flatlist_node *) ADIOI_Malloc(sizeof(ADIOI_Flatlist_node));
00050 ADIOI_Flatlist->type = (MPI_Datatype) NULL;
00051 ADIOI_Flatlist->next = NULL;
00052 ADIOI_Flatlist->blocklens = NULL;
00053 ADIOI_Flatlist->indices = NULL;
00054
00055 ADIOI_Async_list_head = ADIOI_Async_list_tail = NULL;
00056 ADIOI_Async_avail_head = ADIOI_Async_avail_tail = NULL;
00057 ADIOI_Malloc_async_head = ADIOI_Malloc_async_tail = NULL;
00058
00059 ADIOI_Req_avail_head = ADIOI_Req_avail_tail = NULL;
00060 ADIOI_Malloc_req_head = ADIOI_Malloc_req_tail = NULL;
00061
00062 ADIOI_Ftable = NULL;
00063 ADIOI_Ftable_ptr = ADIOI_Ftable_max = 0;
00064
00065 ADIOI_Reqtable = NULL;
00066 ADIOI_Reqtable_ptr = ADIOI_Reqtable_max = 0;
00067
00068 #ifndef HAVE_MPI_INFO
00069 MPIR_Infotable = NULL;
00070 MPIR_Infotable_ptr = MPIR_Infotable_max = 0;
00071 #endif
00072
00073 #ifdef XFS
00074 c = getenv("MPIO_DIRECT_READ");
00075 if (c && (!strcmp(c, "true") || !strcmp(c, "TRUE")))
00076 ADIOI_Direct_read = 1;
00077 else ADIOI_Direct_read = 0;
00078 c = getenv("MPIO_DIRECT_WRITE");
00079 if (c && (!strcmp(c, "true") || !strcmp(c, "TRUE")))
00080 ADIOI_Direct_write = 1;
00081 else ADIOI_Direct_write = 0;
00082 #endif
00083
00084 *error_code = MPI_SUCCESS;
00085 }