diff options
author | 2021-03-14 19:49:07 +0200 | |
---|---|---|
committer | 2021-03-14 19:49:07 +0200 | |
commit | 111d08d814720966d12fd57b58331c149df7e6cf (patch) | |
tree | 8c838a937767decc16579a3a3550e91c996de276 /src/main.c | |
parent | 56f20e30636c16fd14205ba7c29cf8089caa1260 (diff) | |
download | algos-ld1-111d08d814720966d12fd57b58331c149df7e6cf.tar.gz algos-ld1-111d08d814720966d12fd57b58331c149df7e6cf.tar.bz2 algos-ld1-111d08d814720966d12fd57b58331c149df7e6cf.zip |
we can now print out stuff... things.
Signed-off-by: Gediminas Jakutis <gediminas@varciai.lt>
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 28 |
1 files changed, 21 insertions, 7 deletions
@@ -14,6 +14,7 @@ #include "cache.h" #include "datagen.h" #include "mergesort.h" +#include "util.h" static struct settings settings = {0, 0, 0, NULL, NULL, mode_normal, array, cached}; @@ -53,7 +54,14 @@ int main(int argc, char **argv) file_out.name = settings.fileout ? settings.fileout : settings.filein; try_s((ret = stream_open(&file_in)), out); - file_out.n = settings.opmode == mode_normal ? file_in.n : file_in.n - settings.ss; + + if (settings.opmode == mode_fetch) { + settings.to = settings.to == settings.ss ? file_in.n : settings.to; + file_tmp.n = settings.to - settings.ss; + } else { + file_out.n = file_in.n; + } + try_s((ret = stream_open(&file_out)), out); load_io_functions(&settings, &file_out); @@ -64,11 +72,15 @@ int main(int argc, char **argv) switch (settings.opmode) { case mode_fetch: + stream_shallow_copy(&file_in, &file_tmp); if (settings.format == array) { - try_s((ret = cache_block_copy(&file_in, &file_out)), out); + try_s((ret = cache_block_copy(&file_in, &file_tmp)), out); } else { /* settings.format == list */ - try_s((ret = stream_copy_range(&file_in, &file_out)), out); + try_s((ret = stream_copy_range(&file_in, &file_tmp)), out); } + + print_data(&file_tmp); + break; case mode_generate: try_s((ret = cache_transfer(&file_in, &file_out)), out); @@ -191,11 +203,13 @@ static int parseargs(int argc, char **argv, struct settings * settings) } - if (s.opmode == mode_generate) { - /* we always generate in-memory for PERFORMANCE */ + if (s.opmode != mode_normal) { + /* we always generate and print out in-memory for PERFORMANCE */ s.access = cached; - } else if (s.opmode == mode_fetch) { - s.to = s.ss + s.to; + + if (s.opmode == mode_fetch) { + s.to = s.ss + s.to; + } } s.stride = s.format == list ? sizeof(struct entry_l) : sizeof(struct entry); |