1 #ifndef IEEE1394_RAW1394_PRIVATE_H 2 #define IEEE1394_RAW1394_PRIVATE_H 3 4 /* header for definitions that are private to the raw1394 driver 5 and not visible to user-space */ 6 7 #define RAW1394_DEVICE_MAJOR 171 8 #define RAW1394_DEVICE_NAME "raw1394" 9 10 #define RAW1394_MAX_USER_CSR_DIRS 16 11 12 struct iso_block_store { 13 atomic_t refcount; 14 size_t data_size; 15 quadlet_t data[0]; 16 }; 17 18 enum raw1394_iso_state { RAW1394_ISO_INACTIVE = 0, 19 RAW1394_ISO_RECV = 1, 20 RAW1394_ISO_XMIT = 2 }; 21 22 struct file_info { 23 struct list_head list; 24 25 struct mutex state_mutex; 26 enum { opened, initialized, connected } state; 27 unsigned int protocol_version; 28 29 struct hpsb_host *host; 30 31 struct list_head req_pending; /* protected by reqlists_lock */ 32 struct list_head req_complete; /* protected by reqlists_lock */ 33 spinlock_t reqlists_lock; 34 wait_queue_head_t wait_complete; 35 36 struct list_head addr_list; /* protected by host_info_lock */ 37 38 u8 __user *fcp_buffer; 39 40 u8 notification; /* (busreset-notification) RAW1394_NOTIFY_OFF/ON */ 41 42 /* new rawiso API */ 43 enum raw1394_iso_state iso_state; 44 struct hpsb_iso *iso_handle; 45 46 /* User space's CSR1212 dynamic ConfigROM directories */ 47 struct csr1212_keyval *csr1212_dirs[RAW1394_MAX_USER_CSR_DIRS]; 48 49 /* Legacy ConfigROM update flag */ 50 u8 cfgrom_upd; 51 }; 52 53 struct arm_addr { 54 struct list_head addr_list; /* file_info list */ 55 u64 start, end; 56 u64 arm_tag; 57 u8 access_rights; 58 u8 notification_options; 59 u8 client_transactions; 60 u64 recvb; 61 u16 rec_length; 62 u8 *addr_space_buffer; /* accessed by read/write/lock requests */ 63 }; 64 65 struct pending_request { 66 struct list_head list; 67 struct file_info *file_info; 68 struct hpsb_packet *packet; 69 struct iso_block_store *ibs; 70 quadlet_t *data; 71 int free_data; 72 struct raw1394_request req; 73 }; 74 75 struct host_info { 76 struct list_head list; 77 struct hpsb_host *host; 78 struct list_head file_info_list; /* protected by host_info_lock */ 79 }; 80 81 #endif /* IEEE1394_RAW1394_PRIVATE_H */ 82