libslirp users cannot be compiled with CFI (control-flow instrumentation) because of the way timers work. libslirp passes a function pointer to the timer_new callback but the type information for the callback is missing; invoking the timer callback produces a CFI false positive.
Fix this by introducing a CFI-friendly version of the
The new callback replaces the function pointer with an enum; invoking the
callback is done with a new function