Subversion Repositories HelenOS

Rev

Rev 4747 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4747 Rev 4756
Line 192... Line 192...
192
 *  @returns The active sockets.
192
 *  @returns The active sockets.
193
 */
193
 */
194
static sockets_ref  socket_get_sockets( void );
194
static sockets_ref  socket_get_sockets( void );
195
 
195
 
196
/** Default thread for new connections.
196
/** Default thread for new connections.
197
 *  @param iid The initial message identifier. Input parameter.
197
 *  @param[in] iid The initial message identifier.
198
 *  @param icall The initial message call structure. Input parameter.
198
 *  @param[in] icall The initial message call structure.
199
 */
199
 */
200
void    socket_connection( ipc_callid_t iid, ipc_call_t * icall );
200
void    socket_connection( ipc_callid_t iid, ipc_call_t * icall );
201
 
201
 
202
/** Sends message to the socket parent module with specified data.
202
/** Sends message to the socket parent module with specified data.
203
 *  @param socket_id Socket identifier. Input parameter.
203
 *  @param[in] socket_id Socket identifier.
204
 *  @param message The action message. Input parameter.
204
 *  @param[in] message The action message.
205
 *  @param arg2 The second message parameter. Input parameter.
205
 *  @param[in] arg2 The second message parameter.
206
 *  @param data The data to be sent. Input parameter.
206
 *  @param[in] data The data to be sent.
207
 *  @param datalength The data length. Input parameter.
207
 *  @param[in] datalength The data length.
208
 *  @returns EOK on success.
208
 *  @returns EOK on success.
209
 *  @returns ENOTSOCK if the socket is not found.
209
 *  @returns ENOTSOCK if the socket is not found.
210
 *  @returns EBADMEM if the data parameter is NULL.
210
 *  @returns EBADMEM if the data parameter is NULL.
211
 *  @returns NO_DATA if the datalength parameter is zero (0).
211
 *  @returns NO_DATA if the datalength parameter is zero (0).
212
 *  @returns Other error codes as defined for the spcific message.
212
 *  @returns Other error codes as defined for the spcific message.
213
 */
213
 */
214
int socket_send_data( int socket_id, ipcarg_t message, ipcarg_t arg2, const void * data, size_t datalength );
214
int socket_send_data( int socket_id, ipcarg_t message, ipcarg_t arg2, const void * data, size_t datalength );
215
 
215
 
216
/** Initializes a new socket specific data.
216
/** Initializes a new socket specific data.
217
 *  @param socket The socket to be initialized. Input/output parameter.
217
 *  @param[in,out] socket The socket to be initialized.
218
 *  @param socket_id The new socket identifier. Input parameter.
218
 *  @param[in] socket_id The new socket identifier.
219
 *  @param phone The parent module phone. Input parameter.
219
 *  @param[in] phone The parent module phone.
220
 *  @param service The parent module service. Input parameter.
220
 *  @param[in] service The parent module service.
221
 */
221
 */
222
void    socket_initialize( socket_ref socket, int socket_id, int phone, services_t service );
222
void    socket_initialize( socket_ref socket, int socket_id, int phone, services_t service );
223
 
223
 
224
/** Clears and destroys the socket.
224
/** Clears and destroys the socket.
225
 *  @param socket The socket to be destroyed. Input parameter.
225
 *  @param[in] socket The socket to be destroyed.
226
 */
226
 */
227
void    socket_destroy( socket_ref socket );
227
void    socket_destroy( socket_ref socket );
228
 
228
 
229
/** Receives data via the socket.
229
/** Receives data via the socket.
230
 *  @param message The action message. Input parameter.
230
 *  @param[in] message The action message.
231
 *  @param socket_id Socket identifier. Input parameter.
231
 *  @param[in] socket_id Socket identifier.
232
 *  @param data The data buffer to be filled. Output parameter.
232
 *  @param[out] data The data buffer to be filled.
233
 *  @param datalength The data length. Input parameter.
233
 *  @param[in] datalength The data length.
234
 *  @param flags Various receive flags. Input parameter.
234
 *  @param[in] flags Various receive flags.
235
 *  @param fromaddr The source address. May be NULL for connected sockets. Output parameter.
235
 *  @param[out] fromaddr The source address. May be NULL for connected sockets.
236
 *  @param addrlen The address length. The maximum address length is read. The actual address length is set. Used only if fromaddr is not NULL. Input/output parameter.
236
 *  @param[in,out] addrlen The address length. The maximum address length is read. The actual address length is set. Used only if fromaddr is not NULL.
237
 *  @returns EOK on success.
237
 *  @returns EOK on success.
238
 *  @returns ENOTSOCK if the socket is not found.
238
 *  @returns ENOTSOCK if the socket is not found.
239
 *  @returns EBADMEM if the data parameter is NULL.
239
 *  @returns EBADMEM if the data parameter is NULL.
240
 *  @returns NO_DATA if the datalength or addrlen parameter is zero (0).
240
 *  @returns NO_DATA if the datalength or addrlen parameter is zero (0).
241
 *  @returns Other error codes as defined for the spcific message.
241
 *  @returns Other error codes as defined for the spcific message.
242
 */
242
 */
243
int recvfrom_core( ipcarg_t message, int socket_id, void * data, size_t datalength, int flags, struct sockaddr * fromaddr, socklen_t * addrlen );
243
int recvfrom_core( ipcarg_t message, int socket_id, void * data, size_t datalength, int flags, struct sockaddr * fromaddr, socklen_t * addrlen );
244
 
244
 
245
/** Sends data via the socket to the remote address.
245
/** Sends data via the socket to the remote address.
246
 *  Binds the socket to a free port if not already connected/bound.
246
 *  Binds the socket to a free port if not already connected/bound.
247
 *  @param message The action message. Input parameter.
247
 *  @param[in] message The action message.
248
 *  @param socket_id Socket identifier. Input parameter.
248
 *  @param[in] socket_id Socket identifier.
249
 *  @param data The data to be sent. Input parameter.
249
 *  @param[in] data The data to be sent.
250
 *  @param datalength The data length. Input parameter.
250
 *  @param[in] datalength The data length.
251
 *  @param flags Various send flags. Input parameter.
251
 *  @param[in] flags Various send flags.
252
 *  @param toaddr The destination address. May be NULL for connected sockets. Input parameter.
252
 *  @param[in] toaddr The destination address. May be NULL for connected sockets.
253
 *  @param addrlen The address length. Used only if toaddr is not NULL. Input parameter.
253
 *  @param[in] addrlen The address length. Used only if toaddr is not NULL.
254
 *  @returns EOK on success.
254
 *  @returns EOK on success.
255
 *  @returns ENOTSOCK if the socket is not found.
255
 *  @returns ENOTSOCK if the socket is not found.
256
 *  @returns EBADMEM if the data or toaddr parameter is NULL.
256
 *  @returns EBADMEM if the data or toaddr parameter is NULL.
257
 *  @returns NO_DATA if the datalength or the addrlen parameter is zero (0).
257
 *  @returns NO_DATA if the datalength or the addrlen parameter is zero (0).
258
 *  @returns Other error codes as defined for the NET_SOCKET_SENDTO message.
258
 *  @returns Other error codes as defined for the NET_SOCKET_SENDTO message.