Rev 4163 | Rev 4261 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4163 | Rev 4192 | ||
|---|---|---|---|
| Line 33... | Line 33... | ||
| 33 | */ |
33 | */ |
| 34 | 34 | ||
| 35 | #ifndef __NET_NETIF_DP8390_H__ |
35 | #ifndef __NET_NETIF_DP8390_H__ |
| 36 | #define __NET_NETIF_DP8390_H__ |
36 | #define __NET_NETIF_DP8390_H__ |
| 37 | 37 | ||
| - | 38 | #include "../../structures/packet/packet.h" |
|
| - | 39 | ||
| 38 | #include "dp8390_port.h" |
40 | #include "dp8390_port.h" |
| 39 | #include "local.h" |
41 | #include "local.h" |
| 40 | 42 | ||
| 41 | /* |
43 | /* |
| 42 | dp8390.h |
44 | dp8390.h |
| Line 214... | Line 216... | ||
| 214 | struct dpeth; |
216 | struct dpeth; |
| 215 | struct iovec_dat; |
217 | struct iovec_dat; |
| 216 | //struct iovec_dat_s; |
218 | //struct iovec_dat_s; |
| 217 | _PROTOTYPE( typedef void (*dp_initf_t), (struct dpeth *dep) ); |
219 | _PROTOTYPE( typedef void (*dp_initf_t), (struct dpeth *dep) ); |
| 218 | _PROTOTYPE( typedef void (*dp_stopf_t), (struct dpeth *dep) ); |
220 | _PROTOTYPE( typedef void (*dp_stopf_t), (struct dpeth *dep) ); |
| 219 | //_PROTOTYPE( typedef void (*dp_user2nicf_t), (struct dpeth *dep, |
221 | _PROTOTYPE( typedef void (*dp_user2nicf_t), (struct dpeth *dep, |
| 220 | // struct iovec_dat *iovp, vir_bytes offset, |
222 | struct iovec_dat *iovp, vir_bytes offset, |
| 221 | // int nic_addr, vir_bytes count) ); |
223 | int nic_addr, vir_bytes count) ); |
| 222 | //_PROTOTYPE( typedef void (*dp_user2nicf_s_t), (struct dpeth *dep, |
224 | //_PROTOTYPE( typedef void (*dp_user2nicf_s_t), (struct dpeth *dep, |
| 223 | // struct iovec_dat_s *iovp, vir_bytes offset, |
225 | // struct iovec_dat_s *iovp, vir_bytes offset, |
| 224 | // int nic_addr, vir_bytes count) ); |
226 | // int nic_addr, vir_bytes count) ); |
| 225 | _PROTOTYPE( typedef void (*dp_nic2userf_t), (struct dpeth *dep, |
227 | _PROTOTYPE( typedef void (*dp_nic2userf_t), (struct dpeth *dep, |
| 226 | int nic_addr, struct iovec_dat *iovp, |
228 | int nic_addr, struct iovec_dat *iovp, |
| Line 234... | Line 236... | ||
| 234 | //#endif |
236 | //#endif |
| 235 | _PROTOTYPE( typedef void (*dp_getblock_t), (struct dpeth *dep, |
237 | _PROTOTYPE( typedef void (*dp_getblock_t), (struct dpeth *dep, |
| 236 | int page, size_t offset, size_t size, void *dst) ); |
238 | int page, size_t offset, size_t size, void *dst) ); |
| 237 | 239 | ||
| 238 | /* iovectors are handled IOVEC_NR entries at a time. */ |
240 | /* iovectors are handled IOVEC_NR entries at a time. */ |
| - | 241 | //#define IOVEC_NR 16 |
|
| - | 242 | // no vectors allowed |
|
| 239 | #define IOVEC_NR 16 |
243 | #define IOVEC_NR 1 |
| 240 | 244 | ||
| 241 | /* |
245 | /* |
| 242 | typedef int irq_hook_t; |
246 | typedef int irq_hook_t; |
| 243 | */ |
247 | */ |
| 244 | typedef struct iovec_dat |
248 | typedef struct iovec_dat |
| 245 | { |
249 | { |
| 246 | iovec_t iod_iovec[IOVEC_NR]; |
250 | iovec_t iod_iovec[IOVEC_NR]; |
| 247 | int iod_iovec_s; |
251 | int iod_iovec_s; |
| - | 252 | // no direct process access |
|
| 248 | int iod_proc_nr; |
253 | int iod_proc_nr; |
| 249 | vir_bytes iod_iovec_addr; |
254 | vir_bytes iod_iovec_addr; |
| 250 | } iovec_dat_t; |
255 | } iovec_dat_t; |
| 251 | /* |
256 | /* |
| 252 | typedef struct iovec_dat_s |
257 | typedef struct iovec_dat_s |
| Line 261... | Line 266... | ||
| 261 | #define SENDQ_NR 2 /* Maximum size of the send queue */ |
266 | #define SENDQ_NR 2 /* Maximum size of the send queue */ |
| 262 | #define SENDQ_PAGES 6 /* 6 * DP_PAGESIZE >= 1514 bytes */ |
267 | #define SENDQ_PAGES 6 /* 6 * DP_PAGESIZE >= 1514 bytes */ |
| 263 | 268 | ||
| 264 | typedef struct dpeth |
269 | typedef struct dpeth |
| 265 | { |
270 | { |
| - | 271 | /* Parent device structure. |
|
| - | 272 | */ |
|
| - | 273 | void * parent; |
|
| - | 274 | /* Packet send queue. |
|
| - | 275 | */ |
|
| - | 276 | packet_t packet_queue; |
|
| - | 277 | int packet_count; |
|
| - | 278 | ||
| 266 | /* The de_base_port field is the starting point of the probe. |
279 | /* The de_base_port field is the starting point of the probe. |
| 267 | * The conf routine also fills de_linmem and de_irq. If the probe |
280 | * The conf routine also fills de_linmem and de_irq. If the probe |
| 268 | * routine knows the irq and/or memory address because they are |
281 | * routine knows the irq and/or memory address because they are |
| 269 | * hardwired in the board, the probe should modify these fields. |
282 | * hardwired in the board, the probe should modify these fields. |
| 270 | * Futhermore, the probe routine should also fill in de_initf and |
283 | * Futhermore, the probe routine should also fill in de_initf and |
| Line 323... | Line 336... | ||
| 323 | int de_mode; |
336 | int de_mode; |
| 324 | eth_stat_t de_stat; |
337 | eth_stat_t de_stat; |
| 325 | iovec_dat_t de_read_iovec; |
338 | iovec_dat_t de_read_iovec; |
| 326 | // iovec_dat_s_t de_read_iovec_s; |
339 | // iovec_dat_s_t de_read_iovec_s; |
| 327 | // int de_safecopy_read; |
340 | // int de_safecopy_read; |
| 328 | // iovec_dat_t de_write_iovec; |
341 | iovec_dat_t de_write_iovec; |
| 329 | // iovec_dat_s_t de_write_iovec_s; |
342 | // iovec_dat_s_t de_write_iovec_s; |
| 330 | iovec_dat_t de_tmp_iovec; |
343 | iovec_dat_t de_tmp_iovec; |
| 331 | // iovec_dat_s_t de_tmp_iovec_s; |
344 | // iovec_dat_s_t de_tmp_iovec_s; |
| 332 | vir_bytes de_read_s; |
345 | vir_bytes de_read_s; |
| 333 | // int de_client; |
346 | // int de_client; |
| 334 | // message de_sendmsg; |
347 | // message de_sendmsg; |
| 335 | // dp_user2nicf_t de_user2nicf; |
348 | dp_user2nicf_t de_user2nicf; |
| 336 | // dp_user2nicf_s_t de_user2nicf_s; |
349 | // dp_user2nicf_s_t de_user2nicf_s; |
| 337 | dp_nic2userf_t de_nic2userf; |
350 | dp_nic2userf_t de_nic2userf; |
| 338 | // dp_nic2userf_s_t de_nic2userf_s; |
351 | // dp_nic2userf_s_t de_nic2userf_s; |
| 339 | dp_getblock_t de_getblockf; |
352 | dp_getblock_t de_getblockf; |
| 340 | } dpeth_t; |
353 | } dpeth_t; |