#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "libmicro.h"
typedef struct {
struct tm ts_tm1;
struct tm ts_tm2;
} tsd_t;
int
benchmark_init()
{
lm_tsdsize = sizeof (tsd_t);
(void) sprintf(lm_usage,
"notes: measures mktime()\n");
return (0);
}
int
benchmark_initbatch(void *tsd)
{
tsd_t *ts = (tsd_t *)tsd;
time_t clock1;
time_t clock2;
clock1 = time(NULL);
clock2 = clock1 + 1;
(void) localtime_r(&clock1, &ts->ts_tm1);
(void) localtime_r(&clock2, &ts->ts_tm2);
return (0);
}
int
benchmark(void *tsd, result_t *res)
{
int i;
tsd_t *ts = (tsd_t *)tsd;
struct tm t1, t2;
for (i = 0; i < lm_optB; i += 10) {
t1 = ts->ts_tm1;
t2 = ts->ts_tm2;
(void) mktime(&t1);
(void) mktime(&t2);
t1 = ts->ts_tm1;
t2 = ts->ts_tm2;
(void) mktime(&t1);
(void) mktime(&t2);
t1 = ts->ts_tm1;
t2 = ts->ts_tm2;
(void) mktime(&t1);
(void) mktime(&t2);
t1 = ts->ts_tm1;
t2 = ts->ts_tm2;
(void) mktime(&t1);
(void) mktime(&t2);
t1 = ts->ts_tm1;
t2 = ts->ts_tm2;
(void) mktime(&t1);
(void) mktime(&t2);
}
res->re_count = i;
return (0);
}