/* 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_array(struct stream * const restrict in, ssize_t idx, struct entry_l * const data) { int ret = 0; (void) idx; in->prev_idx = -1; ret = read(in->fd, &data->val, sizeof(data->val)); if (ret != sizeof(data->val)) { ret = ret > 0 ? EAGAIN : errno; } 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; }