source: mainline/uspace/app/hbench/doc/doxygroups.h@ 94ebebf

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 94ebebf was 94ebebf, checked in by Vojtech Horky <vojtech.horky@…>, 6 years ago

hbench: turn comments into doc-blocks

  • Property mode set to 100644
File size: 1.5 KB
Line 
1/** @addtogroup hbench hbench
2 * @brief User space benchmarks
3 * @ingroup apps
4 *
5 * @details
6 *
7 * To add a new benchmark, you need to implement the actual benchmarking
8 * code and register it.
9 *
10 * Registration is done by adding
11 * <code>extern benchmark_t bench_YOUR_NAME</code> reference to benchlist.h
12 * and by adding it to the array in benchlist.c.
13 *
14 * The actual benchmark should reside in a separate file (see malloc/malloc1.c
15 * for example) and has to (at least) declare one function (the actual
16 * benchmark) and fill-in the benchmark_t structure.
17 *
18 * Fill-in the name of the benchmark, its description and a reference to the
19 * benchmark function to the benchmark_t.
20 *
21 * The benchmarking function has to accept four arguments:
22 * @li benchmeter_t: call benchmeter_start and benchmeter_stop around the
23 * actual benchmarking code
24 * @li uint64_t: size of the workload - typically number of inner loops in
25 * your benchmark (used to self-calibrate benchmark size)
26 * @li char * and size_t giving you access to buffer for storing error message
27 * if the benchmark fails (return false from the function itself then)
28 *
29 * Typically, the structure of the function is following:
30 * @code{c}
31 * static bool runner(benchmeter_t *meter, uint64_t size,
32 * char *error, size_t error_size)
33 * {
34 * benchmeter_start(meter);
35 * for (uint64_t i = 0; i < size; i++) {
36 * // measured action
37 * }
38 * benchmeter_stop(meter);
39 *
40 * return true;
41 * }
42 * @endcode
43 */
Note: See TracBrowser for help on using the repository browser.