dxd - dynax driver framework 2.1.0d73
cross platform open source driver development framework
|
#include <dxd_usb.h>
Classes | |
class | pipe |
IOKit: USB pipe class. More... | |
Public Types | |
enum | speed { low =::kUSBHostConnectionSpeedLow , full =::kUSBHostConnectionSpeedFull , high =::kUSBHostConnectionSpeedHigh , usb1 =full , usb2 =high , low =::kUSBHostConnectionSpeedLow , full =::kUSBHostConnectionSpeedFull , high =::kUSBHostConnectionSpeedHigh , usb1 =full , usb2 =high } |
enum | speed { low =::kUSBHostConnectionSpeedLow , full =::kUSBHostConnectionSpeedFull , high =::kUSBHostConnectionSpeedHigh , usb1 =full , usb2 =high , low =::kUSBHostConnectionSpeedLow , full =::kUSBHostConnectionSpeedFull , high =::kUSBHostConnectionSpeedHigh , usb1 =full , usb2 =high } |
Public Member Functions | |
os_result | clear () |
unsigned char | configuration () const |
unsigned char | configuration () const |
return available USB configurations | |
os_result | configuration (unsigned char configuration) |
os_result | configuration (unsigned char configuration) |
choose USB configuration | |
unsigned char | configurations () const |
unsigned char | configurations () const |
return current USB configuration | |
decltype(dx::usb::descriptor::device) | descriptor () const |
IOKit: request the USB device descriptor. | |
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 | |
uint64_t | frame () const |
uint64_t | frame () const |
::IOUSBHostInterface * | interface (unsigned char index, unsigned char setting=0) |
IOKit: USB interface. | |
const ::USBD_INTERFACE_INFORMATION * | interface (unsigned char index, unsigned char setting=0) |
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 () |
operator::DEVICE_OBJECT * () const | |
operator::IOUSBHostDevice * () const | |
IOKit: IOUSBDevice* implicit cast. | |
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)) | |
template<typename data_t > | |
os_result | request (const dx::usb::control &control, data_t &data) |
IOKit: synchronously sends an USB request. | |
template<typename data_t > | |
os_result | request (const dx::usb::control &control, data_t &data) |
os_result | request (const dx::usb::control &control, void *data, size_t &size) |
os_result | request (const dx::usb::control &control, void *data, size_t &size) |
os_result | set (const char *key, unsigned int value) |
speed | speed () const |
speed | speed () const |
os_result | state () const |
os_result | string (unsigned char idx, char *string, unsigned char &chars) |
os_result | string (unsigned char idx, char *string, unsigned char &chars, dx::usb::language language=dx::usb::language::standard) |
IOKit: request the USB string descriptor for the index. | |
template<typename string_t > | |
os_result | string (unsigned char idx, string_t &string) |
template<typename string_t > | |
os_result | string (unsigned char idx, string_t &string) |
usb_device (::WDFDEVICE_INIT *wdf_device_init, const ::GUID &guid) | |
WDK: USB device constructor. | |
~usb_device () | |
Protected Member Functions | |
void | close_interfaces () |
void | conclude () override |
IOKit: USB conclude. | |
void | conclude () override |
WDK: USB device de-initialization callback. | |
os_result | launch () override |
IOKit: USB launch. | |
os_result | launch () override |
WDK: USB device initialization callback. | |
os_result | open_interfaces () |
bool | start (::IOService *provider) override |
IOKit: USB start. | |
Enumerator | |
---|---|
low | |
full | |
high | |
usb1 | |
usb2 | |
low | |
full | |
high | |
usb1 | |
usb2 |
|
inline |
WDK: USB device constructor.
Registers PNP capabilities
|
inline |
|
inline |
|
inlineprotected |
|
inlineoverrideprotectedvirtual |
IOKit: USB conclude.
This method:
Reimplemented from dxd::device.
|
inlineoverrideprotectedvirtual |
WDK: USB device de-initialization callback.
Reimplemented from dxd::device.
|
inline |
|
inline |
return available USB configurations
|
inline |
|
inline |
choose USB configuration
removes interface cache
deselects current configuration on request #0
obtains the configuration descriptor,
obtains all descriptors,
enumerates interfaces in the configuration,
allocates and builds an URB for the select-configuration request,
creates interface cache
enumerates the pipes in the interface information array, which is now filled with pipe information.
|
inline |
|
inline |
return current USB configuration
|
inline |
IOKit: request the USB device descriptor.
|
inlineinherited |
apply executor functor for each child
|
inlineinherited |
apply executor functor for each user client
|
inline |
|
inline |
|
inline |
IOKit: USB interface.
Selects the USB interface
checks interface, if it fails: was it configured?
and selects the (alternate) setting
index | index of the USB interface in the USB configuration |
setting | setting # of the USB interface |
|
inline |
requests settings change,
disposes and creates new interface cache on size change,
and fills interface cache,
|
inlineinherited |
convenience ioctl accessor for direct inter-kext IOCTL
|
inlinevirtualinherited |
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.
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.
|
inlineoverrideprotectedvirtual |
IOKit: USB launch.
This method:
Reimplemented from dxd::device.
|
inlineoverrideprotectedvirtual |
WDK: USB device initialization callback.
obtain vage speed info
obtains the device descriptor,
and select USB configuration #1.
Reimplemented from dxd::device.
|
inlineinherited |
|
inlineprotected |
|
inline |
|
inline |
IOKit: IOUSBDevice* implicit cast.
|
inlineinherited |
provider property request
try if property is an OSString
or, try to get it as OSData
|
inherited |
device property request
device string property request
try if property is an OSString
get it as OSData
|
inherited |
(defined(doxygen)||defined(DXD_EXTERN))
device integer property request
|
inline |
IOKit: synchronously sends an USB request.
control | the USB request control defining the request type |
data | data to transmit or receive |
|
inline |
control | the USB request control defining the request type |
data | data to transmit or receive |
|
inline |
control | the USB request control defining the request type |
data | data to transmit or receive |
size | size of the actual transaction |
|
inline |
|
inlineinherited |
|
inline |
|
inline |
|
inlineoverrideprotected |
IOKit: USB start.
|
inline |
|
inline |
|
inline |
IOKit: request the USB string descriptor for the index.
idx | index of the string to request |
string | preallocated string buffer |
chars | number of characters returned |
|
inline |
|
inline |
(c) copyright 2009 dynamic acoustics e.U. | generated on Fri Nov 15 2024 |