Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
iucv.h File Reference
#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
 

Functions

struct iucv_array __attribute__ ((aligned(8)))
 Packet vector entry.
 
int iucv_register (struct iucv_handler *handler, int smp)
 
void iucv_unregister (struct iucv_handler *handle, int smp)
 
int iucv_path_quiesce (struct iucv_path *path, u8 userdata[16])
 
int iucv_path_resume (struct iucv_path *path, u8 userdata[16])
 
int iucv_path_sever (struct iucv_path *path, u8 userdata[16])
 
int iucv_message_purge (struct iucv_path *path, struct iucv_message *msg, u32 srccls)
 
int iucv_message_receive (struct iucv_path *path, struct iucv_message *msg, u8 flags, void *buffer, size_t size, size_t *residual)
 
int __iucv_message_receive (struct iucv_path *path, struct iucv_message *msg, u8 flags, void *buffer, size_t size, size_t *residual)
 
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)
 
int iucv_message_send (struct iucv_path *path, struct iucv_message *msg, u8 flags, u32 srccls, void *buffer, size_t size)
 
int __iucv_message_send (struct iucv_path *path, struct iucv_message *msg, u8 flags, u32 srccls, void *buffer, size_t size)
 
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)
 

Variables

u32 address
 
u32 length
 
struct bus_type iucv_bus
 
struct deviceiucv_root
 
struct iucv_path __attribute__
 
struct iucv_message __packed
 
struct iucv_interface iucv_if
 

Macro Definition Documentation

#define IUCV_IPANSLST   0x08

Definition at line 66 of file iucv.h.

#define IUCV_IPBUFLST   0x40

Definition at line 64 of file iucv.h.

#define IUCV_IPLOCAL   0x01

Definition at line 68 of file iucv.h.

#define IUCV_IPPRTY   0x20

Definition at line 65 of file iucv.h.

#define IUCV_IPQUSCE   0x40

Definition at line 63 of file iucv.h.

#define IUCV_IPRMDATA   0x80

Definition at line 62 of file iucv.h.

#define IUCV_IPSYNC   0x04

Definition at line 67 of file iucv.h.

Function Documentation

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.

Definition at line 9 of file extable.c.

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.

Returns the result from the CP IUCV call.

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.

Returns the result from the CP IUCV call.

int iucv_message_purge ( struct iucv_path path,
struct iucv_message msg,
u32  srccls 
)

iucv_message_purge : address of iucv path structure : address of iucv msg structure : source class of message

Cancels a message you have sent.

Returns the result from the CP IUCV call.

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

Returns the result from the CP IUCV call.

int iucv_message_reject ( struct iucv_path path,
struct iucv_message msg 
)

iucv_message_reject : address of iucv path structure : address of iucv msg structure

The reject function refuses a specified message. Between the time you are notified of a message and the time that you complete the message, the message may be rejected.

Returns the result from the CP IUCV call.

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.

Returns the result from the CP IUCV call.

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

Returns the result from the CP IUCV call.

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.

Returns the result from the CP IUCV call.

int iucv_path_quiesce ( struct iucv_path path,
u8  userdata[16] 
)

iucv_path_quiesce: : address of iucv path structure : 16 bytes of data reflected to the communication partner

This function temporarily suspends incoming messages on an IUCV path. You can later reactivate the path by invoking the iucv_resume function.

Returns the result from the CP IUCV call.

int iucv_path_resume ( struct iucv_path path,
u8  userdata[16] 
)

iucv_path_resume: : address of iucv path structure : 16 bytes of data reflected to the communication partner

This function resumes incoming messages on an IUCV path that has been stopped with iucv_path_quiesce.

Returns the result from the CP IUCV call.

int iucv_path_sever ( struct iucv_path path,
u8  userdata[16] 
)

iucv_path_sever : address of iucv path structure : 16 bytes of data reflected to the communication partner

This function terminates an IUCV path.

Returns the result from the CP IUCV call.

int iucv_register ( struct iucv_handler handler,
int  smp 
)

iucv_register: : address of iucv handler structure : != 0 indicates that the handler can deal with out of order messages

Registers a driver with IUCV.

Returns 0 on success, -ENOMEM if the memory allocation for the pathid table failed, or -EIO if IUCV_DECLARE_BUFFER failed on all cpus.

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.

Variable Documentation

Definition at line 81 of file iucv.h.

struct bus_type iucv_bus

Definition at line 105 of file iucv.c.

struct device* iucv_root

Definition at line 112 of file iucv.c.

u32 length

Definition at line 82 of file iucv.h.