Root/
1 | #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 */ |
192 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9