Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3845 → Rev 3846

/branches/network/uspace/srv/net/packet.h
33,7 → 33,30
/** @file
*/
 
typedef struct packet * packet_t;
#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 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 );
 
#endif
 
/** @}
*/