#define TCODE_READ_QUADLET_RESPONSE 6
#define TCODE_READ_BLOCK_RESPONSE 7
#define TCODE_CYCLE_START 8
-#define TCODE_LOCK_REQUEST 9
-#define TCODE_STREAM_DATA 10
-#define TCODE_LOCK_RESPONSE 11
+#define TCODE_LOCK_REQUEST 9
+#define TCODE_STREAM_DATA 10
+#define TCODE_LOCK_RESPONSE 11
+
+#define TCODE_LOCK_MASK_SWAP 0x11
+#define TCODE_LOCK_COMPARE_SWAP 0x12
+#define TCODE_LOCK_FETCH_ADD 0x13
+#define TCODE_LOCK_LITTLE_ADD 0x14
+#define TCODE_LOCK_BOUNDED_ADD 0x15
+#define TCODE_LOCK_WRAP_ADD 0x16
+#define TCODE_LOCK_VENDOR_DEPENDENT 0x17
#define RCODE_COMPLETE 0x0
-#define RCODE_CONFLICT_ERROR 0x4
-#define RCODE_DATA_ERROR 0x5
-#define RCODE_TYPE_ERROR 0x6
-#define RCODE_ADDRESS_ERROR 0x7
+#define RCODE_CONFLICT_ERROR 0x4
+#define RCODE_DATA_ERROR 0x5
+#define RCODE_TYPE_ERROR 0x6
+#define RCODE_ADDRESS_ERROR 0x7
#define SCODE_100 0x0
#define SCODE_200 0x1
#define FW_CDEV_IOC_SEND_RESPONSE _IO('#', 0x03)
#define FW_CDEV_IOC_CREATE_ISO_CONTEXT _IO('#', 0x04)
#define FW_CDEV_IOC_QUEUE_ISO _IO('#', 0x05)
-#define FW_CDEV_IOC_SEND_ISO _IO('#', 0x06)
+#define FW_CDEV_IOC_START_ISO _IO('#', 0x06)
struct fw_cdev_get_config_rom {
__u32 length;
__u32 length;
};
+#define FW_CDEV_ISO_CONTEXT_TRANSMIT 0
+#define FW_CDEV_ISO_CONTEXT_RECEIVE 1
+
struct fw_cdev_create_iso_context {
- __u32 buffer_size;
+ __u32 type;
+ __u32 header_size;
+ __u32 handle;
};
struct fw_cdev_iso_packet {
- __u16 payload_length; /* Length of indirect payload. */
+ __u16 payload_length; /* Length of indirect payload. */
__u32 interrupt : 1; /* Generate interrupt on this packet */
__u32 skip : 1; /* Set to not send packet at all. */
__u32 tag : 2;
__u32 sy : 4;
__u32 header_length : 8; /* Length of immediate header. */
- __u32 header[0];
+ __u32 header[0];
};
struct fw_cdev_queue_iso {
__u64 data;
};
-struct fw_cdev_send_iso {
+struct fw_cdev_start_iso {
__u32 channel;
__u32 speed;
__s32 cycle;