|
dxd - dynax driver framework 2.6.0d170
cross platform open source driver development framework
|
generic USB device More...
#include <dxd_usb_stream.h>
Inheritance diagram for dxd::usb_stream_device:
Collaboration diagram for dxd::usb_stream_device:Classes | |
| class | clock |
| class | stream |
| USB stream. 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 | |
| os_result | notify_clients () |
| operator const::IOLock * () const | |
| operator::DEVICE_OBJECT * () const | |
| operator::IOLock * () | |
| 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) |
Public Attributes | |
| dxd::usb_stream_device::clock | clock |
| os_result | status =not_initialized |
| scoped< stream > | streams [0x20] {} |
Protected Member Functions | |
| void | close_interfaces () |
| void | conclude () override |
| IOKit: USB conclude. | |
| void | conclude () override |
| WDK: USB device de-initialization callback. | |
| os_result | ioctl (unsigned int ioctl, const void *in, size_t size_in, void *out, size_t size_out, size_t &size) override |
| usb IOCTL handler | |
| os_result | launch () override |
| IOKit: USB launch. | |
| os_result | launch () override |
| WDK: USB device initialization callback. | |
| os_result | open (const dx::stream::open< dx::usb::endpoint > &open, dxd::stream::opened< dx::circular > *opened, size_t &size) |
| os_result | open_interfaces () |
| os_result | sleep () override |
| device PNP sleep virtual method | |
| bool | start (::IOService *provider) override |
| IOKit: USB start. | |
| os_result | wake () override |
| device PNP wake virtual method | |
generic USB device
|
inherited |
| Enumerator | |
|---|---|
| low | |
| full | |
| high | |
| usb1 | |
| usb2 | |
| low | |
| full | |
| high | |
| usb1 | |
| usb2 | |
|
inlineinherited |
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprotectedinherited |
Here is the caller graph for this function:
|
inlineoverrideprotectedvirtualinherited |
IOKit: USB conclude.
This method:
Reimplemented from dxd::device.
Here is the call graph for this function:
|
inlineoverrideprotectedvirtualinherited |
WDK: USB device de-initialization callback.
Reimplemented from dxd::device.
Here is the call graph for this function:
|
inlineinherited |
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineinherited |
return available USB configurations
|
inlineinherited |
Here is the call graph for this function:
|
inlineinherited |
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.
Here is the call graph for this function:
|
inlineinherited |
Here is the call graph for this function:
|
inlineinherited |
return current USB configuration
|
inlineinherited |
|
inlineinherited |
apply executor functor for each child
|
inlineinherited |
apply executor functor for each user client
|
inlineinherited |
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineinherited |
|
inlineinherited |
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 |
|
inlineinherited |
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
Here is the call graph for this function:
|
inlineoverrideprotectedvirtual |
usb IOCTL handler
virtual ioctl() gets called by the dynax driver framework for usb device IOCTL handling.
implemented handler
checks endpoint address,
obtains stream index from endpoint address
checks if stream is opened;
detaches mapping from stream
checks endpoint address,
checks stream user mode mapping,
checks endpoint address,
checks stream user mode mapping,
- <i>dx::ioctl::stream::clock::samplerate</i>
- in: clock domain ID (ignored since the supported devices only
have one clock domain so far)
+ optional (unsigned int) samplerate,
- out:
optional (unsigned int) samplerate, or
optional dx::iobridge<unsigned int> samplerate map
/
checks clock domain validity,
prevent samplerate setting when streaming
setup stream DMA to be used with the new samplerate
| 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 from dxd::device.
Here is the call graph for this function:
|
inlineoverrideprotectedvirtualinherited |
IOKit: USB launch.
This method:
Reimplemented from dxd::device.
Here is the call graph for this function:
|
inlineoverrideprotectedvirtualinherited |
WDK: USB device initialization callback.
obtain vage speed info
obtains the device descriptor,
and select USB configuration #1.
Reimplemented from dxd::device.
Here is the call graph for this function:
|
inlineinherited |
|
inlineprotected |
checks endpoint address,
obtains stream index from endpoint address
opens device receiver endpoint and checks its status,
registers this client, and returns
Here is the call graph for this function:
|
inlineprotectedinherited |
Here is the caller graph for this function:
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
IOKit: IOUSBDevice* implicit cast.
|
inlineinherited |
provider property request
try if property is an OSString
or, try to get it as OSData
Here is the caller graph for this function:
|
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
|
inlineinherited |
IOKit: synchronously sends an USB request.
| control | the USB request control defining the request type |
| data | data to transmit or receive |
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineinherited |
| control | the USB request control defining the request type |
| data | data to transmit or receive |
Here is the call graph for this function:
|
inlineinherited |
| control | the USB request control defining the request type |
| data | data to transmit or receive |
| size | size of the actual transaction |
Here is the call graph for this function:
|
inlineinherited |
Here is the call graph for this function:
|
inlineinherited |
|
inlineoverrideprotectedvirtual |
device PNP sleep virtual method
virtual sleep() gets called by the dynax driver framework for device PNP sleep handling.
stops all endpoints
Reimplemented from dxd::device.
Here is the call graph for this function:
|
inlineinherited |
|
inlineinherited |
|
inlineoverrideprotectedinherited |
IOKit: USB start.
Here is the caller graph for this function:
|
inlineinherited |
Here is the caller graph for this function:
|
inlineinherited |
|
inlineinherited |
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 |
Here is the call graph for this function:
|
inlineinherited |
|
inlineinherited |
|
inlineoverrideprotectedvirtual |
device PNP wake virtual method
virtual wake() gets called by the dynax driver framework for device PNP wake handling.
starts all endpoints
Reimplemented from dxd::device.
Here is the call graph for this function:| dxd::usb_stream_device::clock dxd::usb_stream_device::clock |
|
inherited |
| (c) copyright 2009 dynamic acoustics e.U. | generated on Fri Oct 31 2025 |