src/xcalls/x_recvmsg.c File Reference

x_recvmsg implementation. More...

#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <misc/debug.h>
#include <misc/generic_types.h>
#include <core/tx.h>
#include <core/config.h>
#include <core/koa.h>
#include <core/buffer.h>
#include <libc/syscalls.h>
#include <core/txdesc.h>
#include <core/stats.h>
#include <xcalls/xcalls.h>
#include <netinet/in.h>

Go to the source code of this file.

Classes

struct  txc_socket_msghdr_s
struct  x_recvmsg_commit_undo_args_s

Defines

#define TXC_DGRAM_MAX_SIZE   1024*64
#define TXC_CONTROLMSG_MAX_SIZE   1024*2

Typedefs

typedef txc_socket_msghdr_s txc_socket_msghdr_t
typedef x_recvmsg_commit_undo_args_s x_recvmsg_commit_undo_args_t

Functions

ssize_t XCALL_DEF() x_recvmsg (int s, struct msghdr *msg, int flags, int *result)
 Receives a message from a socket.


Detailed Description

x_recvmsg implementation.

Definition in file x_recvmsg.c.


Function Documentation

ssize_t XCALL_DEF() x_recvmsg ( int  s,
struct msghdr *  msg,
int  flags,
int *  result 
)

Receives a message from a socket.

This xCall buffers any received data so that in case of transaction abort received data are not consumed but stay present for the next socket receive.

Execution : in-place

Asynchronous failures : commit, abort

Parameters:
[in] fd The file descriptor of the socket.
[in] msg Where to store the received message.
[in] flags See man recvmsg.
[out] result Where to store any asynchronous failures. failure occurred (in which case, errno is set appropriately).
Todo:
Find which flags of recvmsg can be used with x_recvmsg?

Definition at line 341 of file x_recvmsg.c.

References TXC_INTERNALERROR, txc_tx_get_txd(), and txc_tx_get_xactstate().


Generated on Wed Dec 9 20:32:41 2009 for xCalls by  doxygen 1.4.7