1 #ifndef IEEE1394_RAW1394_PRIVATE_H
2 #define IEEE1394_RAW1394_PRIVATE_H
4 /* header for definitions that are private to the raw1394 driver
5 and not visible to user-space */
7 #define RAW1394_DEVICE_MAJOR 171
8 #define RAW1394_DEVICE_NAME "raw1394"
10 #define RAW1394_MAX_USER_CSR_DIRS 16
12 struct iso_block_store {
18 enum raw1394_iso_state { RAW1394_ISO_INACTIVE = 0,
20 RAW1394_ISO_XMIT = 2 };
23 struct list_head list;
25 enum { opened, initialized, connected } state;
26 unsigned int protocol_version;
28 struct hpsb_host *host;
30 struct list_head req_pending;
31 struct list_head req_complete;
32 struct semaphore complete_sem;
33 spinlock_t reqlists_lock;
34 wait_queue_head_t poll_wait_complete;
36 struct list_head addr_list;
38 u8 __user *fcp_buffer;
42 quadlet_t __user *iso_buffer;
43 size_t iso_buffer_length;
45 u8 notification; /* (busreset-notification) RAW1394_NOTIFY_OFF/ON */
48 enum raw1394_iso_state iso_state;
49 struct hpsb_iso *iso_handle;
51 /* User space's CSR1212 dynamic ConfigROM directories */
52 struct csr1212_keyval *csr1212_dirs[RAW1394_MAX_USER_CSR_DIRS];
54 /* Legacy ConfigROM update flag */
59 struct list_head addr_list; /* file_info list */
63 u8 notification_options;
64 u8 client_transactions;
67 u8 *addr_space_buffer; /* accessed by read/write/lock */
70 struct pending_request {
71 struct list_head list;
72 struct file_info *file_info;
73 struct hpsb_packet *packet;
74 struct iso_block_store *ibs;
77 struct raw1394_request req;
81 struct list_head list;
82 struct hpsb_host *host;
83 struct list_head file_info_list;
86 #endif /* IEEE1394_RAW1394_PRIVATE_H */