Lines Matching refs:pstack

13 struct pstack {  struct
19 struct pstack *pstack__new(unsigned short max_nr_entries) in pstack__new() argument
21 struct pstack *pstack = zalloc((sizeof(*pstack) + in pstack__new() local
23 if (pstack != NULL) in pstack__new()
24 pstack->max_nr_entries = max_nr_entries; in pstack__new()
25 return pstack; in pstack__new()
28 void pstack__delete(struct pstack *pstack) in pstack__delete() argument
30 free(pstack); in pstack__delete()
33 bool pstack__empty(const struct pstack *pstack) in pstack__empty() argument
35 return pstack->top == 0; in pstack__empty()
38 void pstack__remove(struct pstack *pstack, void *key) in pstack__remove() argument
40 unsigned short i = pstack->top, last_index = pstack->top - 1; in pstack__remove()
43 if (pstack->entries[i] == key) { in pstack__remove()
45 memmove(pstack->entries + i, in pstack__remove()
46 pstack->entries + i + 1, in pstack__remove()
48 --pstack->top; in pstack__remove()
55 void pstack__push(struct pstack *pstack, void *key) in pstack__push() argument
57 if (pstack->top == pstack->max_nr_entries) { in pstack__push()
58 pr_err("%s: top=%d, overflow!\n", __func__, pstack->top); in pstack__push()
61 pstack->entries[pstack->top++] = key; in pstack__push()
64 void *pstack__pop(struct pstack *pstack) in pstack__pop() argument
68 if (pstack->top == 0) { in pstack__pop()
73 ret = pstack->entries[--pstack->top]; in pstack__pop()
74 pstack->entries[pstack->top] = NULL; in pstack__pop()
78 void *pstack__peek(struct pstack *pstack) in pstack__peek() argument
80 if (pstack->top == 0) in pstack__peek()
82 return pstack->entries[pstack->top - 1]; in pstack__peek()