27,7 → 27,7 |
*/ |
|
/** @addtogroup net |
* @{ |
* @{ |
*/ |
|
/** @file |
36,26 → 36,28 |
#ifndef __NET_PACKET_H__ |
#define __NET_PACKET_H__ |
|
#define PACKET_PREPEND( packet, type ) ( type * ) packet_prepend(( packet ), sizeof( type )) |
#define PACKET_APPEND( packet, type ) ( type * ) packet_append(( packet ), sizeof( type )) |
#define PACKET_TRIM( packet, prefix, sufix ) packet_trim(( packet ), sizeof( prefix ), sizeof( sufix )) |
typedef unsigned int packet_id_t; |
|
typedef struct packet * packet_t; |
typedef packet_t * packet_ref; |
|
packet_t packet_create( size_t max_prefix, size_t max_content, size_t max_sufix ); |
void * packet_prepend( packet_t packet, size_t length ); |
void * packet_append( packet_t packet, size_t length ); |
packet_t packet_copy( packet_t packet ); |
int packet_copy_data( packet_t packet, void * data, size_t length ); |
// TODO protocol identification? |
int packet_send( packet_t packet, int phone ); |
int packet_receive( packet_ref packet ); |
int packet_trim( packet_t packet, size_t prefix, size_t sufix ); |
int packet_destroy( packet_t packet ); |
size_t packet_get_data_length( packet_t packet ); |
void * packet_get_data( packet_t packet ); |
typedef enum packet_mode packet_mode_t; |
|
enum packet_mode{ |
PM_ONEWAY, |
PM_RETURN |
}; |
|
packet_t pm_find( packet_id_t packet_id ); |
int pm_add( packet_t packet ); |
int pm_init( void ); |
void pm_destroy( void ); |
|
packet_t pq_add( packet_t first, packet_t packet, int order, size_t metric ); |
packet_t pq_detach( packet_t packet ); |
int pq_set( packet_t packet, int order, size_t metric ); |
void pq_destroy( packet_t first, void ( * packet_release )( packet_t packet )); |
|
#endif |
|
/** @} |