1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _LINUX_FIREWIRE_CDEV_H 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _LINUX_FIREWIRE_CDEV_H 21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/ioctl.h> 22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h> 23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/firewire-constants.h> 24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_EVENT_BUS_RESET 0x00 25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_EVENT_RESPONSE 0x01 26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_EVENT_REQUEST 0x02 27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_EVENT_ISO_INTERRUPT 0x03 28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED 0x04 29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED 0x05 30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_EVENT_REQUEST2 0x06 31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_EVENT_PHY_PACKET_SENT 0x07 32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_EVENT_PHY_PACKET_RECEIVED 0x08 33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL 0x09 34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_event_common { 35d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 36d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_event_bus_reset { 39d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 40d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 41d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 node_id; 42d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 local_node_id; 43d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 bm_node_id; 44d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 irm_node_id; 45d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 root_node_id; 46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 generation; 47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_event_response { 49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 51d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 rcode; 52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 length; 53d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 data[0]; 54655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_event_request { 56d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 57d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 58d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 tcode; 59d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 offset; 60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 length; 62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 data[0]; 63655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_event_request2 { 65d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 tcode; 68d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 offset; 69d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 source_node_id; 70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 destination_node_id; 71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 card; 72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 generation; 73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 length; 75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 data[0]; 76655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 77655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_event_iso_interrupt { 78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 79d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 cycle; 81d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 header_length; 82d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 header[0]; 83655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 84655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_event_iso_interrupt_mc { 85d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 86d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 87d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 completed; 88655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 89655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_event_iso_resource { 90d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 91d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 92d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 93d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 channel; 94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 bandwidth; 95655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 96655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_event_phy_packet { 97d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 98d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 99d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 rcode; 100d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 length; 101d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 data[0]; 102655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 103655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengunion fw_cdev_event { 104d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct fw_cdev_event_common common; 105d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct fw_cdev_event_bus_reset bus_reset; 106d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct fw_cdev_event_response response; 107d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct fw_cdev_event_request request; 108d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct fw_cdev_event_request2 request2; 109d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct fw_cdev_event_iso_interrupt iso_interrupt; 110d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct fw_cdev_event_iso_interrupt_mc iso_interrupt_mc; 111d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct fw_cdev_event_iso_resource iso_resource; 112d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct fw_cdev_event_phy_packet phy_packet; 113655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 114655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_GET_INFO _IOWR('#', 0x00, struct fw_cdev_get_info) 115655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_SEND_REQUEST _IOW('#', 0x01, struct fw_cdev_send_request) 116655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_ALLOCATE _IOWR('#', 0x02, struct fw_cdev_allocate) 117655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_DEALLOCATE _IOW('#', 0x03, struct fw_cdev_deallocate) 118655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_SEND_RESPONSE _IOW('#', 0x04, struct fw_cdev_send_response) 119655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_INITIATE_BUS_RESET _IOW('#', 0x05, struct fw_cdev_initiate_bus_reset) 120655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_ADD_DESCRIPTOR _IOWR('#', 0x06, struct fw_cdev_add_descriptor) 121655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_REMOVE_DESCRIPTOR _IOW('#', 0x07, struct fw_cdev_remove_descriptor) 122655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_CREATE_ISO_CONTEXT _IOWR('#', 0x08, struct fw_cdev_create_iso_context) 123655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_QUEUE_ISO _IOWR('#', 0x09, struct fw_cdev_queue_iso) 124655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_START_ISO _IOW('#', 0x0a, struct fw_cdev_start_iso) 125655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_STOP_ISO _IOW('#', 0x0b, struct fw_cdev_stop_iso) 126655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_GET_CYCLE_TIMER _IOR('#', 0x0c, struct fw_cdev_get_cycle_timer) 127655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE _IOWR('#', 0x0d, struct fw_cdev_allocate_iso_resource) 128655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE _IOW('#', 0x0e, struct fw_cdev_deallocate) 129655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x0f, struct fw_cdev_allocate_iso_resource) 130655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x10, struct fw_cdev_allocate_iso_resource) 131655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_GET_SPEED _IO('#', 0x11) 132655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_SEND_BROADCAST_REQUEST _IOW('#', 0x12, struct fw_cdev_send_request) 133655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_SEND_STREAM_PACKET _IOW('#', 0x13, struct fw_cdev_send_stream_packet) 134655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_GET_CYCLE_TIMER2 _IOWR('#', 0x14, struct fw_cdev_get_cycle_timer2) 135655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_SEND_PHY_PACKET _IOWR('#', 0x15, struct fw_cdev_send_phy_packet) 136655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_RECEIVE_PHY_PACKETS _IOW('#', 0x16, struct fw_cdev_receive_phy_packets) 137655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_SET_ISO_CHANNELS _IOW('#', 0x17, struct fw_cdev_set_iso_channels) 138655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_IOC_FLUSH_ISO _IOW('#', 0x18, struct fw_cdev_flush_iso) 139655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_get_info { 140d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 version; 141d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 rom_length; 142d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 rom; 143d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 bus_reset; 144d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 bus_reset_closure; 145d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 card; 146655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 147655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_send_request { 148d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 tcode; 149d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 length; 150d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 offset; 151d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 152d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 data; 153d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 generation; 154655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 155655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_send_response { 156d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 rcode; 157d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 length; 158d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 data; 159d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 160655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 161655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_allocate { 162d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 offset; 163d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 164d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 length; 165d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 166d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 region_end; 167655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 168655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_deallocate { 169d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 170655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 171655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_LONG_RESET 0 172655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_SHORT_RESET 1 173655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_initiate_bus_reset { 174d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 175655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 176655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_add_descriptor { 177d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 immediate; 178d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 key; 179d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 data; 180d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 length; 181d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 182655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 183655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_remove_descriptor { 184d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 185655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 186655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_CONTEXT_TRANSMIT 0 187655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_CONTEXT_RECEIVE 1 188655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL 2 189655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_create_iso_context { 190d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 191d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 header_size; 192d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 channel; 193d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 speed; 194d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 195d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 196655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 197655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_set_iso_channels { 198d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 channels; 199d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 200655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 201655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_PAYLOAD_LENGTH(v) (v) 202655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_INTERRUPT (1 << 16) 203655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_SKIP (1 << 17) 204655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_SYNC (1 << 17) 205655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_TAG(v) ((v) << 18) 206655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_SY(v) ((v) << 20) 207655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_HEADER_LENGTH(v) ((v) << 24) 208655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_iso_packet { 209d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 control; 210d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 header[0]; 211655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 212655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_queue_iso { 213d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 packets; 214d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 data; 215d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 size; 216d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 217655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 218655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_CONTEXT_MATCH_TAG0 1 219655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_CONTEXT_MATCH_TAG1 2 220655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_CONTEXT_MATCH_TAG2 4 221655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_CONTEXT_MATCH_TAG3 8 222655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_ISO_CONTEXT_MATCH_ALL_TAGS 15 223655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_start_iso { 224d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 cycle; 225d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 sync; 226d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 tags; 227d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 228655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 229655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_stop_iso { 230d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 231655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 232655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_flush_iso { 233d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 234655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 235655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_get_cycle_timer { 236d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 local_time; 237d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 cycle_timer; 238655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 239655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_get_cycle_timer2 { 240d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s64 tv_sec; 241d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 tv_nsec; 242d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __s32 clk_id; 243d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 cycle_timer; 244655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 245655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_allocate_iso_resource { 246d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 247d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 channels; 248d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 bandwidth; 249d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 handle; 250655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 251655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_send_stream_packet { 252d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 length; 253d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 tag; 254d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 channel; 255d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 sy; 256d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 257d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 data; 258d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 generation; 259d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 speed; 260655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 261655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_send_phy_packet { 262d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 263d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 data[2]; 264d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 generation; 265655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 266655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct fw_cdev_receive_phy_packets { 267d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 closure; 268655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 269655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FW_CDEV_VERSION 3 270655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 271