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 12struct iso_block_store { 13 atomic_t refcount; 14 size_t data_size; 15 quadlet_t data[0]; 16}; 17 18enum raw1394_iso_state { RAW1394_ISO_INACTIVE = 0, 19 RAW1394_ISO_RECV = 1, 20 RAW1394_ISO_XMIT = 2 }; 21 22struct 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 53struct 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 65struct 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 75struct 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