/[lwip]/lwip/src/core/mem.c
ViewVC logotype

Diff of /lwip/src/core/mem.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.13 by likewise, Tue Apr 15 14:40:55 2003 UTC revision 1.14 by likewise, Thu May 1 13:24:01 2003 UTC
# Line 87  plug_holes(struct mem *mem) Line 87  plug_holes(struct mem *mem)
87    LWIP_ASSERT("plug_holes: mem->next <= MEM_SIZE", mem->next <= MEM_SIZE);    LWIP_ASSERT("plug_holes: mem->next <= MEM_SIZE", mem->next <= MEM_SIZE);
88        
89    nmem = (struct mem *)&ram[mem->next];    nmem = (struct mem *)&ram[mem->next];
90    if(mem != nmem && nmem->used == 0 && (u8_t *)nmem != (u8_t *)ram_end) {    if (mem != nmem && nmem->used == 0 && (u8_t *)nmem != (u8_t *)ram_end) {
91      if(lfree == nmem) {      if (lfree == nmem) {
92        lfree = mem;        lfree = mem;
93      }      }
94      mem->next = nmem->next;      mem->next = nmem->next;
# Line 97  plug_holes(struct mem *mem) Line 97  plug_holes(struct mem *mem)
97    
98    /* plug hole backward */    /* plug hole backward */
99    pmem = (struct mem *)&ram[mem->prev];    pmem = (struct mem *)&ram[mem->prev];
100    if(pmem != mem && pmem->used == 0) {    if (pmem != mem && pmem->used == 0) {
101      if(lfree == mem) {      if (lfree == mem) {
102        lfree = pmem;        lfree = pmem;
103      }      }
104      pmem->next = mem->next;      pmem->next = mem->next;
# Line 224  mem_realloc(void *rmem, mem_size_t newsi Line 224  mem_realloc(void *rmem, mem_size_t newsi
224      mem2->next = mem->next;      mem2->next = mem->next;
225      mem2->prev = ptr;      mem2->prev = ptr;
226      mem->next = ptr2;      mem->next = ptr2;
227      if(mem2->next != MEM_SIZE) {      if (mem2->next != MEM_SIZE) {
228        ((struct mem *)&ram[mem2->next])->prev = ptr2;        ((struct mem *)&ram[mem2->next])->prev = ptr2;
229      }      }
230    
# Line 257  mem_malloc(mem_size_t size) Line 257  mem_malloc(mem_size_t size)
257    
258    for (ptr = (u8_t *)lfree - ram; ptr < MEM_SIZE; ptr = ((struct mem *)&ram[ptr])->next) {    for (ptr = (u8_t *)lfree - ram; ptr < MEM_SIZE; ptr = ((struct mem *)&ram[ptr])->next) {
259      mem = (struct mem *)&ram[ptr];      mem = (struct mem *)&ram[ptr];
260      if(!mem->used &&      if (!mem->used &&
261         mem->next - (ptr + SIZEOF_STRUCT_MEM) >= size + SIZEOF_STRUCT_MEM) {         mem->next - (ptr + SIZEOF_STRUCT_MEM) >= size + SIZEOF_STRUCT_MEM) {
262        ptr2 = ptr + SIZEOF_STRUCT_MEM + size;        ptr2 = ptr + SIZEOF_STRUCT_MEM + size;
263        mem2 = (struct mem *)&ram[ptr2];        mem2 = (struct mem *)&ram[ptr2];
# Line 273  mem_malloc(mem_size_t size) Line 273  mem_malloc(mem_size_t size)
273        mem->used = 1;        mem->used = 1;
274  #ifdef MEM_STATS  #ifdef MEM_STATS
275        lwip_stats.mem.used += (size + SIZEOF_STRUCT_MEM);        lwip_stats.mem.used += (size + SIZEOF_STRUCT_MEM);
276        /*      if(lwip_stats.mem.max < lwip_stats.mem.used) {        /*      if (lwip_stats.mem.max < lwip_stats.mem.used) {
277          lwip_stats.mem.max = lwip_stats.mem.used;          lwip_stats.mem.max = lwip_stats.mem.used;
278          } */          } */
279        if (lwip_stats.mem.max < ptr2) {        if (lwip_stats.mem.max < ptr2) {
# Line 283  mem_malloc(mem_size_t size) Line 283  mem_malloc(mem_size_t size)
283    
284        if (mem == lfree) {        if (mem == lfree) {
285          /* Find next free block after mem */          /* Find next free block after mem */
286          while(lfree->used && lfree != ram_end) {          while (lfree->used && lfree != ram_end) {
287            lfree = (struct mem *)&ram[lfree->next];            lfree = (struct mem *)&ram[lfree->next];
288          }          }
289          LWIP_ASSERT("mem_malloc: !lfree->used", !lfree->used);          LWIP_ASSERT("mem_malloc: !lfree->used", !lfree->used);

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.14

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26