dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx_service_message.h File Reference
#include "dx_common.h"
#include <cstring>
#include <type_traits>
#include <vector>
Include dependency graph for dx_service_message.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  dx::service::clock
 dx::ioctl::service::clock's data: the client's clock event by its name, and the client's iosize More...
struct  dx::service::create<desc_t>
 dx::ioctl::service::create's data: the device's id and its desc More...
struct  dx::service::message
 the head of every message on a service connection, its data behind it: a request, its reply or the service's broadcast More...
class  dx::service::peer
 a client's connection as the service sees it - the service's counterpart of a kernel driver's client: what the client asks lands in ioctl(), its connection's end destroys it More...

Namespaces

namespace  dx
 dynax driver framework interface namespace
namespace  dx::ioctl
 IOCTLs namespace.
namespace  dx::ioctl::service
 a service's IOCTLs beside dx::ioctl's own (log, listen): what a client asks the service's driver and devices
namespace  dx::service
 service interface namespace

Enumerations

enum  dx::ioctl::service::ioctl : uint32_t {
  dx::ioctl::service::devices = 'dvcs' , dx::ioctl::service::create = 'vcrt' , dx::ioctl::service::destroy = 'vdst' , dx::ioctl::service::echo = 'echo' ,
  dx::ioctl::service::desc = 'desc' , dx::ioctl::service::attach = 'atch' , dx::ioctl::service::detach = 'dtch' , dx::ioctl::service::string = 'strn' ,
  dx::ioctl::service::clock = 'clck' , dx::ioctl::service::start = 'strt' , dx::ioctl::service::stop = 'stop' , dx::ioctl::service::samplerate = 'rate' ,
  dx::ioctl::service::clocksource = 'csrc' , dx::ioctl::service::configuration = 'cnfg' , dx::ioctl::service::sync_strategy = 'stgy' , dx::ioctl::service::safety_offset_out = 'scto' ,
  dx::ioctl::service::safety_offset_in = 'scti'
}

Functions

template<typename value_t>
value_t dx::service::argument(const void* in, size_t size_in)
 the IOCTL's data as the type it is to carry: exactly its size
template<typename promoted_t, typename value_t= typename promoted_t::value_t>
size_t dx::service::exchange(promoted_t& promoted, const void* in, size_t size_in, void* out, size_t size_out)
 a value served as an IOCTL, as a kernel driver serves its promoted: in the wish, out the value - either may be absent