// -*- C++ -*- (c) 2016 Jan Mrázek <email@honzamrazek.cz> #include <cstdarg> #include <dios.h> #include <sys/monitor.h> #include <dios/core/syscall.hpp> #include <dios/kernel.hpp> namespace __sc { void register_monitor( __dios::Context& ctx, int *, void *, va_list vl ) { typedef __dios::Monitor * pMonitor; auto *m = va_arg( vl, pMonitor ); m->next = nullptr; if ( !ctx.monitors ) { ctx.monitors = m; return; } auto *last = ctx.monitors; while ( last->next ) last = last->next; last->next = m; } } namespace __sc_passthru { void register_monitor( __dios::Context& ctx, int *err, void *ret, va_list vl ) { __sc::register_monitor(ctx, err, ret , vl); } }