diff options
Diffstat (limited to 'drivers/ieee1394/raw1394-private.h')
-rw-r--r-- | drivers/ieee1394/raw1394-private.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/drivers/ieee1394/raw1394-private.h b/drivers/ieee1394/raw1394-private.h new file mode 100644 index 000000000000..c93587be9cab --- /dev/null +++ b/drivers/ieee1394/raw1394-private.h | |||
@@ -0,0 +1,86 @@ | |||
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 | enum { opened, initialized, connected } state; | ||
26 | unsigned int protocol_version; | ||
27 | |||
28 | struct hpsb_host *host; | ||
29 | |||
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; | ||
35 | |||
36 | struct list_head addr_list; | ||
37 | |||
38 | u8 __user *fcp_buffer; | ||
39 | |||
40 | /* old ISO API */ | ||
41 | u64 listen_channels; | ||
42 | quadlet_t __user *iso_buffer; | ||
43 | size_t iso_buffer_length; | ||
44 | |||
45 | u8 notification; /* (busreset-notification) RAW1394_NOTIFY_OFF/ON */ | ||
46 | |||
47 | /* new rawiso API */ | ||
48 | enum raw1394_iso_state iso_state; | ||
49 | struct hpsb_iso *iso_handle; | ||
50 | |||
51 | /* User space's CSR1212 dynamic ConfigROM directories */ | ||
52 | struct csr1212_keyval *csr1212_dirs[RAW1394_MAX_USER_CSR_DIRS]; | ||
53 | |||
54 | /* Legacy ConfigROM update flag */ | ||
55 | u8 cfgrom_upd; | ||
56 | }; | ||
57 | |||
58 | struct arm_addr { | ||
59 | struct list_head addr_list; /* file_info list */ | ||
60 | u64 start, end; | ||
61 | u64 arm_tag; | ||
62 | u8 access_rights; | ||
63 | u8 notification_options; | ||
64 | u8 client_transactions; | ||
65 | u64 recvb; | ||
66 | u16 rec_length; | ||
67 | u8 *addr_space_buffer; /* accessed by read/write/lock */ | ||
68 | }; | ||
69 | |||
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; | ||
75 | quadlet_t *data; | ||
76 | int free_data; | ||
77 | struct raw1394_request req; | ||
78 | }; | ||
79 | |||
80 | struct host_info { | ||
81 | struct list_head list; | ||
82 | struct hpsb_host *host; | ||
83 | struct list_head file_info_list; | ||
84 | }; | ||
85 | |||
86 | #endif /* IEEE1394_RAW1394_PRIVATE_H */ | ||