Linux Kernel
3.7.1
|
#include <firewire-cdev.h>
Data Fields | |
__u64 | closure |
__u64 | channels |
__u32 | bandwidth |
__u32 | handle |
struct fw_cdev_allocate_iso_resource - (De)allocate a channel or bandwidth : Passed back to userspace in corresponding iso resource events : Isochronous channels of which one is to be (de)allocated : Isochronous bandwidth units to be (de)allocated : Handle to the allocation, written by the kernel (only valid in case of FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE ioctls)
The FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE ioctl initiates allocation of an isochronous channel and/or of isochronous bandwidth at the isochronous resource manager (IRM). Only one of the channels specified in is allocated. An FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED is sent after communication with the IRM, indicating success or failure in the event data. The kernel will automatically reallocate the resources after bus resets. Should a reallocation fail, an FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event will be sent. The kernel will also automatically deallocate the resources when the file descriptor is closed.
The FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE ioctl can be used to initiate deallocation of resources which were allocated as described above. An FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation.
The FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE ioctl is a variant of allocation without automatic re- or deallocation. An FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED event concludes this operation, indicating success or failure in its data.
The FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE ioctl works like FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE except that resources are freed instead of allocated. An FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation.
To summarize, FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE allocates iso resources for the lifetime of the fd or . In contrast, FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE allocates iso resources for the duration of a bus generation.
is a host-endian bitfield with the least significant bit representing channel 0 and the most significant bit representing channel 63: 1ULL << c for each channel c that is a candidate for (de)allocation.
is expressed in bandwidth allocation units, i.e. the time to send one quadlet of data (payload or header data) at speed S1600.
Definition at line 968 of file firewire-cdev.h.
__u32 bandwidth |
Definition at line 971 of file firewire-cdev.h.
__u64 channels |
Definition at line 970 of file firewire-cdev.h.
__u64 closure |
Definition at line 969 of file firewire-cdev.h.
Definition at line 972 of file firewire-cdev.h.