| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |  | 
| Stefan Richter | f9edc4f | 2006-09-14 22:06:48 +0200 | [diff] [blame] | 30 | struct list_head req_pending;	/* protected by reqlists_lock */ | 
|  | 31 | struct list_head req_complete;	/* protected by reqlists_lock */ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 32 | spinlock_t reqlists_lock; | 
| Stefan Richter | 45289bf | 2006-07-03 12:02:33 -0400 | [diff] [blame] | 33 | wait_queue_head_t wait_complete; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 34 |  | 
| Stefan Richter | f9edc4f | 2006-09-14 22:06:48 +0200 | [diff] [blame] | 35 | struct list_head addr_list;	/* protected by host_info_lock */ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 36 |  | 
|  | 37 | u8 __user *fcp_buffer; | 
|  | 38 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 39 | u8 notification; /* (busreset-notification) RAW1394_NOTIFY_OFF/ON */ | 
|  | 40 |  | 
|  | 41 | /* new rawiso API */ | 
|  | 42 | enum raw1394_iso_state iso_state; | 
|  | 43 | struct hpsb_iso *iso_handle; | 
|  | 44 |  | 
|  | 45 | /* User space's CSR1212 dynamic ConfigROM directories */ | 
|  | 46 | struct csr1212_keyval *csr1212_dirs[RAW1394_MAX_USER_CSR_DIRS]; | 
|  | 47 |  | 
|  | 48 | /* Legacy ConfigROM update flag */ | 
|  | 49 | u8 cfgrom_upd; | 
|  | 50 | }; | 
|  | 51 |  | 
|  | 52 | struct arm_addr { | 
|  | 53 | struct list_head addr_list; /* file_info list */ | 
|  | 54 | u64    start, end; | 
|  | 55 | u64    arm_tag; | 
|  | 56 | u8     access_rights; | 
|  | 57 | u8     notification_options; | 
|  | 58 | u8     client_transactions; | 
|  | 59 | u64    recvb; | 
|  | 60 | u16    rec_length; | 
| Stefan Richter | f9edc4f | 2006-09-14 22:06:48 +0200 | [diff] [blame] | 61 | u8     *addr_space_buffer; /* accessed by read/write/lock requests */ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 62 | }; | 
|  | 63 |  | 
|  | 64 | struct pending_request { | 
|  | 65 | struct list_head list; | 
|  | 66 | struct file_info *file_info; | 
|  | 67 | struct hpsb_packet *packet; | 
|  | 68 | struct iso_block_store *ibs; | 
|  | 69 | quadlet_t *data; | 
|  | 70 | int free_data; | 
|  | 71 | struct raw1394_request req; | 
|  | 72 | }; | 
|  | 73 |  | 
|  | 74 | struct host_info { | 
|  | 75 | struct list_head list; | 
|  | 76 | struct hpsb_host *host; | 
| Stefan Richter | f9edc4f | 2006-09-14 22:06:48 +0200 | [diff] [blame] | 77 | struct list_head file_info_list;  /* protected by host_info_lock */ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 78 | }; | 
|  | 79 |  | 
|  | 80 | #endif  /* IEEE1394_RAW1394_PRIVATE_H */ |