Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals

# Example applications

## Detailed Description

The uIP distribution contains a number of example applications that can be either used directory or studied when learning to develop applications for uIP.

## Files
file | memb.c
| Memory block allocation routines.

file | memb.h
| Memory block allocation routines.

## Modules
Web client
SMTP E-mail sender
Telnet server
Web server
## Defines
#define | MEMB(name, size, num)
| Declare a memory block.
## Functions
void | memb_init (struct memb_blocks *m)
| Initialize a memory block that was declared with MEMB().
char * | memb_alloc (struct memb_blocks *m)
| Allocate a memory block from a block of memory declared with MEMB().
char | memb_ref (struct memb_blocks *m, char *ptr)
| Increase the reference count for a memory chunk.
char | memb_free (struct memb_blocks *m, char *ptr)
| Deallocate a memory block from a memory block previously declared with MEMB().

## Define Documentation

#define MEMB | ( | name,
|  | size,
|  | num |  | ) |

| Value:
    static char memb_mem[(size + 1) * num]; \
            static struct memb_blocks name = {size, num, memb_mem}
  Declare a memory block. Parameters:
  name | The name of the memory block (later used with memb_init(), memb_alloc() and memb_free()).
  size | The size of each memory chunk, in bytes.
  num | The total number of memory chunks in the block.

## Function Documentation

char* memb_alloc | ( | struct memb_blocks * | m | ) |

  | Allocate a memory block from a block of memory declared with MEMB(). Parameters:
  m | A memory block previosly declared with MEMB().

char memb_free | ( | struct memb_blocks * | m,
|  | char * | ptr
| ) |

  | Deallocate a memory block from a memory block previously declared with MEMB(). Parameters:
  m | m A memory block previosly declared with MEMB().
  ptr | A pointer to the memory block that is to be deallocated.
Returns: The new reference count for the memory block (should be 0 if successfully deallocated) or -1 if the pointer "ptr" did not point to a legal memory block.

void memb_init | ( | struct memb_blocks * | m | ) |

  | Initialize a memory block that was declared with MEMB(). Parameters:
  m | A memory block previosly declared with MEMB().

char memb_ref | ( | struct memb_blocks * | m,
|  | char * | ptr
| ) |

  | Increase the reference count for a memory chunk. Note: No sanity checks are currently made. Parameters:
  m | m A memory block previosly declared with MEMB().
  ptr | A pointer to the memory chunk for which the reference count should be increased.
Returns: The new reference count.