include/uapi/linux/firewire-cdev.h
Source file repositories/reference/linux-study-clean/include/uapi/linux/firewire-cdev.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/linux/firewire-cdev.h- Extension
.h- Size
- 50724 bytes
- Lines
- 1181
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/ioctl.hlinux/types.hlinux/firewire-constants.h
Detected Declarations
struct fw_cdev_event_commonstruct fw_cdev_event_bus_resetstruct fw_cdev_event_responsestruct fw_cdev_event_response2struct fw_cdev_event_requeststruct fw_cdev_event_request2struct fw_cdev_event_request3struct fw_cdev_event_iso_interruptstruct fw_cdev_event_iso_interrupt_mcstruct fw_cdev_event_iso_resourcestruct fw_cdev_event_phy_packetstruct fw_cdev_event_phy_packet2struct fw_cdev_get_infostruct fw_cdev_send_requeststruct fw_cdev_send_responsestruct fw_cdev_allocatestruct fw_cdev_deallocatestruct fw_cdev_initiate_bus_resetstruct fw_cdev_add_descriptorstruct fw_cdev_remove_descriptorstruct fw_cdev_create_iso_contextstruct fw_cdev_set_iso_channelsstruct fw_cdev_iso_packetstruct fw_cdev_queue_isostruct fw_cdev_start_isostruct fw_cdev_stop_isostruct fw_cdev_flush_isostruct fw_cdev_get_cycle_timerstruct fw_cdev_get_cycle_timer2struct fw_cdev_allocate_iso_resourcestruct fw_cdev_send_stream_packetstruct fw_cdev_send_phy_packetstruct fw_cdev_receive_phy_packets
Annotated Snippet
struct fw_cdev_event_common {
__u64 closure;
__u32 type;
};
/**
* struct fw_cdev_event_bus_reset - Sent when a bus reset occurred
* @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_GET_INFO ioctl
* @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_BUS_RESET
* @node_id: New node ID of this node
* @local_node_id: Node ID of the local node, i.e. of the controller
* @bm_node_id: Node ID of the bus manager
* @irm_node_id: Node ID of the iso resource manager
* @root_node_id: Node ID of the root node
* @generation: New bus generation
*
* This event is sent when the bus the device belongs to goes through a bus
* reset. It provides information about the new bus configuration, such as
* new node ID for this device, new root ID, and others.
*
* If @bm_node_id is 0xffff right after bus reset it can be reread by an
* %FW_CDEV_IOC_GET_INFO ioctl after bus manager selection was finished.
* Kernels with ABI version < 4 do not set @bm_node_id.
*/
struct fw_cdev_event_bus_reset {
__u64 closure;
__u32 type;
__u32 node_id;
__u32 local_node_id;
__u32 bm_node_id;
__u32 irm_node_id;
__u32 root_node_id;
__u32 generation;
};
/**
* struct fw_cdev_event_response - Sent when a response packet was received
* @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_SEND_REQUEST
* or %FW_CDEV_IOC_SEND_BROADCAST_REQUEST
* or %FW_CDEV_IOC_SEND_STREAM_PACKET ioctl
* @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_RESPONSE
* @rcode: Response code returned by the remote node
* @length: Data length, i.e. the response's payload size in bytes
* @data: Payload data, if any
*
* This event is sent instead of &fw_cdev_event_response if the kernel or the client implements
* ABI version <= 5. It has the lack of time stamp field comparing to &fw_cdev_event_response2.
*/
struct fw_cdev_event_response {
__u64 closure;
__u32 type;
__u32 rcode;
__u32 length;
__u32 data[];
};
/**
* struct fw_cdev_event_response2 - Sent when a response packet was received
* @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_SEND_REQUEST
* or %FW_CDEV_IOC_SEND_BROADCAST_REQUEST
* or %FW_CDEV_IOC_SEND_STREAM_PACKET ioctl
* @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_RESPONSE
* @rcode: Response code returned by the remote node
* @length: Data length, i.e. the response's payload size in bytes
* @request_tstamp: The time stamp of isochronous cycle at which the request was sent.
* @response_tstamp: The time stamp of isochronous cycle at which the response was sent.
* @padding: Padding to keep the size of structure as multiples of 8 in various architectures
* since 4 byte alignment is used for 8 byte of object type in System V ABI for i386
* architecture.
* @data: Payload data, if any
*
* This event is sent when the stack receives a response to an outgoing request
* sent by %FW_CDEV_IOC_SEND_REQUEST ioctl. The payload data for responses
* carrying data (read and lock responses) follows immediately and can be
* accessed through the @data field.
*
* The event is also generated after conclusions of transactions that do not
* involve response packets. This includes unified write transactions,
* broadcast write transactions, and transmission of asynchronous stream
* packets. @rcode indicates success or failure of such transmissions.
*
* The value of @request_tstamp expresses the isochronous cycle at which the request was sent to
* initiate the transaction. The value of @response_tstamp expresses the isochronous cycle at which
* the response arrived to complete the transaction. Each value is unsigned 16 bit integer
* containing three low order bits of second field and all 13 bits of cycle field in format of
* CYCLE_TIMER register.
*/
struct fw_cdev_event_response2 {
__u64 closure;
__u32 type;
Annotation
- Immediate include surface: `linux/ioctl.h`, `linux/types.h`, `linux/firewire-constants.h`.
- Detected declarations: `struct fw_cdev_event_common`, `struct fw_cdev_event_bus_reset`, `struct fw_cdev_event_response`, `struct fw_cdev_event_response2`, `struct fw_cdev_event_request`, `struct fw_cdev_event_request2`, `struct fw_cdev_event_request3`, `struct fw_cdev_event_iso_interrupt`, `struct fw_cdev_event_iso_interrupt_mc`, `struct fw_cdev_event_iso_resource`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.