|
From: | Ed Sutter |
Subject: | Re: [lwip-users] p->payload == iphdr failed... |
Date: | Sat, 08 Nov 2008 03:18:59 -0500 |
User-agent: | Thunderbird 2.0.0.17 (Windows/20080914) |
Jonathan Larmour wrote:
Ed Sutter wrote:Jonathan Larmour wrote:Ah I see in the implementation of pbuf_header, that it can't expand PBUF_REFs to the front. That will be your problem. I think the only reason it doesn't do it is because there's no way to sanity check that it's a valid thing to do.Hmmmm... If I can't use PBUF_RAW/PBUF_REF to allocate the pbuf, then does that mean I have no choice but to do the loop of memcpy's like this...[snip]Or is there some other way to avoid that copy loop?I think the better answer for you would be to adjust the PBUF_REF case in pbuf_header() to allow PBUF_REF pbufs to be expanded to the front.I'm undecided whether that would be a good change to have in the master code base.
Ok, I see what you're talking about in pbuf_header(). I don't know the history of the code to comment on whether or not the change should be in the master code base; but it would seem to me that if this is forcing a driver to use the memcpy loop to build the pbuf chain, then it would be a good improvement. Anyway, if there is no other better way to do this I suppose I'll just stick with it (don't have time to look into pbuf_header() at the moment). I guess this must be what everyone does (otherwise they would be running into the same problem I'm running into), right? Thanks much, Ed
[Prev in Thread] | Current Thread | [Next in Thread] |