Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4737 → Rev 4738

/branches/network/uspace/srv/net/socket/socket_core.h
42,6 → 42,7
#include "../include/in.h"
#include "../include/device.h"
 
#include "../structures/generic_char_map.h"
#include "../structures/dynamic_fifo.h"
#include "../structures/int_map.h"
#include "../structures/packet/packet.h"
52,9 → 53,16
#define SOCKET_INITIAL_ACCEPTED_SIZE 1
#define SOCKET_MAX_ACCEPTEDED_SIZE 64
 
/** \todo
*/
#define SOCKET_MAP_KEY_LISTENING "L"
 
typedef struct socket_core socket_core_t;
typedef socket_core_t * socket_core_ref;
 
typedef struct socket_port socket_port_t;
typedef socket_port_t * socket_port_ref;
 
struct socket_core{
int socket_id;
int phone;
62,16 → 70,26
dyn_fifo_t received;
dyn_fifo_t accepted;
void * specific_data;
const char * key;
size_t key_length;
};
 
INT_MAP_DECLARE( socket_cores, socket_core_t );
 
INT_MAP_DECLARE( socket_ports, socket_core_ref );
GENERIC_CHAR_MAP_DECLARE( socket_port_map, socket_core_ref );
 
INT_MAP_DECLARE( socket_ports, socket_port_t );
 
void socket_cores_release( int packet_phone, socket_cores_ref local_sockets, socket_ports_ref global_sockets, void ( * socket_release )( socket_core_ref socket ));
 
int socket_bind( socket_cores_ref local_sockets, socket_ports_ref global_sockets, int socket_id, void * addr, size_t addrlen, int free_ports_start, int free_ports_end, int last_used_port );
int socket_bind_free_port( socket_ports_ref global_sockets, socket_core_ref socket, int free_ports_start, int free_ports_end, int last_used_port );
int socket_create( socket_cores_ref local_sockets, int app_phone, void * specific_data, int * socket_id );
int socket_destroy( int packet_phone, int socket_id, socket_cores_ref local_sockets, socket_ports_ref global_sockets );
int socket_destroy( int packet_phone, int socket_id, socket_cores_ref local_sockets, socket_ports_ref global_sockets, void ( * socket_release )( socket_core_ref socket ));
int socket_reply_packets( packet_t packet, size_t * length );
socket_core_ref socket_port_find( socket_ports_ref global_sockets, int port, const char * key, size_t key_length );
void socket_port_release( socket_ports_ref global_sockets, socket_core_ref socket );
int socket_port_add( socket_ports_ref global_sockets, int port, socket_core_ref socket, const char * key, size_t key_length );
 
#endif