aboutsummaryrefslogtreecommitdiff
path: root/include/cnn1986_cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'include/cnn1986_cache.c')
-rw-r--r--include/cnn1986_cache.c77
1 files changed, 0 insertions, 77 deletions
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;
-}