]> gerrit.simantics Code Review - simantics/fmil.git/blob - org.simantics.fmil.core/native/FMUSimulator/include/stack.h
Renamed org.simantics.fmil to org.simantics.fmil.core to prevent having bundles and...
[simantics/fmil.git] / org.simantics.fmil.core / native / FMUSimulator / include / stack.h
1 /* ------------------------------------------------------------------------- \r
2  * stack.c\r
3  * A stack of pointers. \r
4  * Copyright 2010 QTronic GmbH. All rights reserved. \r
5  * -------------------------------------------------------------------------*/ \r
6 \r
7 #ifndef STACK_H\r
8 #define STACK_H\r
9 \r
10 typedef struct {\r
11     void** stack;\r
12     int stackSize;    // allocated size of stack\r
13     int stackPos;     // array index of top element, -1 if stack is empty.\r
14     int initialSize;  // how many element to allocate initially\r
15     int inc;          // how many elements to allocate when stack gets full\r
16 } Stack;\r
17 \r
18 Stack* stackNew(int initialSize, int inc);\r
19 int stackIsEmpty(Stack* s);\r
20 int stackPush(Stack* s, void* e);\r
21 void* stackPeek(Stack* s);\r
22 void* stackPop(Stack* s);\r
23 void** stackPopAllAsArray(Stack* s, int *size);\r
24 void** stackLastPopedAsArray0(Stack* s, int n);\r
25 void stackFree(Stack* s);\r
26 \r
27 #endif // STACK_H\r
28 \r