#ifndef _FBSD_COMPAT_SYS_CALLOUT_H_
#define _FBSD_COMPAT_SYS_CALLOUT_H_
#include <sys/haiku-module.h>
#include <sys/_callout.h>
#define CALLOUT_MPSAFE 0x0008
#define CALLOUT_RETURNUNLOCKED 0x0010
void callout_init(struct callout *c, int mpsafe);
void callout_init_mtx(struct callout *c, struct mtx *mutex, int flags);
int callout_schedule(struct callout *c, int _ticks);
int callout_reset(struct callout *c, int _ticks, void (*func)(void *), void *arg);
int callout_pending(struct callout *c);
int callout_active(struct callout *c);
#define callout_reset_on(c, to_ticks, fn, arg, cpu) \
callout_reset(c, to_ticks, fn, arg)
#define callout_drain(c) _callout_stop_safe(c, 1)
#define callout_stop(c) _callout_stop_safe(c, 0)
int _callout_stop_safe(struct callout *c, int safe);
#endif