dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::proxy Namespace Reference

OS proxy interface class. More...

Namespaces

namespace  stream
 stream interface

Classes

class  device
 OS proxy device driver interface class. More...
class  driver
class  promoted
 a value its driver serves as an IOCTL, mirrored: asked on its first access, a wish sent and the driver's answer committed - the driver is the authority -, and read back on every change the driver signals (the device's broadcast) - a kernel driver's through its proxy device, a service's through its connection (dx::service::connection) More...

Typedefs

template<typename type_t>
using enable_if_ptr= std::enable_if<std::is_pointer_v<type_t>, type_t>::type
template<typename type_t>
using enable_if_scalar= std::enable_if<std::is_scalar_v<type_t> && !std::is_pointer_v<type_t>, type_t>::type
typedef dx::event<kernel> event
 the event a DriverKit/IOKit driver signals in this client: the async reference of the IOCTL that registered it, kept by the driver as that call's completion
template<typename type_t>
using hide_if_ptr= std::enable_if<!std::is_pointer_v<type_t>, type_t>::type
 OS proxy device interface class.
template<typename type_t>
using hide_if_scalar_or_ptr = std::enable_if<!(std::is_scalar_v<type_t> || std::is_pointer_v<type_t>), type_t>::type

Detailed Description

OS proxy interface class.

Typedef Documentation

◆ enable_if_ptr

template<typename type_t>
using dx::proxy::enable_if_ptr= std::enable_if<std::is_pointer_v<type_t>, type_t>::type

◆ enable_if_scalar

template<typename type_t>
using dx::proxy::enable_if_scalar= std::enable_if<std::is_scalar_v<type_t> && !std::is_pointer_v<type_t>, type_t>::type

◆ event

the event a DriverKit/IOKit driver signals in this client: the async reference of the IOCTL that registered it, kept by the driver as that call's completion

the event a kernel driver signals in this client: a named event whose handle the payload carries and the driver references

◆ hide_if_ptr

template<typename type_t>
using dx::proxy::hide_if_ptr= std::enable_if<!std::is_pointer_v<type_t>, type_t>::type

OS proxy device interface class.

This is the OS proxy device interface class. This class is used for a platform independent way of accessing kernel/driverkit devices. The device class uses the driver interface helper class to construct the device object and to bind the device to the driver identified by the io_service.

example:

try() { // guard the block
// choose a driver
// enumerate devices
std::cout<< driver.size()<< " device(s) found:"<< std::endl;
// go thru all devices; you have to lock the driver if this multi-threaded
for (auto device: driver){
// return an int32_t from an IOCTL served by the driver
int32_t my_data= device.ioctl<int32_t>(kMyIoctl);
}
} cd_catchall()
Definition dx_driver.h:82
OS proxy device driver interface class.
Definition macOS/proxy/dx_proxy_device.h:145
size_t ioctl(uint32_t ioctl, const tx_t &tx, rx_t &rx) const
Definition macOS/proxy/dx_proxy_device.h:329
Definition macOS/proxy/dx_proxy_driver.h:56
which devices a bus takes: any of its dictionaries whose every verb the device states alike,...
Definition dx_match.h:72
int int32_t
Definition wdm/dxd_platform.h:116
Exceptions
Incase of an error returned by the underlaying API the device class throws a dx::exception.

◆ hide_if_scalar_or_ptr

template<typename type_t>
using dx::proxy::hide_if_scalar_or_ptr= std::enable_if<!(std::is_scalar_v<type_t> || std::is_pointer_v<type_t>), type_t>::type