|
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
} |
|
|
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) |
|
os_result dxd::usb_device::configuration |
( |
unsigned char | configuration | ) |
|
|
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.
os_result dxd::usb_stream_device::ioctl |
( |
unsigned int | ioctl, |
|
|
const void * | in, |
|
|
size_t | size_in, |
|
|
void * | out, |
|
|
size_t | size_out, |
|
|
size_t & | size ) |
|
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
/
- Todo
- clean way of switching SR of device or endpoint, /when streams are opened or closed
checks clock domain validity,
prevent samplerate setting when streaming
setup stream DMA to be used with the new samplerate
- dx::usb::descriptor - obtain generic USB device descriptor
- in: none,
- out: dx::usb::device_descriptor
- dx::usb::string - obtain generic USB device string
- in: (char) string index,
- out: unsigned short[] unicode string from device
- dx::usb::configuration - select/obtain USB configuration
- in: optional (unsigned char) configuration,
- out: optional (unsigned char) configuration,
- 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 from dxd::device.