#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. | |
Definition in file x_recvmsg.c.
| 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
| [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). |
Definition at line 341 of file x_recvmsg.c.
References TXC_INTERNALERROR, txc_tx_get_txd(), and txc_tx_get_xactstate().
1.4.7