linux/drivers/ieee1394/raw1394-private.h
<<
>>
Prefs
   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
  12struct iso_block_store {
  13        atomic_t refcount;
  14        size_t data_size;
  15        quadlet_t data[0];
  16};
  17
  18enum raw1394_iso_state { RAW1394_ISO_INACTIVE = 0,
  19                         RAW1394_ISO_RECV = 1,
  20                         RAW1394_ISO_XMIT = 2 };
  21
  22struct 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
  58struct 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
  70struct 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
  80struct 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 */
  87
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.