/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 ); |