diff options
Diffstat (limited to 'gate.c')
-rw-r--r-- | gate.c | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -0,0 +1,46 @@ +#include <string.h> + +#include "gate.h" +#include "error.h" + +#define GATE_MAX 1024 + +static size_t gate_count; +static struct gate gates[GATE_MAX]; + +int +gate_count_guard(void) { + if (gate_count >= GATE_MAX) { + emit_error("Internal: too many gates\n"); + } + return 1; +} + +int +gate_add(struct gate *in1, struct gate *in2) { + struct gate g = {0}; + + if (gate_count_guard()) { + return 1; + } + + g.in1 = in1; + g.in2 = in2; + + gates[gate_count++] = g; + + return 0; +} + +int +tick(void) { + /* FIXME */ + return 1; +} + +void +gate_init(void) { + gate_count = 0; + memset(gates, 0, sizeof(gates)); +} + |