Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

wimax_msg_alloc(9) [suse man page]

WIMAX_MSG_ALLOC(9)						 Linux Networking						WIMAX_MSG_ALLOC(9)

NAME
wimax_msg_alloc - Create a new skb for sending a message to userspace SYNOPSIS
struct sk_buff * wimax_msg_alloc(struct wimax_dev * wimax_dev, const char * pipe_name, const void * msg, size_t size, gfp_t gfp_flags); ARGUMENTS
wimax_dev WiMAX device descriptor pipe_name "named pipe" the message will be sent to msg pointer to the message data to send size size of the message to send (in bytes), including the header. gfp_flags flags for memory allocation. RETURNS
0 if ok, negative errno code on error DESCRIPTION
Allocates an skb that will contain the message to send to user space over the messaging pipe and initializes it, copying the payload. Once this call is done, you can deliver it with wimax_msg_send. IMPORTANT
Don't use skb_push/skb_pull/skb_reserve on the skb, as wimax_msg_send depends on skb->data being placed at the beginning of the user message. Unlike other WiMAX stack calls, this call can be used way early, even before wimax_dev_add is called, as long as the wimax_dev->net_dev pointer is set to point to a proper net_dev. This is so that drivers can use it early in case they need to send stuff around or communicate with user space. COPYRIGHT
Kernel Hackers Manual 2.6. July 2010 WIMAX_MSG_ALLOC(9)

Check Out this Related Man Page

send(2) 							System Calls Manual							   send(2)

Name
       send, sendto, sendmsg - send a message from a socket

Syntax
       #include <sys/types.h>
       #include <sys/socket.h>

       cc = send(s, msg, len, flags)
       int cc, s;
       char *msg;
       int len, flags;

       cc = sendto(s, msg, len, flags, to, tolen)
       int cc, s;
       char *msg;
       int len, flags;
       struct sockaddr *to;
       int tolen;

       cc = sendmsg(s, msg, flags)
       int cc, s;
       struct msghdr msg[];
       int flags;

Description
       The  and system calls are used to transmit a message to another socket.	The system call may be used only when the socket is in a connected
       state, while the and system calls may be used at any time.

       The address of the target is given by to, with tolen specifying its size.  The length of the message is given by len.  If  the  message	is
       too  long  to  pass atomically through the underlying protocol, the error EMSGSIZE is returned, and the message is not transmitted.  If the
       address specified in the argument is a broadcast address, the SO_BROADCAST option must be set for broadcasting to succeed.

       No indication of failure to deliver is implicit in a Return values of -1 indicate some locally detected errors.

       If no messages space is available at the socket to hold the message to be transmitted, normally blocks, unless the socket has  been  placed
       in nonblocking I/O mode.  The call can be used to determine when it is possible to send more data.

       The flags parameter can be set to MSG_OOB to send out-of-band data on sockets that support this features (for example, SOCK_STREAM).

       See for a description of the msghdr structure.

       The call returns the number of characters sent, or -1 if an error occurred.

Diagnostics
       [EBADF]		   An invalid descriptor was specified.

       [EDESTADDRREQ]	   A required address was omitted from an operation on a socket.

       [EFAULT] 	   An invalid user space address was specified for a parameter.

       [EINVAL] 	   An invalid argument length for the message was specified.

       [EINTR]		   The send was interrupted by delivery of a signal.

       [ENOTCONN]	   The socket is not connected.

       [ENOTSOCK]	   The argument s is not a socket.

       [EMSGSIZE]	   The socket requires that messages be sent atomically, and the size of the message to be sent made this impossible.

       [EPIPE]		   A write on a pipe or socket for which there is no process to read the data.

       [EWOULDBLOCK]	   The socket is marked nonblocking, and the requested operation would block.

See Also
       recv(2), getsockopt(2), socket(2)

																	   send(2)
Man Page