2 * Copyright (c) 2017 Mohamed Aslan <maslan@sce.carleton.ca>
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20 #include <sys/event.h>
28 atimer(int ev_queue
, int id
, unsigned int t
)
32 EV_SET(&kev
, id
, EVFILT_TIMER
, EV_ADD
| EV_ENABLE
| EV_ONESHOT
, 0, t
, NULL
);
33 if ((kevent(ev_queue
, &kev
, 1, NULL
, 0, NULL
)) == -1)
38 * periodic timer with period p
41 timer(int ev_queue
, int id
, unsigned int p
)
45 EV_SET(&kev
, id
, EVFILT_TIMER
, EV_ADD
| EV_ENABLE
, 0, p
, NULL
);
46 if ((kevent(ev_queue
, &kev
, 1, NULL
, 0, NULL
)) == -1)
51 log_init(struct log
*lg
)
53 if (lg
->type
== LOG_CSV
) {
54 if ((lg
->fd
= fopen(lg
->param
.filename
, "w")) == NULL
)
55 errx(1, "error creating log file.");
60 log_free(struct log
*lg
)
62 if (lg
->type
== LOG_CSV
)
67 f_log(struct log
*lg
, const char *fmt
, ...)
72 if (lg
->type
== LOG_CSV
) {
73 if (vfprintf(lg
->fd
, fmt
, ap
) < -1)