ESH

Executive Shell
git clone http://git.omkov.net/ESH
Log | Tree | Refs | README | Download

ESH/src/util/stack.h (20 lines, 491 B) -rw-r--r-- file download

8344335 Jakob Wakeling 2023-12-27 15:41:39
0
// Copyright (C) 2023, Jakob Wakeling
8344335 Jakob Wakeling 2023-12-27 15:41:39
1
// All rights reserved.
8344335 Jakob Wakeling 2023-12-27 15:41:39
2
8344335 Jakob Wakeling 2023-12-27 15:41:39
3
#ifndef ESH_UTIL_STACK_H_XP00FNGQ
8344335 Jakob Wakeling 2023-12-27 15:41:39
4
#define ESH_UTIL_STACK_H_XP00FNGQ
8344335 Jakob Wakeling 2023-12-27 15:41:39
5
8344335 Jakob Wakeling 2023-12-27 15:41:39
6
#include "util.h"
8344335 Jakob Wakeling 2023-12-27 15:41:39
7
8344335 Jakob Wakeling 2023-12-27 15:41:39
8
#define stack_push(s, e) _stack_push(s, (void *)(uptr)(e))
8344335 Jakob Wakeling 2023-12-27 15:41:39
9
8344335 Jakob Wakeling 2023-12-27 15:41:39
10
typedef struct { void *a; u64 al, ac, el; void (*free)(void *); } stack;
8344335 Jakob Wakeling 2023-12-27 15:41:39
11
8344335 Jakob Wakeling 2023-12-27 15:41:39
12
extern stack stack_init(u64 el, void (*free)(void *));
8344335 Jakob Wakeling 2023-12-27 15:41:39
13
extern void  stack_free(stack *s);
8344335 Jakob Wakeling 2023-12-27 15:41:39
14
8344335 Jakob Wakeling 2023-12-27 15:41:39
15
extern void _stack_push(stack *s, void *e);
8344335 Jakob Wakeling 2023-12-27 15:41:39
16
extern void *stack_pop(stack *s);
8344335 Jakob Wakeling 2023-12-27 15:41:39
17
8344335 Jakob Wakeling 2023-12-27 15:41:39
18
#endif // ESH_UTIL_STACK_H_XP00FNGQ
19