Go to the source code of this file.
Defines | |
#define | UME_EMPTY {NULL, NULL, NULL, 0, 0} |
#define | UME_alloc_tmp(siz) alloca(siz) |
#define | UME_connect(memPos, memSeg) (memPos)=(memSeg)->next |
UME_connect get actual memSpacePosition. | |
#define | UME_release(memPos, memSeg) (memSeg)->next=(memPos) |
UME_release release memSpace. | |
Functions | |
int | UME_init (Memspc *memSpc, void *objDat, int osiz) |
void * | UME_save (Memspc *memSpc, void *objDat, int osiz) |
void * | UME_reserve (Memspc *memSpc, int osiz) |
int | UME_add (Memspc *memSpc, int osiz) |
int | UME_reset (Memspc *memSpc, void *newStart) |
int | UME_ck_free (Memspc *memSpc) |
int | UME_dump (Memspc *memSpc, char *txt) |
int | UME_del (Memspc *memSpc, void *nach, void *von,...) |
void | UME_connect (void *memPos, Memspc *memSeg) |
void | UME_release (void *memPos, Memspc *memSeg) |
int | UME_reall_add (long *spcOff, Memspc *memSpc, long addSiz) |
int | UME_realloc (long *spcOff, Memspc *memSpc, long newSiz) |
int | UME_reall_save (long *spcOff, Memspc *memSpc, void *objDat, int osiz) |
void * | UME_alloc_tmp (int siz) |
#define UME_EMPTY {NULL, NULL, NULL, 0, 0} |
#define UME_alloc_tmp | ( | siz | ) | alloca(siz) |
UME_alloc_tmp allocate mem for active function spc = (typ*)UME_alloc_tmp(size);
#define UME_connect | ( | memPos, | |||
memSeg | ) | (memPos)=(memSeg)->next |
UME_connect get actual memSpacePosition.
#define UME_release | ( | memPos, | |||
memSeg | ) | (memSeg)->next=(memPos) |
UME_release release memSpace.
int UME_init | ( | Memspc * | memSpc, | |
void * | objDat, | |||
int | osiz | |||
) |
UME_init init Memspc puts memSpc as first Record into objDat; gives back its Adress. Examples: char memspc51[50000]; Memspc memSeg1; int *iTab, sizTab; // attach memspc51 UME_init (&memSeg1, memspc51, sizeof(memspc51)); // give whole space to iTab; do not fix memspc.next UME_connect (iTab, &memSeg1); // set max size for iTab sizTab = UME_ck_free (&memSeg1) / sizeof(int); // reserve 100 int's in memSeg1; update memspc.next. iTab = UME_reserve (&memSeg1, 100 * sizeof(int)); // give the remaining space to (char*)cbuf UME_connect (cbuf, memSeg1); // query size of cbuf cbufSiz = UME_ck_free (memSeg1); see also ../doc/gCAD3D_prog_de.txt section Memoryfunktionen
void* UME_save | ( | Memspc * | memSpc, | |
void * | objDat, | |||
int | osiz | |||
) |
void* UME_reserve | ( | Memspc * | memSpc, | |
int | osiz | |||
) |
UME_reserve get memSpacePos & reserve space does UME_connect (returns memspace) & UME_add (modify memspc.next) RetCode: the address (starting-Position) of the memSpace; NULL if EOM (not enough memspace)
int UME_add | ( | Memspc * | memSpc, | |
int | osiz | |||
) |
UME_add den next-Pointer korrigieren (Obj. manuell speichern) RetCod 0=OK, -1=OutOfSpace Platz reservieren; wird nachfolgend NICHT mit UME_save belegt. Achtung Reihenfolge: 1) den Pointer merken Point *pTab; pTab = (Point*)memSeg1->next; 2) den Platz reservieren (aendert den Pointer memSeg1->next) i1 = UME_add (memSeg1, sizeof(Point) * ptNr); if(i1 < 0) goto L_eom; // Test ob genug Platz im memSeg 3) den Platz belegen memcpy (pTab, pta, sizeof(Point) * ptNr);
int UME_ck_free | ( | Memspc * | memSpc | ) |
UME_ck_free return free space
int UME_dump | ( | Memspc * | memSpc, | |
char * | txt | |||
) |
UME_dump display free space
int UME_del | ( | Memspc * | memSpc, | |
void * | nach, | |||
void * | von, | |||
... | ||||
) |
Datenbereich (u Pointer) loeschen (nach links verschieben); "nach" muss also kleiner als "von" sein !!
void UME_connect | ( | void * | memPos, | |
Memspc * | memSeg | |||
) |
void UME_release | ( | void * | memPos, | |
Memspc * | memSeg | |||
) |
int UME_reall_add | ( | long * | spcOff, | |
Memspc * | memSpc, | |||
long | addSiz | |||
) |
add = allocate Space for <addSiz> bytes; reallocate if necessary. next-Pointer is incremented <addSiz> bytes Input: addSiz occupy <addSiz> bytes in memSpc 0: must increase memSpc Output: spcOff displacement-offset; 0: no reallocate. RetCode 0=OK; -1=outOfMemory-Error.
int UME_realloc | ( | long * | spcOff, | |
Memspc * | memSpc, | |||
long | newSiz | |||
) |
memspc vergroessern; die Pointer start, next und end korrigieren. Input: newSiz is new total size of memSpc Output: spcOff distance from active memSpc->start to new memSpc->start
int UME_reall_save | ( | long * | spcOff, | |
Memspc * | memSpc, | |||
void * | objDat, | |||
int | osiz | |||
) |
UME_reall_save save Obj -> Memspc next-Pointer is incremented <addSiz> bytes and <osiz> bytes from position <objDat> are saved into memSpc. Input: oSiz nr of bytes to save objDat date to be saved in memSpc Output: spcOff displacement-offset; 0: no reallocate. RetCode 0=OK; -1=outOfMemory-Error.
void* UME_alloc_tmp | ( | int | siz | ) |