mirror of
https://github.com/ep00ch/lwip-contrib-mac.git
synced 2024-08-28 03:29:01 +00:00
instead of PBUF_ROM. This addition allows support of copy-on-demand where the lower layers can call pbuf_unref() which tests for any PBUF_REF buffers and replaces them with PBUF_POOL buffers. This is now used everywhere. pbuf_unref() is called in ARP queueing and in the coldfire driver, which puts frames on a DMA queue and frees them later. Along with this change pbuf_free() now goes through the entire chain of buffers and tests all the ref counters, not just the first one. Generally now pbuf_ref_chain() should be called and not pbuf_ref(). This change was made because it is possible for the head of the pbuf chain to have a different count than the payload pbuf which might have been passed by the application. Coldfire ethernet driver also had some minor other updates and STATS was changed to LWIP_STATS. |
||
---|---|---|
.. | ||
include | ||
netif | ||
proj | ||
perf.c | ||
README | ||
sys_arch.c |
### README --- c:/cygwin/home/dhaas/work/cfimage/lwip/arch/coldfire/ ## ## Author: dhaas@alum.rpi.edu These files are a port of lwip to coldfire (specifically the MCF5272 with on-board FEC) under the Nucleus OS. Nucleus is pretty generic so it should be fairly easy to port this to any other embedded OS. Nucleus memory managment is not used. It is assumed you have a working malloc (which at least long-word aligns memory). The compiler used was Diab 4.3b. You will almost certainly need to change cc.h for your compiler. IMPORTANT NOTE: If you use the fec driver for a different processor which has a data cache you will need to make sure the buffer descriptors and memory used for pbufs are not in a cachable area. Otherwise the fec driver is guarrenteed to malfunction. The 5272 which this was written for does not support data cache so it did not matter and malloc was used.