Re: ifnet_output_raw() frees all packets?
Re: ifnet_output_raw() frees all packets?
- Subject: Re: ifnet_output_raw() frees all packets?
- From: Vincent Lubet <email@hidden>
- Date: Fri, 17 Mar 2006 09:40:56 -0800
On Mar 17, 2006, at 3:02 AM, Brian Doyle wrote:
I'm wondering if someone with a bit more hardware experience with
ethernet controllers would mind sanity checking this observation:
The docs for ifnet_output_raw() in kpi_interface.h say that the
(mbuf_t) packet passed to the routine will be freed in the event of
an error. Looking through IONetworkController::outputPacket() and
BCM440X::outputPacket() it looks like even if there *isn't* an
error the packet will be freed (in the case of noErr on a real
controller the packet is put onto the ethernet ring buffer and then
freed after transmission during serviceTxInterrupt()).
Am I interpreting the source correctly and should the docs for
kpi_interface.h be updated to reflect this?
What the doc means is that the mbuf will be free in all cases, even
if ifnet_output_raw() is passed a bad parameter or another error
happens before the mbuf gets to the driver.
Vincent
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden