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

the driver: one per driver binary, holding and answering what is driver-wide More...

#include <dxd_driver.h>

Inheritance diagram for dxd::driver:
Collaboration diagram for dxd::driver:

Classes

class  client
 an open of the driver itself, created by driver::client_create(): what it does not answer itself goes to the driver More...

Public Member Functions

virtual client* client_create()
 a client for an open of the driver itself: none where the platform gives the driver no access point of its own
virtual os_result ioctl(unsigned int ioctl, const void* in, size_t size_in, void* out, size_t size_out, size_t& size)
 driver-wide control I/O: the version, and the log mask - the input sets it, the output reads it back
virtual ~driver()= default

Public Attributes

dx::log log{}
 log mask: every module at error until dx::ioctl::log sets it
bool managed{}
 dxd::power binds the OS's power management to the devices' sleep() and wake()
os_result status{not_initialized}
uint32_t version{DX_VERSION32}
 what dx::ioctl::version answers

Detailed Description

the driver: one per driver binary, holding and answering what is driver-wide

Every platform's driver form derives from it - WDM's platform::driver and the PortCls adapter on it, KMDF's driver, the DriverKit and IOKit shells' driver - and every device of the driver reaches it (dxd::device::driver). Its own client answers an open of the driver itself, where the platform offers one.

Constructor & Destructor Documentation

◆ ~driver()

virtual dxd::driver::~driver()
virtualdefault

Reimplemented in dxd::platform::driver.

Member Function Documentation

◆ client_create()

virtual client* dxd::driver::client_create()
inlinevirtual

a client for an open of the driver itself: none where the platform gives the driver no access point of its own

Reimplemented in dxd::platform::driver.

◆ ioctl()

virtual os_result dxd::driver::ioctl(unsigned int ioctl, const void* in, size_t size_in, void* out, size_t size_out, size_t& size)
inlinevirtual

driver-wide control I/O: the version, and the log mask - the input sets it, the output reads it back

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ log

dx::log dxd::driver::log{}

log mask: every module at error until dx::ioctl::log sets it

◆ managed

bool dxd::driver::managed{}

dxd::power binds the OS's power management to the devices' sleep() and wake()

◆ status

os_result dxd::driver::status{not_initialized}

◆ version

uint32_t dxd::driver::version{DX_VERSION32}

what dx::ioctl::version answers


The documentation for this class was generated from the following file: