From 61c3a9aa7a636ada2cedd5b6025d5c7ccc598c85 Mon Sep 17 00:00:00 2001 From: Gediminas Jakutis Date: Tue, 10 Mar 2020 10:15:53 +0200 Subject: bolt on data generation, kind of. Signed-off-by: Gediminas Jakutis --- src/datagen.c | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) (limited to 'src/datagen.c') diff --git a/src/datagen.c b/src/datagen.c index 9efe3b3..d4c8bab 100644 --- a/src/datagen.c +++ b/src/datagen.c @@ -1,19 +1,20 @@ +/* SPDX-License-Identifier: LGPL-2.1-only */ + +/* Copyright (C) 2020 Gediminas Jakutis */ + #include #include #include +#include +#include #include "datagen.h" #include "defs.h" -int gen_get(struct stream *in, size_t idx, struct entry_l *data, int tag) +int gen_get_array(struct stream * const restrict in, ssize_t idx, struct entry_l * const data) { int ret = 0; (void) idx; - if (tag) { - data->prev = 0; - data->next = 0; - } - in->prev_idx = -1; ret = read(in->fd, &data->val, sizeof(data->val)); @@ -23,3 +24,24 @@ int gen_get(struct stream *in, size_t idx, struct entry_l *data, int tag) return ret; } + +int gen_get_list(struct stream * const restrict in, ssize_t idx, struct entry_l * const data) +{ + int ret = 0; + + data->prev = idx > 0 ? idx - 1 : labs(idx) - 1; + data->next = idx + 1; + + if (!idx) { + data->val = 0; /* header lmao */ + } else { + ret = gen_get_array(in, idx, data); + } + + return ret; +} + +int gen_put(struct stream * const restrict in, ssize_t idx, const struct entry_l * const data) +{ + return ENOSYS; +} -- cgit v1.2.3