Linux Kernel
3.7.1
|
#include <linux/types.h>
#include <linux/slab.h>
#include <asm/debug.h>
Go to the source code of this file.
Data Structures | |
struct | iucv_array |
struct | iucv_path |
struct | iucv_message |
struct | iucv_handler |
struct | iucv_interface |
Macros | |
#define | IUCV_IPRMDATA 0x80 |
#define | IUCV_IPQUSCE 0x40 |
#define | IUCV_IPBUFLST 0x40 |
#define | IUCV_IPPRTY 0x20 |
#define | IUCV_IPANSLST 0x08 |
#define | IUCV_IPSYNC 0x04 |
#define | IUCV_IPLOCAL 0x01 |
Variables | |
u32 | address |
u32 | length |
struct bus_type | iucv_bus |
struct device * | iucv_root |
struct iucv_path | __attribute__ |
struct iucv_message | __packed |
struct iucv_interface | iucv_if |
|
read |
Packet vector entry.
This data structure is used with netio_send_packet_vector() to send multiple packets with one NetIO call. The structure should be initialized by calling netio_pkt_vector_set(), rather than by setting the fields directly.
This structure is guaranteed to be a power of two in size, no bigger than one L2 cache line, and to be aligned modulo its size.
Reserved for use by the user application. When initialized with the netio_set_pkt_vector_entry() function, this field is guaranteed to be visible to readers only after all other fields are already visible. This way it can be used as a valid flag or generation counter.
Low 8 bits of the packet address to send. The high bits are acquired from the 'handle' field.
Number of bytes to transmit.
The raw handle from a netio_pkt_t. If this is NETIO_PKT_HANDLE_NONE, this vector entry will be skipped and no packet will be transmitted.
int __iucv_message_receive | ( | struct iucv_path * | path, |
struct iucv_message * | msg, | ||
u8 | flags, | ||
void * | buffer, | ||
size_t | size, | ||
size_t * | residual | ||
) |
__iucv_message_receive : address of iucv path structure : address of iucv msg structure : flags that affect how the message is received (IUCV_IPBUFLST) : address of data buffer or address of struct iucv_array : length of data buffer :
This function receives messages that are being sent to you over established paths. This function will deal with RMDATA messages embedded in struct iucv_message as well.
Locking: no locking.
int __iucv_message_send | ( | struct iucv_path * | path, |
struct iucv_message * | msg, | ||
u8 | flags, | ||
u32 | srccls, | ||
void * | buffer, | ||
size_t | size | ||
) |
__iucv_message_send : address of iucv path structure : address of iucv msg structure : how the message is sent (IUCV_IPRMDATA, IUCV_IPPRTY, IUCV_IPBUFLST) : source class of message : address of data buffer or address of struct iucv_array : length of send buffer
This function transmits data to another application. Data to be transmitted is in a buffer and this is a one-way message and the receiver will not reply to the message.
Locking: no locking.
int iucv_message_receive | ( | struct iucv_path * | path, |
struct iucv_message * | msg, | ||
u8 | flags, | ||
void * | buffer, | ||
size_t | size, | ||
size_t * | residual | ||
) |
iucv_message_receive : address of iucv path structure : address of iucv msg structure : flags that affect how the message is received (IUCV_IPBUFLST) : address of data buffer or address of struct iucv_array : length of data buffer :
This function receives messages that are being sent to you over established paths. This function will deal with RMDATA messages embedded in struct iucv_message as well.
Locking: local_bh_enable/local_bh_disable
int iucv_message_reject | ( | struct iucv_path * | path, |
struct iucv_message * | msg | ||
) |
int iucv_message_reply | ( | struct iucv_path * | path, |
struct iucv_message * | msg, | ||
u8 | flags, | ||
void * | reply, | ||
size_t | size | ||
) |
iucv_message_reply : address of iucv path structure : address of iucv msg structure : how the reply is sent (IUCV_IPRMDATA, IUCV_IPPRTY, IUCV_IPBUFLST) : address of data buffer or address of struct iucv_array : length of reply data buffer
This function responds to the two-way messages that you receive. You must identify completely the message to which you wish to reply. ie, pathid, msgid, and trgcls. Prmmsg signifies the data is moved into the parameter list.
int iucv_message_send | ( | struct iucv_path * | path, |
struct iucv_message * | msg, | ||
u8 | flags, | ||
u32 | srccls, | ||
void * | buffer, | ||
size_t | size | ||
) |
iucv_message_send : address of iucv path structure : address of iucv msg structure : how the message is sent (IUCV_IPRMDATA, IUCV_IPPRTY, IUCV_IPBUFLST) : source class of message : address of data buffer or address of struct iucv_array : length of send buffer
This function transmits data to another application. Data to be transmitted is in a buffer and this is a one-way message and the receiver will not reply to the message.
Locking: local_bh_enable/local_bh_disable
int iucv_message_send2way | ( | struct iucv_path * | path, |
struct iucv_message * | msg, | ||
u8 | flags, | ||
u32 | srccls, | ||
void * | buffer, | ||
size_t | size, | ||
void * | answer, | ||
size_t | asize, | ||
size_t * | residual | ||
) |
iucv_message_send2way : address of iucv path structure : address of iucv msg structure : how the message is sent and the reply is received (IUCV_IPRMDATA, IUCV_IPBUFLST, IUCV_IPPRTY, IUCV_ANSLST) : source class of message : address of data buffer or address of struct iucv_array : length of send buffer : address of answer buffer or address of struct iucv_array : size of reply buffer
This function transmits data to another application. Data to be transmitted is in a buffer. The receiver of the send is expected to reply to the message and a buffer is provided into which IUCV moves the reply to this message.
int iucv_register | ( | struct iucv_handler * | handler, |
int | smp | ||
) |
void iucv_unregister | ( | struct iucv_handler * | handle, |
int | smp | ||
) |
iucv_unregister : address of iucv handler structure : != 0 indicates that the handler can deal with out of order messages
Unregister driver from IUCV.
struct iucv_interface iucv_if |