From cf921b2e647136dc34568e0fff78b67c14c8e2fa Mon Sep 17 00:00:00 2001 From: tslil clingman Date: Sun, 24 Jan 2021 19:06:49 -0500 Subject: Working on action lists to refactor --- include/cnn1986_cache.c | 77 ------------------------------------------------- 1 file changed, 77 deletions(-) delete mode 100644 include/cnn1986_cache.c (limited to 'include/cnn1986_cache.c') diff --git a/include/cnn1986_cache.c b/include/cnn1986_cache.c deleted file mode 100644 index 303ef57..0000000 --- a/include/cnn1986_cache.c +++ /dev/null @@ -1,77 +0,0 @@ -#include "cnn1986_cache.h" - -#define DATA_STONE_SHIFT 6 -#define DATA_COUNT_SHIFT (DATA_STONE_SHIFT+2) -#define COLOUR_MASK 0x3F // 0b00111111 - -uint32_t cnn1986_num_cached, cnn1986_max_num_cached = 1000000; -node_t *head = NULL, *tail = NULL; - -int cnn1986_cache_init(void) { return EXIT_SUCCESS; } - -void cnn1986_cache_free(void) { - node_t *c = head, *n; - while (c) { - n = c->next; - free(c); - c = n; - } - head = NULL; - tail = NULL; -} - -int cnn1986_cache_seek(const uint64_t key[4], - float *out_result) { - node_t *c = head; - while (c != NULL) { - // Either seek next or move to front and return - uint8_t fail = 0; - for (int k=0; k<4; k++) { - if (c->key[k] != key[k]) { - fail = 1; break; - } - } - - if (fail == 1) { - c = c->next; - } else { - *out_result = c->result; - // Move to front - if (c != head) { - if (tail == c) tail=c->prev; - if (c->next) c->next->prev = c->prev; - c->prev->next = c->next; - c->prev = NULL; - c->next = head; - head->prev = c; - head = c; - } - return EXIT_SUCCESS; - } - } - // Failed to find it - return EXIT_FAILURE; -} - -int cnn1986_cache_insert(const uint64_t key[4], float in_result) { - node_t *new = malloc(sizeof(node_t)); - if (new == NULL) return EXIT_FAILURE; - // TODO: check errno - new->prev = NULL; - new->next = head; - if (head) head->prev = new; - head = new; - for (int k=0; k<4; k++) new->key[k] = key[k]; - new->result = in_result; - if (cnn1986_num_cached == 0) tail = new; - cnn1986_num_cached++; - - if (cnn1986_num_cached > cnn1986_max_num_cached) { - tail = tail->prev; - free(tail->next); - tail->next = NULL; - cnn1986_num_cached--; - } - - return EXIT_SUCCESS; -} -- cgit v1.2.3