OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [drivers/] [ieee1394/] [raw1394-private.h] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
#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;   /* protected by reqlists_lock */
31
        struct list_head req_complete;  /* protected by reqlists_lock */
32
        spinlock_t reqlists_lock;
33
        wait_queue_head_t wait_complete;
34
 
35
        struct list_head addr_list;     /* protected by host_info_lock */
36
 
37
        u8 __user *fcp_buffer;
38
 
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;
61
        u8     *addr_space_buffer; /* accessed by read/write/lock requests */
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;
77
        struct list_head file_info_list;  /* protected by host_info_lock */
78
};
79
 
80
#endif  /* IEEE1394_RAW1394_PRIVATE_H */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.