Lines Matching +full:per +full:- +full:context
4 * Copyright (C) 2005-2007 Kristian Hoegsberg <krh@bitplanet.net>
31 #include <linux/firewire-constants.h>
50 * struct fw_cdev_event_common - Common part of all fw_cdev_event_* types
67 * struct fw_cdev_event_bus_reset - Sent when a bus reset occurred
97 * struct fw_cdev_event_response - Sent when a response packet was received
125 * struct fw_cdev_event_request - Old version of &fw_cdev_event_request2
129 * @offset: The offset into the 48-bit per-node address space
130 * @handle: Reference to the kernel-side pending request
149 * struct fw_cdev_event_request2 - Sent on incoming request to an address region
153 * @offset: The offset into the 48-bit per-node address space
158 * @handle: Reference to the kernel-side pending request
172 * firewire-core specific %TCODE_LOCK_MASK_SWAP...%TCODE_LOCK_VENDOR_DEPENDENT,
182 * non-local bus ID part or in case of a broadcast write request. Note, a
184 * broadcast write request; the kernel will then release the kernel-side pending
190 * release the kernel-side pending request, though another response won't be
212 * struct fw_cdev_event_iso_interrupt - Sent when an iso packet was completed
227 * Isochronous transmit events (context type %FW_CDEV_ISO_CONTEXT_TRANSMIT):
234 * Isochronous receive events (context type %FW_CDEV_ISO_CONTEXT_RECEIVE):
237 * packet are returned in the @header field. The amount of header data per
238 * packet is as specified at iso context creation by
272 * struct fw_cdev_event_iso_interrupt_mc - An iso buffer chunk was completed
278 * This event is sent in multichannel contexts (context type
284 * The buffer is continuously filled with the following data, per packet:
285 * - the 1394 iso packet header as described at &fw_cdev_event_iso_interrupt,
287 * - packet payload (as many bytes as specified in the data_length field of
289 * - 0...3 padding bytes as needed to align the following trailer quadlet,
290 * - trailer quadlet, containing the reception timestamp as described at
293 * Hence the per-packet size is data_length (rounded up to a multiple of 4) + 8.
299 * for this condition, assemble a broken-up packet from its parts, and not to
300 * re-queue any buffer chunks in which as yet unread packet parts reside.
309 * struct fw_cdev_event_iso_resource - Iso resources were allocated or freed
338 * struct fw_cdev_event_phy_packet - A PHY packet was transmitted or received
362 * union fw_cdev_event - Convenience union of fw_cdev_event_* types
437 * 1 (2.6.22) - initial version
438 * (2.6.24) - added %FW_CDEV_IOC_GET_CYCLE_TIMER
439 * 2 (2.6.30) - changed &fw_cdev_event_iso_interrupt.header if
441 * - added %FW_CDEV_IOC_*_ISO_RESOURCE*,
444 * (2.6.32) - added time stamp to xmit &fw_cdev_event_iso_interrupt
445 * (2.6.33) - IR has always packet-per-buffer semantics now, not one of
446 * dual-buffer or packet-per-buffer depending on hardware
447 * - shared use and auto-response for FCP registers
448 * 3 (2.6.34) - made &fw_cdev_get_cycle_timer reliable
449 * - added %FW_CDEV_IOC_GET_CYCLE_TIMER2
450 * 4 (2.6.36) - added %FW_CDEV_EVENT_REQUEST2, %FW_CDEV_EVENT_PHY_PACKET_*,
452 * - implemented &fw_cdev_event_bus_reset.bm_node_id
453 * - added %FW_CDEV_IOC_SEND_PHY_PACKET, _RECEIVE_PHY_PACKETS
454 * - added %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL,
457 * 5 (3.4) - send %FW_CDEV_EVENT_ISO_INTERRUPT events when needed to
459 * - added %FW_CDEV_IOC_FLUSH_ISO
463 * struct fw_cdev_get_info - General purpose information ioctl
469 * @rom_length: If @rom is non-zero, up to @rom_length bytes of Configuration
473 * @rom: If non-zero, address of a buffer to be filled by a copy of the
475 * @bus_reset: If non-zero, address of a buffer to be filled by a
497 * struct fw_cdev_send_request - Send an asynchronous request packet
500 * @offset: 48-bit offset at destination node
521 * struct fw_cdev_send_response - Send an asynchronous response packet
530 * send a reply using this ioctl. The event has a handle to the kernel-side
541 * struct fw_cdev_allocate - Allocate a CSR in an address range
548 * Allocate an address range in the 48-bit address space on the local node
586 * struct fw_cdev_deallocate - Free a CSR address range or isochronous resource
598 * struct fw_cdev_initiate_bus_reset - Initiate a bus reset
603 * introduced in 1394a-2000.
608 * between subsequent bus resets as per IEEE 1394 bus management specification.
615 * struct fw_cdev_add_descriptor - Add contents to the local node's config ROM
616 * @immediate: If non-zero, immediate key to insert before pointer
633 * @immediate, @key, and @data array elements are CPU-endian quadlets.
636 * the kernel-side object to be used for later removal of the descriptor block
652 * struct fw_cdev_remove_descriptor - Remove contents from the Configuration ROM
669 * struct fw_cdev_create_iso_context - Create a context for isochronous I/O
672 * @header_size: Header size to strip in single-channel reception
673 * @channel: Channel to bind to in single-channel reception or transmission
677 * @handle: Handle to context, written back by kernel
679 * Prior to sending or receiving isochronous I/O, a context must be created.
680 * The context records information about the transmit or receive configuration
681 * and typically maps to an underlying hardware resource. A context is set up
689 * and must be a multiple of 4. It is ignored in other context types.
691 * @speed is ignored in receive context types.
693 * If a context was successfully created, the kernel writes back a handle to the
694 * context, which must be passed in for subsequent operations on that context.
697 * No more than one iso context can be created per fd.
699 * create on a card at a time is a hardware limit, typically 4 or 8 contexts per
700 * direction, and of them at most one multichannel receive context.
712 * struct fw_cdev_set_iso_channels - Select channels in multichannel reception
714 * @handle: Handle of the mutichannel receive context
718 * The ioctl fails with errno %EBUSY if there is already another receive context
736 * struct fw_cdev_iso_packet - Isochronous packet
741 * @header: Header and payload in case of a transmit context.
747 * Context type %FW_CDEV_ISO_CONTEXT_TRANSMIT:
755 * fields are specified by IEEE 1394a and IEC 61883-1.
763 * Context type %FW_CDEV_ISO_CONTEXT_RECEIVE:
765 * @control.HEADER_LENGTH must be a multiple of the context's header_size.
766 * If the HEADER_LENGTH is larger than the context's header_size, multiple
771 * If the @control.SYNC flag is set, the context drops all packets until a
788 * Context type %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL:
799 * for single-channel reception.
810 * struct fw_cdev_queue_iso - Queue isochronous packets for I/O
814 * @handle: Isochronous context handle
827 * In case of a multichannel receive context, @data must be quadlet-aligned
844 * struct fw_cdev_start_iso - Start an isochronous transmission or reception
852 * @handle: Isochronous context handle within which to transmit or receive
862 * struct fw_cdev_stop_iso - Stop an isochronous transmission or reception
863 * @handle: Handle of isochronous context to stop
870 * struct fw_cdev_flush_iso - flush completed iso packets
871 * @handle: handle of isochronous context to flush
889 * struct fw_cdev_get_cycle_timer - read cycle timer register
896 * In version 1 and 2 of the ABI, this ioctl returned unreliable (non-
905 * struct fw_cdev_get_cycle_timer2 - read cycle timer register
907 * @tv_nsec: system time, sub-seconds part in nanoseconds
921 * per IEEE 1394 or Isochronous Cycle Timer register per OHCI-1394.
931 * struct fw_cdev_allocate_iso_resource - (De)allocate a channel or bandwidth
953 * without automatic re- or deallocation.
967 * @channels is a host-endian bitfield with the least significant bit
982 * struct fw_cdev_send_stream_packet - send an asynchronous stream packet
1009 * struct fw_cdev_send_phy_packet - send a PHY packet
1010 * @closure: Passed back to userspace in the PHY-packet-sent event
1031 * struct fw_cdev_receive_phy_packets - start reception of PHY packets