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

Subversion Repositories test_project

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

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
#ifndef IEEE1394_RAW1394_H
2
#define IEEE1394_RAW1394_H
3
 
4
/* header for the raw1394 API that is exported to user-space */
5
 
6
#define RAW1394_KERNELAPI_VERSION 4
7
 
8
/* state: opened */
9
#define RAW1394_REQ_INITIALIZE    1
10
 
11
/* state: initialized */
12
#define RAW1394_REQ_LIST_CARDS    2
13
#define RAW1394_REQ_SET_CARD      3
14
 
15
/* state: connected */
16
#define RAW1394_REQ_ASYNC_READ      100
17
#define RAW1394_REQ_ASYNC_WRITE     101
18
#define RAW1394_REQ_LOCK            102
19
#define RAW1394_REQ_LOCK64          103
20
#define RAW1394_REQ_ISO_SEND        104 /* removed ABI, now a no-op */
21
#define RAW1394_REQ_ASYNC_SEND      105
22
#define RAW1394_REQ_ASYNC_STREAM    106
23
 
24
#define RAW1394_REQ_ISO_LISTEN      200 /* removed ABI, now a no-op */
25
#define RAW1394_REQ_FCP_LISTEN      201
26
#define RAW1394_REQ_RESET_BUS       202
27
#define RAW1394_REQ_GET_ROM         203
28
#define RAW1394_REQ_UPDATE_ROM      204
29
#define RAW1394_REQ_ECHO            205
30
#define RAW1394_REQ_MODIFY_ROM      206
31
 
32
#define RAW1394_REQ_ARM_REGISTER    300
33
#define RAW1394_REQ_ARM_UNREGISTER  301
34
#define RAW1394_REQ_ARM_SET_BUF     302
35
#define RAW1394_REQ_ARM_GET_BUF     303
36
 
37
#define RAW1394_REQ_RESET_NOTIFY    400
38
 
39
#define RAW1394_REQ_PHYPACKET       500
40
 
41
/* kernel to user */
42
#define RAW1394_REQ_BUS_RESET        10000
43
#define RAW1394_REQ_ISO_RECEIVE      10001
44
#define RAW1394_REQ_FCP_REQUEST      10002
45
#define RAW1394_REQ_ARM              10003
46
#define RAW1394_REQ_RAWISO_ACTIVITY  10004
47
 
48
/* error codes */
49
#define RAW1394_ERROR_NONE        0
50
#define RAW1394_ERROR_COMPAT      (-1001)
51
#define RAW1394_ERROR_STATE_ORDER (-1002)
52
#define RAW1394_ERROR_GENERATION  (-1003)
53
#define RAW1394_ERROR_INVALID_ARG (-1004)
54
#define RAW1394_ERROR_MEMFAULT    (-1005)
55
#define RAW1394_ERROR_ALREADY     (-1006)
56
 
57
#define RAW1394_ERROR_EXCESSIVE   (-1020)
58
#define RAW1394_ERROR_UNTIDY_LEN  (-1021)
59
 
60
#define RAW1394_ERROR_SEND_ERROR  (-1100)
61
#define RAW1394_ERROR_ABORTED     (-1101)
62
#define RAW1394_ERROR_TIMEOUT     (-1102)
63
 
64
/* arm_codes */
65
#define ARM_READ   1
66
#define ARM_WRITE  2
67
#define ARM_LOCK   4
68
 
69
#define RAW1394_LONG_RESET  0
70
#define RAW1394_SHORT_RESET 1
71
 
72
/* busresetnotify ... */
73
#define RAW1394_NOTIFY_OFF 0
74
#define RAW1394_NOTIFY_ON  1
75
 
76
#include <asm/types.h>
77
 
78
struct raw1394_request {
79
        __u32 type;
80
        __s32 error;
81
        __u32 misc;
82
 
83
        __u32 generation;
84
        __u32 length;
85
 
86
        __u64 address;
87
 
88
        __u64 tag;
89
 
90
        __u64 sendb;
91
        __u64 recvb;
92
};
93
 
94
struct raw1394_khost_list {
95
        __u32 nodes;
96
        __u8 name[32];
97
};
98
 
99
typedef struct arm_request {
100
        __u16           destination_nodeid;
101
        __u16           source_nodeid;
102
        __u64           destination_offset;
103
        __u8            tlabel;
104
        __u8            tcode;
105
        __u8            extended_transaction_code;
106
        __u32           generation;
107
        __u16           buffer_length;
108
        __u8            __user *buffer;
109
} *arm_request_t;
110
 
111
typedef struct arm_response {
112
        __s32           response_code;
113
        __u16           buffer_length;
114
        __u8            __user *buffer;
115
} *arm_response_t;
116
 
117
typedef struct arm_request_response {
118
        struct arm_request  __user *request;
119
        struct arm_response __user *response;
120
} *arm_request_response_t;
121
 
122
/* rawiso API */
123
#include "ieee1394-ioctl.h"
124
 
125
/* per-packet metadata embedded in the ringbuffer */
126
/* must be identical to hpsb_iso_packet_info in iso.h! */
127
struct raw1394_iso_packet_info {
128
        __u32 offset;
129
        __u16 len;
130
        __u16 cycle;   /* recv only */
131
        __u8  channel; /* recv only */
132
        __u8  tag;
133
        __u8  sy;
134
};
135
 
136
/* argument for RAW1394_ISO_RECV/XMIT_PACKETS ioctls */
137
struct raw1394_iso_packets {
138
        __u32 n_packets;
139
        struct raw1394_iso_packet_info __user *infos;
140
};
141
 
142
struct raw1394_iso_config {
143
        /* size of packet data buffer, in bytes (will be rounded up to PAGE_SIZE) */
144
        __u32 data_buf_size;
145
 
146
        /* # of packets to buffer */
147
        __u32 buf_packets;
148
 
149
        /* iso channel (set to -1 for multi-channel recv) */
150
        __s32 channel;
151
 
152
        /* xmit only - iso transmission speed */
153
        __u8 speed;
154
 
155
        /* The mode of the dma when receiving iso data. Must be supported by chip */
156
        __u8 dma_mode;
157
 
158
        /* max. latency of buffer, in packets (-1 if you don't care) */
159
        __s32 irq_interval;
160
};
161
 
162
/* argument to RAW1394_ISO_XMIT/RECV_INIT and RAW1394_ISO_GET_STATUS */
163
struct raw1394_iso_status {
164
        /* current settings */
165
        struct raw1394_iso_config config;
166
 
167
        /* number of packets waiting to be filled with data (ISO transmission)
168
           or containing data received (ISO reception) */
169
        __u32 n_packets;
170
 
171
        /* approximate number of packets dropped due to overflow or
172
           underflow of the packet buffer (a value of zero guarantees
173
           that no packets have been dropped) */
174
        __u32 overflows;
175
 
176
        /* cycle number at which next packet will be transmitted;
177
           -1 if not known */
178
        __s16 xmit_cycle;
179
};
180
 
181
/* argument to RAW1394_IOC_GET_CYCLE_TIMER ioctl */
182
struct raw1394_cycle_timer {
183
        /* contents of Isochronous Cycle Timer register,
184
           as in OHCI 1.1 clause 5.13 (also with non-OHCI hosts) */
185
        __u32 cycle_timer;
186
 
187
        /* local time in microseconds since Epoch,
188
           simultaneously read with cycle timer */
189
        __u64 local_time;
190
};
191
#endif /* IEEE1394_RAW1394_H */

powered by: WebSVN 2.1.0

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