Microchip® Advanced Software Framework

packetbuf.c File Reference

    Rime buffer (packetbuf) management
Author
Adam Dunkels adam@.nosp@m.sics.nosp@m..se
#include <string.h>
#include "contiki-net.h"
#include "net/packetbuf.h"
#include "net/rime/rime.h"

Macros

#define _DEBUG_   0
 
#define DEBUG_LEVEL   0
 
#define PRINTF(...)
 

Functions

const linkaddr_tpacketbuf_addr (uint8_t type)
 
packetbuf_attr_t packetbuf_attr (uint8_t type)
 
void packetbuf_attr_clear (void)
 
void packetbuf_attr_copyfrom (struct packetbuf_attr *attrs, struct packetbuf_addr *addrs)
 
void packetbuf_attr_copyto (struct packetbuf_attr *attrs, struct packetbuf_addr *addrs)
 
void packetbuf_clear (void)
 Clear and reset the packetbuf. More...
 
void packetbuf_clear_hdr (void)
 Clear and reset the header of the packetbuf. More...
 
void packetbuf_compact (void)
 Compact the packetbuf. More...
 
int packetbuf_copyfrom (const void *from, uint16_t len)
 Copy from external data into the packetbuf. More...
 
int packetbuf_copyto (void *to)
 Copy the entire packetbuf to an external buffer. More...
 
int packetbuf_copyto_hdr (uint8_t *to)
 Copy the header portion of the packetbuf to an external buffer. More...
 
uint16_t packetbuf_datalen (void)
 Get the length of the data in the packetbuf. More...
 
void * packetbuf_dataptr (void)
 Get a pointer to the data in the packetbuf. More...
 
void packetbuf_hdr_remove (int size)
 
int packetbuf_hdralloc (int size)
 Extend the header of the packetbuf, for outbound packets. More...
 
uint8_t packetbuf_hdrlen (void)
 Get the length of the header in the packetbuf, for outbound packets. More...
 
void * packetbuf_hdrptr (void)
 Get a pointer to the header in the packetbuf, for outbound packets. More...
 
int packetbuf_hdrreduce (int size)
 Reduce the header in the packetbuf, for incoming packets. More...
 
int packetbuf_is_reference (void)
 Check if the packetbuf references external data. More...
 
void packetbuf_reference (void *ptr, uint16_t len)
 Point the packetbuf to external data. More...
 
void * packetbuf_reference_ptr (void)
 Get a pointer to external data referenced by the packetbuf. More...
 
int packetbuf_set_addr (uint8_t type, const linkaddr_t *addr)
 
int packetbuf_set_attr (uint8_t type, const packetbuf_attr_t val)
 
void packetbuf_set_datalen (uint16_t len)
 Set the length of the data in the packetbuf. More...
 
uint16_t packetbuf_totlen (void)
 Get the total length of the header and data in the packetbuf. More...
 

Variables

static uint16_t buflen
 
static uint16_t bufptr
 
static uint8_t hdrptr
 
static uint8_t * packetbuf = (uint8_t *)packetbuf_aligned
 
struct packetbuf_addr packetbuf_addrs [PACKETBUF_NUM_ADDRS]
 
static uint16_t packetbuf_aligned [(PACKETBUF_SIZE+PACKETBUF_HDR_SIZE)/2+1]
 
struct packetbuf_attr packetbuf_attrs [PACKETBUF_NUM_ATTRS]
 
static uint8_t * packetbufptr