syscalls: support generic system calls
[openpower-isa.git] / src / openpower / decoder / test / crtl_template.c
1 #include <stdint.h>
2 #include "common.h"
3
4 state_t slots[%d];
5 uint64_t pending[%d];
6 uint64_t pending_count;
7
8 void add_pending(uint64_t index)
9 {
10 pending[pending_count++] = index;
11 }
12
13 void clear_pending(void)
14 {
15 pending_count = 0;
16 }
17
18 uint64_t capture(uint64_t index)
19 {
20 if (slots[index].curr == slots[index].next)
21 return 0;
22
23 slots[index].curr = slots[index].next;
24 return 1;
25 }
26
27 uint64_t get_curr(uint64_t index)
28 {
29 return slots[index].curr;
30 }
31
32 uint64_t get_next(uint64_t index)
33 {
34 return slots[index].next;
35 }
36
37 void set(uint64_t index, uint64_t value)
38 {
39 slots[index].next = value;
40 add_pending(index);
41 }