|According to Christoph Plattner:
|> In the probe section of the driver, the RxFD structure is
|> initialized. Here the field
|> ACCESS(rxfd)rx_buf_addr = (int) &nic->packet;
|> is setup with the address of the packet frame POINTER inside
|> the nic structure.
|>
|> What does the field rx_buf_addr expect ?
|> The address to a buffer, or the address to a pointer, indicating
|> the the buffer ?
|
|Nothing in the EEPro100 is simple. You need full docs from Intel to
|even have a chance at working with it, and for some reason, Intel
|still(!!!) requires a Non-Disclosure Agreement to get those docs.
|Sorry.
I'm not sure, but there may be a PDF data sheet on for the 82559 on the
Developer CD that they gave out a few years ago. Email me if you want me
to check. I don't recall if the 82559 is a descendant of the 82586
design, but IIRC it has more than one mode for Rx/Tx descriptors,
allowing both inline and linked data buffers. I think the code you are
seeing is a result of the confusion between those two modes and that the
mode that's effective is inline data buffer. By inline and linked I mean:
inline: struct RxD {
length, flags members;
u_char data[ETHER_MAX_LEN];
};
linked: struct RxD {
length, flags members;
u_char *data;
};
|