xref: /petsc/include/petsc.h (revision 2eac72db8c540d5ffabaab184fd7e6adb6fae597)
1*2eac72dbSBarry Smith 
2*2eac72dbSBarry Smith #if !defined(__PETSC_PACKAGE)
3*2eac72dbSBarry Smith #define __PETSC_PACKAGE
4*2eac72dbSBarry Smith 
5*2eac72dbSBarry Smith /*  Macros for getting and freeing memory */
6*2eac72dbSBarry Smith #define NEW(a)          (a *) MALLOC(sizeof(a))
7*2eac72dbSBarry Smith #define MALLOC(a)       malloc(a)
8*2eac72dbSBarry Smith #define FREE(a)         free(a)
9*2eac72dbSBarry Smith #define MEMCPY(a,b,n)   memcpy((char*)(a),(char*)(b),n)
10*2eac72dbSBarry Smith 
11*2eac72dbSBarry Smith /*  Macros for error checking */
12*2eac72dbSBarry Smith #define SETERR(n,s)     {return PetscErrorHandler(__LINE__,__FILE__,s,n);}
13*2eac72dbSBarry Smith #define CHKERR(n)       {if (n) SETERR(n,(char *)0);}
14*2eac72dbSBarry Smith #define CHKPTR(p)       if (!p) SETERR(1,"No memory");
15*2eac72dbSBarry Smith 
16*2eac72dbSBarry Smith 
17*2eac72dbSBarry Smith typedef struct _PetscObject PetscObject;
18*2eac72dbSBarry Smith 
19*2eac72dbSBarry Smith /*  Useful Petsc functions */
20*2eac72dbSBarry Smith 
21*2eac72dbSBarry Smith #ifdef ANSI_ARG
22*2eac72dbSBarry Smith #undef ANSI_ARG
23*2eac72dbSBarry Smith #endif
24*2eac72dbSBarry Smith #ifdef __STDC__
25*2eac72dbSBarry Smith #define ANSI_ARGS(a) a
26*2eac72dbSBarry Smith #else
27*2eac72dbSBarry Smith #define ANSI_ARGS(a) ()
28*2eac72dbSBarry Smith #endif
29*2eac72dbSBarry Smith 
30*2eac72dbSBarry Smith extern int PetscDestroy       ANSI_ARGS((PetscObject));
31*2eac72dbSBarry Smith extern int PetscErrorHandler  ANSI_ARGS((int,char*,char*,int));
32*2eac72dbSBarry Smith 
33*2eac72dbSBarry Smith #endif
34