diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 21 |
1 files changed, 12 insertions, 9 deletions
@@ -12,6 +12,7 @@ #include "defs.h" #include "cache.h" #include "datagen.h" +#include "mergesort.h" static struct settings settings = {0}; @@ -64,11 +65,11 @@ int main(int argc, char **argv) } break; case mode_generate: - try_s((ret = cache_transfer(&file_in, &file_out)), out); - break; + try_s((ret = cache_transfer(&file_in, &file_out)), out); + break; case mode_normal: - /* TODO */ - ; + try_s((ret = cache_create(&file_out)), out); + try_s((ret = merge_sort(&file_in, &file_out)), out); } } else { /* uncached */ @@ -175,21 +176,23 @@ int load_io_functions(struct settings const * const s, struct stream * const in) if (in->type == stream_out) { if (s->format == array) { - /* TODO */ - } else { + in->get_next_element_cache = cached_get_array; + in->place_next_element_cache = cached_put_array; + } else { /* if (s->format == list */ /* TODO */ } } else if (in->type == stream_in) { /* reading streams do not support dumping */ if (s->format == array) { - /* TODO */ - } else { + in->get_next_element_cache = cached_get_array; + in->place_next_element_cache = cached_put_array; + } else { /* if (s->format == list */ /* TODO */ } } else if (in->type == stream_randread) { /* data generation streams do not support dumping nor any cache I/O beyond initial data generation */ if (s->format == array) { in->get_next_element_direct = gen_get_array; in->place_next_element_cache = cached_put_array; - } else { + } else { /* if (s->format == list */ in->get_next_element_direct = gen_get_list; in->place_next_element_cache = cached_put_list; } |