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 struct mutex state_mutex
;
26 enum { opened
, initialized
, connected
} state
;
27 unsigned int protocol_version
;
29 struct hpsb_host
*host
;
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
;
36 struct list_head addr_list
; /* protected by host_info_lock */
38 u8 __user
*fcp_buffer
;
40 u8 notification
; /* (busreset-notification) RAW1394_NOTIFY_OFF/ON */
43 enum raw1394_iso_state iso_state
;
44 struct hpsb_iso
*iso_handle
;
46 /* User space's CSR1212 dynamic ConfigROM directories */
47 struct csr1212_keyval
*csr1212_dirs
[RAW1394_MAX_USER_CSR_DIRS
];
49 /* Legacy ConfigROM update flag */
54 struct list_head addr_list
; /* file_info list */
58 u8 notification_options
;
59 u8 client_transactions
;
62 u8
*addr_space_buffer
; /* accessed by read/write/lock requests */
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
;
72 struct raw1394_request req
;
76 struct list_head list
;
77 struct hpsb_host
*host
;
78 struct list_head file_info_list
; /* protected by host_info_lock */
81 #endif /* IEEE1394_RAW1394_PRIVATE_H */