This source file includes following definitions.
- ADIOI_Malloc_fn
- ADIOI_Calloc_fn
- ADIOI_Realloc_fn
- ADIOI_Free_fn
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 #include "adio.h"
  18 #include "mpi.h"
  19 #include <stdlib.h>
  20 #include <stdio.h>
  21 #include "mpipr.h"
  22 
  23 #ifdef HAVE_MALLOC_H
  24 #include <malloc.h>
  25 #endif
  26 
  27 
  28 
  29 
  30 
  31 
  32 
  33 #define FPRINTF fprintf
  34 
  35 void *ADIOI_Malloc_fn(size_t size, int lineno, const char *fname);
  36 void *ADIOI_Calloc_fn(size_t nelem, size_t elsize, int lineno, const char *fname);
  37 void *ADIOI_Realloc_fn(void *ptr, size_t size, int lineno, const char *fname);
  38 void ADIOI_Free_fn(void *ptr, int lineno, const char *fname);
  39 
  40 void *ADIOI_Malloc_fn(size_t size, int lineno, const char *fname)
  41 {
  42     void *new;
  43 
  44 #ifdef ROMIO_XFS
  45     new = (void *) memalign(XFS_MEMALIGN, size);
  46 #else
  47 #ifdef HAVE_MPIU_FUNCS
  48     new = (void *) MPIU_trmalloc(size, lineno, fname);
  49 #else
  50     new = (void *) malloc(size);
  51 #endif
  52 #endif
  53     if (!new && size) {
  54         FPRINTF(stderr, "Out of memory in file %s, line %d\n", fname, lineno);
  55         MPI_Abort(MPI_COMM_WORLD, 1);
  56     }
  57     DBG_FPRINTF(stderr, "ADIOI_Malloc %s:<%d> %p (%#zX)\n", fname, lineno, new, size);
  58     return new;
  59 }
  60 
  61 
  62 void *ADIOI_Calloc_fn(size_t nelem, size_t elsize, int lineno, const char *fname)
  63 {
  64     void *new;
  65 
  66 #ifdef HAVE_MPIU_FUNCS
  67     new = (void *) MPIU_trcalloc(nelem, elsize, lineno, fname);
  68 #else
  69     new = (void *) calloc(nelem, elsize);
  70 #endif
  71     if (!new && nelem) {
  72         FPRINTF(stderr, "Out of memory in file %s, line %d\n", fname, lineno);
  73         MPI_Abort(MPI_COMM_WORLD, 1);
  74     }
  75     DBG_FPRINTF(stderr, "ADIOI_Calloc %s:<%d> %p\n", fname, lineno, new);
  76     return new;
  77 }
  78 
  79 
  80 void *ADIOI_Realloc_fn(void *ptr, size_t size, int lineno, const char *fname)
  81 {
  82     void *new;
  83 
  84 #ifdef HAVE_MPIU_FUNCS
  85     new = (void *) MPIU_trrealloc(ptr, size, lineno, fname);
  86 #else
  87     new = (void *) realloc(ptr, size);
  88 #endif
  89     if (!new && size) {
  90         FPRINTF(stderr, "realloc failed in file %s, line %d\n", fname, lineno);
  91         MPI_Abort(MPI_COMM_WORLD, 1);
  92     }
  93     DBG_FPRINTF(stderr, "ADIOI_Realloc %s:<%d> %p\n", fname, lineno, new);
  94     return new;
  95 }
  96 
  97 
  98 void ADIOI_Free_fn(void *ptr, int lineno, const char *fname)
  99 {
 100     DBG_FPRINTF(stderr, "ADIOI_Free %s:<%d> %p\n", fname, lineno, ptr);
 101     if (!ptr) {
 102         FPRINTF(stderr, "Attempt to free null pointer in file %s, line %d\n", fname, lineno);
 103         MPI_Abort(MPI_COMM_WORLD, 1);
 104     }
 105 
 106 #ifdef HAVE_MPIU_FUNCS
 107     MPIU_trfree(ptr, lineno, fname);
 108 #else
 109     free(ptr);
 110 #endif
 111 }
 112 
 113