xref: /petsc/src/mat/utils/freespace.h (revision eb9c0419a981a97953bed00d7987199f49d3316b)
1*eb9c0419SKris Buschelman #if !defined(_FreeSpace_h_)
2*eb9c0419SKris Buschelman #define _FreeSpace_h_
3*eb9c0419SKris 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;
1070f19b1fSKris Buschelman   int           *array;
1170f19b1fSKris Buschelman   int           *array_head;
1270f19b1fSKris Buschelman   int           total_array_size;
1370f19b1fSKris Buschelman   int           local_used;
1470f19b1fSKris Buschelman   int           local_remaining;
1570f19b1fSKris Buschelman } FreeSpace;
1670f19b1fSKris Buschelman 
1770f19b1fSKris Buschelman int GetMoreSpace(int size,FreeSpaceList *list);
1870f19b1fSKris Buschelman int MakeSpaceContiguous(FreeSpaceList *head,int *space);
19*eb9c0419SKris Buschelman 
20*eb9c0419SKris Buschelman #endif
21