| /* | |
| * This file is auto-generated. Modifications will be lost. | |
| * | |
| * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ | |
| * for more information. | |
| */ | |
| #ifndef _LINUX_FIREWIRE_CDEV_H | |
| #define _LINUX_FIREWIRE_CDEV_H | |
| #include <linux/ioctl.h> | |
| #include <linux/types.h> | |
| #include <linux/firewire-constants.h> | |
| #define FW_CDEV_EVENT_BUS_RESET 0x00 | |
| #define FW_CDEV_EVENT_RESPONSE 0x01 | |
| #define FW_CDEV_EVENT_REQUEST 0x02 | |
| #define FW_CDEV_EVENT_ISO_INTERRUPT 0x03 | |
| #define FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED 0x04 | |
| #define FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED 0x05 | |
| #define FW_CDEV_EVENT_REQUEST2 0x06 | |
| #define FW_CDEV_EVENT_PHY_PACKET_SENT 0x07 | |
| #define FW_CDEV_EVENT_PHY_PACKET_RECEIVED 0x08 | |
| #define FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL 0x09 | |
| #define FW_CDEV_EVENT_REQUEST3 0x0a | |
| #define FW_CDEV_EVENT_RESPONSE2 0x0b | |
| #define FW_CDEV_EVENT_PHY_PACKET_SENT2 0x0c | |
| #define FW_CDEV_EVENT_PHY_PACKET_RECEIVED2 0x0d | |
| struct fw_cdev_event_common { | |
| __u64 closure; | |
| __u32 type; | |
| }; | |
| 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 { | |
| __u64 closure; | |
| __u32 type; | |
| __u32 rcode; | |
| __u32 length; | |
| __u32 data[]; | |
| }; | |
| struct fw_cdev_event_response2 { | |
| __u64 closure; | |
| __u32 type; | |
| __u32 rcode; | |
| __u32 length; | |
| __u32 request_tstamp; | |
| __u32 response_tstamp; | |
| __u32 padding; | |
| __u32 data[]; | |
| }; | |
| struct fw_cdev_event_request { | |
| __u64 closure; | |
| __u32 type; | |
| __u32 tcode; | |
| __u64 offset; | |
| __u32 handle; | |
| __u32 length; | |
| __u32 data[]; | |
| }; | |
| struct fw_cdev_event_request2 { | |
| __u64 closure; | |
| __u32 type; | |
| __u32 tcode; | |
| __u64 offset; | |
| __u32 source_node_id; | |
| __u32 destination_node_id; | |
| __u32 card; | |
| __u32 generation; | |
| __u32 handle; | |
| __u32 length; | |
| __u32 data[]; | |
| }; | |
| struct fw_cdev_event_request3 { | |
| __u64 closure; | |
| __u32 type; | |
| __u32 tcode; | |
| __u64 offset; | |
| __u32 source_node_id; | |
| __u32 destination_node_id; | |
| __u32 card; | |
| __u32 generation; | |
| __u32 handle; | |
| __u32 length; | |
| __u32 tstamp; | |
| __u32 padding; | |
| __u32 data[]; | |
| }; | |
| struct fw_cdev_event_iso_interrupt { | |
| __u64 closure; | |
| __u32 type; | |
| __u32 cycle; | |
| __u32 header_length; | |
| __u32 header[]; | |
| }; | |
| struct fw_cdev_event_iso_interrupt_mc { | |
| __u64 closure; | |
| __u32 type; | |
| __u32 completed; | |
| }; | |
| struct fw_cdev_event_iso_resource { | |
| __u64 closure; | |
| __u32 type; | |
| __u32 handle; | |
| __s32 channel; | |
| __s32 bandwidth; | |
| }; | |
| struct fw_cdev_event_phy_packet { | |
| __u64 closure; | |
| __u32 type; | |
| __u32 rcode; | |
| __u32 length; | |
| __u32 data[]; | |
| }; | |
| struct fw_cdev_event_phy_packet2 { | |
| __u64 closure; | |
| __u32 type; | |
| __u32 rcode; | |
| __u32 length; | |
| __u32 tstamp; | |
| __u32 data[]; | |
| }; | |
| union fw_cdev_event { | |
| struct fw_cdev_event_common common; | |
| struct fw_cdev_event_bus_reset bus_reset; | |
| struct fw_cdev_event_response response; | |
| struct fw_cdev_event_request request; | |
| struct fw_cdev_event_request2 request2; | |
| struct fw_cdev_event_iso_interrupt iso_interrupt; | |
| struct fw_cdev_event_iso_interrupt_mc iso_interrupt_mc; | |
| struct fw_cdev_event_iso_resource iso_resource; | |
| struct fw_cdev_event_phy_packet phy_packet; | |
| struct fw_cdev_event_request3 request3; | |
| struct fw_cdev_event_response2 response2; | |
| struct fw_cdev_event_phy_packet2 phy_packet2; | |
| }; | |
| #define FW_CDEV_IOC_GET_INFO _IOWR('#', 0x00, struct fw_cdev_get_info) | |
| #define FW_CDEV_IOC_SEND_REQUEST _IOW('#', 0x01, struct fw_cdev_send_request) | |
| #define FW_CDEV_IOC_ALLOCATE _IOWR('#', 0x02, struct fw_cdev_allocate) | |
| #define FW_CDEV_IOC_DEALLOCATE _IOW('#', 0x03, struct fw_cdev_deallocate) | |
| #define FW_CDEV_IOC_SEND_RESPONSE _IOW('#', 0x04, struct fw_cdev_send_response) | |
| #define FW_CDEV_IOC_INITIATE_BUS_RESET _IOW('#', 0x05, struct fw_cdev_initiate_bus_reset) | |
| #define FW_CDEV_IOC_ADD_DESCRIPTOR _IOWR('#', 0x06, struct fw_cdev_add_descriptor) | |
| #define FW_CDEV_IOC_REMOVE_DESCRIPTOR _IOW('#', 0x07, struct fw_cdev_remove_descriptor) | |
| #define FW_CDEV_IOC_CREATE_ISO_CONTEXT _IOWR('#', 0x08, struct fw_cdev_create_iso_context) | |
| #define FW_CDEV_IOC_QUEUE_ISO _IOWR('#', 0x09, struct fw_cdev_queue_iso) | |
| #define FW_CDEV_IOC_START_ISO _IOW('#', 0x0a, struct fw_cdev_start_iso) | |
| #define FW_CDEV_IOC_STOP_ISO _IOW('#', 0x0b, struct fw_cdev_stop_iso) | |
| #define FW_CDEV_IOC_GET_CYCLE_TIMER _IOR('#', 0x0c, struct fw_cdev_get_cycle_timer) | |
| #define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE _IOWR('#', 0x0d, struct fw_cdev_allocate_iso_resource) | |
| #define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE _IOW('#', 0x0e, struct fw_cdev_deallocate) | |
| #define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x0f, struct fw_cdev_allocate_iso_resource) | |
| #define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x10, struct fw_cdev_allocate_iso_resource) | |
| #define FW_CDEV_IOC_GET_SPEED _IO('#', 0x11) | |
| #define FW_CDEV_IOC_SEND_BROADCAST_REQUEST _IOW('#', 0x12, struct fw_cdev_send_request) | |
| #define FW_CDEV_IOC_SEND_STREAM_PACKET _IOW('#', 0x13, struct fw_cdev_send_stream_packet) | |
| #define FW_CDEV_IOC_GET_CYCLE_TIMER2 _IOWR('#', 0x14, struct fw_cdev_get_cycle_timer2) | |
| #define FW_CDEV_IOC_SEND_PHY_PACKET _IOWR('#', 0x15, struct fw_cdev_send_phy_packet) | |
| #define FW_CDEV_IOC_RECEIVE_PHY_PACKETS _IOW('#', 0x16, struct fw_cdev_receive_phy_packets) | |
| #define FW_CDEV_IOC_SET_ISO_CHANNELS _IOW('#', 0x17, struct fw_cdev_set_iso_channels) | |
| #define FW_CDEV_IOC_FLUSH_ISO _IOW('#', 0x18, struct fw_cdev_flush_iso) | |
| struct fw_cdev_get_info { | |
| __u32 version; | |
| __u32 rom_length; | |
| __u64 rom; | |
| __u64 bus_reset; | |
| __u64 bus_reset_closure; | |
| __u32 card; | |
| }; | |
| struct fw_cdev_send_request { | |
| __u32 tcode; | |
| __u32 length; | |
| __u64 offset; | |
| __u64 closure; | |
| __u64 data; | |
| __u32 generation; | |
| }; | |
| struct fw_cdev_send_response { | |
| __u32 rcode; | |
| __u32 length; | |
| __u64 data; | |
| __u32 handle; | |
| }; | |
| struct fw_cdev_allocate { | |
| __u64 offset; | |
| __u64 closure; | |
| __u32 length; | |
| __u32 handle; | |
| __u64 region_end; | |
| }; | |
| struct fw_cdev_deallocate { | |
| __u32 handle; | |
| }; | |
| #define FW_CDEV_LONG_RESET 0 | |
| #define FW_CDEV_SHORT_RESET 1 | |
| struct fw_cdev_initiate_bus_reset { | |
| __u32 type; | |
| }; | |
| struct fw_cdev_add_descriptor { | |
| __u32 immediate; | |
| __u32 key; | |
| __u64 data; | |
| __u32 length; | |
| __u32 handle; | |
| }; | |
| struct fw_cdev_remove_descriptor { | |
| __u32 handle; | |
| }; | |
| #define FW_CDEV_ISO_CONTEXT_TRANSMIT 0 | |
| #define FW_CDEV_ISO_CONTEXT_RECEIVE 1 | |
| #define FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL 2 | |
| struct fw_cdev_create_iso_context { | |
| __u32 type; | |
| __u32 header_size; | |
| __u32 channel; | |
| __u32 speed; | |
| __u64 closure; | |
| __u32 handle; | |
| }; | |
| struct fw_cdev_set_iso_channels { | |
| __u64 channels; | |
| __u32 handle; | |
| }; | |
| #define FW_CDEV_ISO_PAYLOAD_LENGTH(v) (v) | |
| #define FW_CDEV_ISO_INTERRUPT (1 << 16) | |
| #define FW_CDEV_ISO_SKIP (1 << 17) | |
| #define FW_CDEV_ISO_SYNC (1 << 17) | |
| #define FW_CDEV_ISO_TAG(v) ((v) << 18) | |
| #define FW_CDEV_ISO_SY(v) ((v) << 20) | |
| #define FW_CDEV_ISO_HEADER_LENGTH(v) ((v) << 24) | |
| struct fw_cdev_iso_packet { | |
| __u32 control; | |
| __u32 header[]; | |
| }; | |
| struct fw_cdev_queue_iso { | |
| __u64 packets; | |
| __u64 data; | |
| __u32 size; | |
| __u32 handle; | |
| }; | |
| #define FW_CDEV_ISO_CONTEXT_MATCH_TAG0 1 | |
| #define FW_CDEV_ISO_CONTEXT_MATCH_TAG1 2 | |
| #define FW_CDEV_ISO_CONTEXT_MATCH_TAG2 4 | |
| #define FW_CDEV_ISO_CONTEXT_MATCH_TAG3 8 | |
| #define FW_CDEV_ISO_CONTEXT_MATCH_ALL_TAGS 15 | |
| struct fw_cdev_start_iso { | |
| __s32 cycle; | |
| __u32 sync; | |
| __u32 tags; | |
| __u32 handle; | |
| }; | |
| struct fw_cdev_stop_iso { | |
| __u32 handle; | |
| }; | |
| struct fw_cdev_flush_iso { | |
| __u32 handle; | |
| }; | |
| struct fw_cdev_get_cycle_timer { | |
| __u64 local_time; | |
| __u32 cycle_timer; | |
| }; | |
| struct fw_cdev_get_cycle_timer2 { | |
| __s64 tv_sec; | |
| __s32 tv_nsec; | |
| __s32 clk_id; | |
| __u32 cycle_timer; | |
| }; | |
| struct fw_cdev_allocate_iso_resource { | |
| __u64 closure; | |
| __u64 channels; | |
| __u32 bandwidth; | |
| __u32 handle; | |
| }; | |
| struct fw_cdev_send_stream_packet { | |
| __u32 length; | |
| __u32 tag; | |
| __u32 channel; | |
| __u32 sy; | |
| __u64 closure; | |
| __u64 data; | |
| __u32 generation; | |
| __u32 speed; | |
| }; | |
| struct fw_cdev_send_phy_packet { | |
| __u64 closure; | |
| __u32 data[2]; | |
| __u32 generation; | |
| }; | |
| struct fw_cdev_receive_phy_packets { | |
| __u64 closure; | |
| }; | |
| #define FW_CDEV_VERSION 3 | |
| #endif |