#line 103 "/home/ubuntu/felix/src/packages/svc.fdoc"
  open class Svc
  {
    type svc_yield_req_t = "::flx::rtl::svc_t";
    type svc_general_req_t = "::flx::rtl::svc_general_req_t";
    type svc_sio_req_t = "::flx::rtl::svc_sio_req_t";
    type svc_fthread_req_t = "::flx::rtl::svc_fthread_req_t";
    type driver_request_base = "struct ::flx::async::flx_driver_request_base*";
  
    fun svc_yield            : 1 -> svc_yield_req_t = "::flx::rtl::svc_yield";
    fun svc_general          : driver_request_base-> svc_general_req_t = "::flx::rtl::svc_general_req_t (::flx::rtl::svc_general,$1)";
    fun svc_spawn_process    : fthread -> svc_fthread_req_t = "::flx::rtl::svc_fthread_req_t (::flx::rtl::svc_spawn_process,$1)";
    fun svc_spawn_pthread    : fthread -> svc_fthread_req_t = "::flx::rtl::svc_fthread_req_t (::flx::rtl::svc_spawn_pthread,$1)";
    fun svc_spawn_fthread    : fthread -> svc_fthread_req_t = "::flx::rtl::svc_fthread_req_t (::flx::rtl::svc_spawn_fthread,$1)";
    fun svc_schedule_fthread : fthread -> svc_fthread_req_t = "::flx::rtl::svc_fthread_req_t (::flx::rtl::svc_schedule_fthread,$1)";
    fun svc_sread            : _schannel * &address -> svc_sio_req_t = "::flx::rtl::svc_sio_req_t (::flx::rtl::svc_sread,$1,$2)";
    fun svc_swrite           : _schannel * &address -> svc_sio_req_t = "::flx::rtl::svc_sio_req_t (::flx::rtl::svc_swrite,$1,$2)";
    fun svc_multi_swrite     : _schannel * &address -> svc_sio_req_t = "::flx::rtl::svc_sio_req_t (::flx::rtl::svc_multi_swrite,$1,$2)";
    fun svc_kill             : fthread -> svc_fthread_req_t = "::flx::rtl::svc_fthread_req_t (::flx::rtl::svc_kill,$1)";
  
    proc svc(var svc_req:svc_yield_req_t) { _svc svc_req; }
    proc svc(var svc_req:svc_general_req_t) { _svc svc_req; }
    proc svc(var svc_req:svc_fthread_req_t) { _svc svc_req; }
    proc svc(var svc_req:svc_sio_req_t) { _svc svc_req; }
  }