ref: 2aec1f8a09ae0bc9fb269d84ef53defebc47eede
dir: /sys/src/9/port/dtracytimer.c/
#include "u.h" #include "../port/lib.h" #include "mem.h" #include "dat.h" #include "fns.h" #include "../port/error.h" #include <dtracy.h> static DTProbe *timerprobe; static void dtracytimer(void *) { DTTrigInfo info; memset(&info, 0, sizeof(info)); for(;;){ tsleep(&up->sleep, return0, nil, 1000); dtptrigger(timerprobe, m->machno, &info); } } static void timerprovide(DTProvider *prov) { timerprobe = dtpnew("timer::1s", prov, nil); } static int timerenable(DTProbe *) { static int gotkproc; if(!gotkproc){ kproc("dtracytimer", dtracytimer, nil); gotkproc=1; } return 0; } static void timerdisable(DTProbe *) { } DTProvider dtracytimerprov = { .name = "timer", .provide = timerprovide, .enable = timerenable, .disable = timerdisable, };