xref: /petsc/src/mat/utils/freespace.h (revision 2e111b49e578abe6ff03bda869f076a709b1b9da)
1eb9c0419SKris Buschelman #if !defined(_FreeSpace_h_)
2eb9c0419SKris Buschelman #define _FreeSpace_h_
3eb9c0419SKris Buschelman 
470f19b1fSKris Buschelman #include "petsc.h"
570f19b1fSKris Buschelman 
670f19b1fSKris Buschelman typedef struct _Space *FreeSpaceList;
770f19b1fSKris Buschelman 
870f19b1fSKris Buschelman typedef struct _Space {
970f19b1fSKris Buschelman   FreeSpaceList more_space;
10*2e111b49SBarry Smith   PetscInt      *array;
11*2e111b49SBarry Smith   PetscInt      *array_head;
12*2e111b49SBarry Smith   PetscInt      total_array_size;
13*2e111b49SBarry Smith   PetscInt      local_used;
14*2e111b49SBarry Smith   PetscInt      local_remaining;
1570f19b1fSKris Buschelman } FreeSpace;
1670f19b1fSKris Buschelman 
17*2e111b49SBarry Smith PetscErrorCode GetMoreSpace(PetscInt,FreeSpaceList*);
18*2e111b49SBarry Smith PetscErrorCode MakeSpaceContiguous(FreeSpaceList*,PetscInt *);
19eb9c0419SKris Buschelman 
20eb9c0419SKris Buschelman #endif
21