#include <dxd_device.h>
|
template<class client_t = ::IOService, typename return_t = os_result, typename exec_arg_t , typename exec_t > |
return_t | each_child (exec_arg_t exec_arg, exec_t exec) |
| apply executor functor for each child
|
|
template<class client_t = ::IOUserClient, typename return_t = os_result, typename exec_arg_t , typename exec_t > |
return_t | each_client (exec_arg_t exec_arg, exec_t exec) |
| apply executor functor for each user client
|
|
template<typename tx_t , typename rx_t > |
os_result | ioctl (unsigned int ioctl, const tx_t &tx, rx_t &rx) |
| convenience ioctl accessor for direct inter-kext IOCTL
|
|
virtual os_result | ioctl (unsigned int ioctl, const void *in, size_t size_in, void *out, size_t size_out, size_t &size) |
| device IOCTL handler
|
|
os_result | notify_clients () |
|
template<typename type_t > |
os_result | property (const char *key, type_t &value) const |
| provider property request
|
|
template<typename type_t > |
os_result | query (const char *key, type_t &value) |
| device property request
|
|
template<> |
os_result | query (const char *key, unsigned int &value) |
| (defined(doxygen)||defined(DXD_EXTERN))
|
|
os_result | set (const char *key, unsigned int value) |
|
◆ each_child()
template<
class client_t = ::IOService, typename return_t = os_result, typename exec_arg_t , typename exec_t >
return_t dxd::device::each_child |
( |
exec_arg_t | exec_arg, |
|
|
exec_t | exec ) |
|
inline |
apply executor functor for each child
◆ each_client()
template<
class client_t = ::IOUserClient, typename return_t = os_result, typename exec_arg_t , typename exec_t >
return_t dxd::device::each_client |
( |
exec_arg_t | exec_arg, |
|
|
exec_t | exec ) |
|
inline |
apply executor functor for each user client
◆ ioctl() [1/2]
template<typename tx_t , typename rx_t >
os_result dxd::device::ioctl |
( |
unsigned int | ioctl, |
|
|
const tx_t & | tx, |
|
|
rx_t & | rx ) |
|
inline |
convenience ioctl accessor for direct inter-kext IOCTL
◆ ioctl() [2/2]
virtual os_result dxd::device::ioctl |
( |
unsigned int | ioctl, |
|
|
const void * | in, |
|
|
size_t | size_in, |
|
|
void * | out, |
|
|
size_t | size_out, |
|
|
size_t & | size ) |
|
inlinevirtual |
device IOCTL handler
virtual ioctl() gets called by the dynax driver framework for device IOCTL handling.
remark: this is rarely done. usually IOCTLs are handled in the user client derivate.
- Parameters
-
ioctl | IOCTL |
in | buffer pointer containing data from user mode |
size_in | size of the buffer containing data from user mode |
out | buffer pointer accepting data to be returned to user mode |
size_out | size of the buffer accepting data to be returned to user mode |
size | actual size of data to be returned to user mode |
Reimplemented in dxd::usb_stream_device.
◆ notify_clients()
◆ property()
template<typename type_t >
os_result dxd::device::property |
( |
const char * | key, |
|
|
type_t & | value ) const |
|
inline |
provider property request
try if property is an OSString
or, try to get it as OSData
◆ query() [1/2]
template<typename type_t >
os_result dxd::device::query |
( |
const char * | key, |
|
|
type_t & | value ) |
device property request
device string property request
- Todo
- move into property class
try if property is an OSString
get it as OSData
◆ query() [2/2]
template<>
os_result dxd::device::query |
( |
const char * | key, |
|
|
unsigned int & | value ) |
(defined(doxygen)||defined(DXD_EXTERN))
device integer property request
◆ set()
os_result dxd::device::set |
( |
const char * | key, |
|
|
unsigned int | value ) |
|
inline |
◆ client
The documentation for this class was generated from the following file: