Changeset d17cf8c in mainline for uspace/app/hbench/hbench.h


Ignore:
Timestamp:
2019-01-21T13:39:37Z (5 years ago)
Author:
Vojtech Horky <vojtech.horky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
94d52d5
Parents:
e7f9a09
Message:

hbench: remove global state

Move benchmark parameters into a benchmark environment structure that is
passed to each benchmark.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/hbench/hbench.h

    re7f9a09 rd17cf8c  
    3737#define HBENCH_H_
    3838
     39#include <adt/hash_table.h>
    3940#include <errno.h>
    4041#include <stdarg.h>
     
    5859        size_t error_buffer_size;
    5960} bench_run_t;
     61
     62/** Benchmark environment configuration.
     63 *
     64 * Use proper access functions when modifying data inside this structure.
     65 */
     66typedef struct {
     67        hash_table_t parameters;
     68} bench_env_t;
     69
     70typedef bool (*benchmark_entry_t)(bench_env_t *, bench_run_t *, uint64_t);
     71typedef bool (*benchmark_helper_t)(bench_env_t *, bench_run_t *);
     72
     73typedef struct {
     74        const char *name;
     75        const char *desc;
     76        benchmark_entry_t entry;
     77        benchmark_helper_t setup;
     78        benchmark_helper_t teardown;
     79} benchmark_t;
    6080
    6181static inline void bench_run_init(bench_run_t *run, char *error_buffer,
     
    87107}
    88108
    89 typedef bool (*benchmark_entry_t)(bench_run_t *, uint64_t);
    90 typedef bool (*benchmark_helper_t)(bench_run_t *);
    91 
    92 typedef struct {
    93         const char *name;
    94         const char *desc;
    95         benchmark_entry_t entry;
    96         benchmark_helper_t setup;
    97         benchmark_helper_t teardown;
    98 } benchmark_t;
    99 
    100109extern benchmark_t *benchmarks[];
    101110extern size_t benchmark_count;
     
    105114extern void csv_report_close(void);
    106115
    107 extern errno_t bench_param_init(void);
    108 extern errno_t bench_param_set(const char *, const char *);
    109 extern const char *bench_param_get(const char *, const char *);
    110 extern void bench_param_cleanup(void);
     116extern errno_t bench_env_init(bench_env_t *);
     117extern errno_t bench_env_param_set(bench_env_t *, const char *, const char *);
     118extern const char *bench_env_param_get(bench_env_t *, const char *, const char *);
     119extern void bench_env_cleanup(bench_env_t *);
    111120
    112121/* Put your benchmark descriptors here (and also to benchlist.c). */
Note: See TracChangeset for help on using the changeset viewer.