Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4191 → Rev 4192

/branches/network/uspace/srv/net/structures/packet/packet_client.c
36,9 → 36,9
 
#include <async.h>
#include <errno.h>
#include <mem.h>
#include <unistd.h>
//#include <stdio.h>
#include <string.h>
 
#include <ipc/ipc.h>
#include <sys/mman.h>
122,15 → 122,15
padding = packet->addr_len - addr_len;
if( src ){
memcpy(( void * ) packet + packet->src_addr, src, addr_len );
memset(( void * ) packet + packet->src_addr + addr_len, 0, padding );
bzero(( void * ) packet + packet->src_addr + addr_len, padding );
}else{
memset(( void * ) packet + packet->src_addr + addr_len, 0, packet->addr_len );
bzero(( void * ) packet + packet->src_addr + addr_len, packet->addr_len );
}
if( dest ){
memcpy(( void * ) packet + packet->dest_addr, dest, addr_len );
memset(( void * ) packet + packet->dest_addr + addr_len, 0, padding );
bzero(( void * ) packet + packet->dest_addr + addr_len, padding );
}else{
memset(( void * ) packet + packet->dest_addr + addr_len, 0, packet->addr_len );
bzero(( void * ) packet + packet->dest_addr + addr_len, packet->addr_len );
}
return EOK;
}
194,7 → 194,7
return packet;
}
 
void packet_release( int phone, packet_id_t packet_id ){
void pq_release( int phone, packet_id_t packet_id ){
async_msg_1( phone, NET_PACKET_RELEASE, packet_id );
}
 
/branches/network/uspace/srv/net/structures/packet/packet.c
37,9 → 37,9
 
#include <errno.h>
#include <malloc.h>
#include <mem.h>
#include <rwlock.h>
//#include <stdio.h>
#include <string.h>
 
#include <sys/mman.h>
 
148,7 → 148,7
rwlock_write_unlock( & pm_globals.lock );
return ENOMEM;
}
memset( map, 0, sizeof( packet_map_t ));
bzero( map, sizeof( packet_map_t ));
if(( ERROR_CODE = gpm_add( & pm_globals.packet_map, map )) < 0 ){
rwlock_write_unlock( & pm_globals.lock );
free( map );
/branches/network/uspace/srv/net/structures/packet/packet_client.h
200,7 → 200,7
* @param phone The packet server module phone. Input parameter.
* @param packet_id The packet identifier. Input parameter.
*/
void packet_release( int phone, packet_id_t packet_id );
void pq_release( int phone, packet_id_t packet_id );
 
#endif
 
/branches/network/uspace/srv/net/structures/packet/packet_server.c
51,6 → 51,18
#include "packet_header.h"
#include "packet_server.h"
 
/** The default address length reserved for new packets.
*/
#define DEFAULT_ADDR_LEN 32
 
/** The default prefix reserved for new packets.
*/
#define DEFAULT_PREFIX 0
 
/** The default suffix reserved for new packets.
*/
#define DEFAULT_SUFFIX 0
 
/** Returns the packet identifier message parameter.
*/
#define IPC_GET_ID( call ) ( packet_id_t ) IPC_GET_ARG1( * call )
69,7 → 81,7
 
/** Returns the maximal suffix length message parameter.
*/
#define IPC_GET_SUFIX( call ) ( size_t ) IPC_GET_ARG4( * call )
#define IPC_GET_SUFFIX( call ) ( size_t ) IPC_GET_ARG4( * call )
 
#define FREE_QUEUES_COUNT 7
 
155,7 → 167,7
case IPC_M_PHONE_HUNGUP:
return EOK;
case NET_PACKET_CREATE_1:
packet = packet_get( 0, 0, IPC_GET_CONTENT( call ), 0 );
packet = packet_get( DEFAULT_ADDR_LEN, DEFAULT_PREFIX, IPC_GET_CONTENT( call ), DEFAULT_SUFFIX );
if( ! packet ) return ENOMEM;
* answer_count = 2;
IPC_SET_ARG1( * answer, packet->packet_id );
162,7 → 174,7
IPC_SET_ARG2( * answer, packet->length );
return EOK;
case NET_PACKET_CREATE_4:
packet = packet_get( IPC_GET_ADDR_LEN( call ), IPC_GET_PREFIX( call ), IPC_GET_CONTENT( call ), IPC_GET_SUFIX( call ));
packet = packet_get( IPC_GET_ADDR_LEN( call ), IPC_GET_PREFIX( call ), IPC_GET_CONTENT( call ), IPC_GET_SUFFIX( call ));
if( ! packet ) return ENOMEM;
* answer_count = 2;
IPC_SET_ARG1( * answer, packet->packet_id );