2 * Copyright (C) 2018-2024 Free Software Foundation, Inc.
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <https://www.gnu.org/licenses/>. */
23 main (int argc
, char *argv
[])
27 fprintf (stderr
, "Usage: %s SIZE REPETITIONS\n", argv
[0]);
31 size_t size
= atol (argv
[1]);
32 int repeat
= atoi (argv
[2]);
34 char *memblock
= (char *) malloc (size
);
37 fprintf (stderr
, "%s: memory exhausted\n", argv
[0]);
41 /* Fill the memory block. */
44 for (i
= 0; i
< size
; i
++)
46 (unsigned char) (((i
* (i
-1) * (i
-5)) >> 6) + (i
% 499) + (i
% 101));
49 struct timings_state ts
;
53 for (count
= 0; count
< repeat
; count
++)
56 FUNC (memblock
, size
, digest
);