libdc1394: fw_cdev_allocate_iso_resource Struct Reference

libdc1394 2.2.7

fw_cdev_allocate_iso_resource Struct Reference

`#include <dc1394/juju/firewire-cdev.h>`

## Detailed Description

struct fw_cdev_allocate_iso_resource - (De)allocate a channel or bandwidth @closure: Passed back to userspace in correponding iso resource events @channels: Isochronous channels of which one is to be (de)allocated @bandwidth: Isochronous bandwidth units to be (de)allocated @handle: 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 @channels 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 @handle. In contrast, FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE allocates iso resources for the duration of a bus generation.

@channels 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.

@bandwidth is expressed in bandwidth allocation units, i.e. the time to send one quadlet of data (payload or header data) at speed S1600.

The documentation for this struct was generated from the following file:

- dc1394/juju/firewire-cdev.h