#ifndef IEEE1394_RAW1394_PRIVATE_H #define IEEE1394_RAW1394_PRIVATE_H /* header for definitions that are private to the raw1394 driver and not visible to user-space */ #define RAW1394_DEVICE_MAJOR 171 #define RAW1394_DEVICE_NAME "raw1394" #define RAW1394_MAX_USER_CSR_DIRS 16 struct iso_block_store { atomic_t refcount; size_t data_size; quadlet_t data[0]; }; enum raw1394_iso_state { RAW1394_ISO_INACTIVE = 0, RAW1394_ISO_RECV = 1, RAW1394_ISO_XMIT = 2 }; struct file_info { struct list_head list; enum { opened, initialized, connected } state; unsigned int protocol_version; struct hpsb_host *host; struct list_head req_pending; struct list_head req_complete; struct semaphore complete_sem; spinlock_t reqlists_lock; wait_queue_head_t poll_wait_complete; struct list_head addr_list; u8 __user *fcp_buffer; /* old ISO API */ u64 listen_channels; quadlet_t __user *iso_buffer; size_t iso_buffer_length; u8 notification; /* (busreset-notification) RAW1394_NOTIFY_OFF/ON */ /* new rawiso API */ enum raw1394_iso_state iso_state; struct hpsb_iso *iso_handle; /* User space's CSR1212 dynamic ConfigROM directories */ struct csr1212_keyval *csr1212_dirs[RAW1394_MAX_USER_CSR_DIRS]; /* Legacy ConfigROM update flag */ u8 cfgrom_upd; }; struct arm_addr { struct list_head addr_list; /* file_info list */ u64 start, end; u64 arm_tag; u8 access_rights; u8 notification_options; u8 client_transactions; u64 recvb; u16 rec_length; u8 *addr_space_buffer; /* accessed by read/write/lock */ }; struct pending_request { struct list_head list; struct file_info *file_info; struct hpsb_packet *packet; struct iso_block_store *ibs; quadlet_t *data; int free_data; struct raw1394_request req; }; struct host_info { struct list_head list; struct hpsb_host *host; struct list_head file_info_list; }; #endif /* IEEE1394_RAW1394_PRIVATE_H */