iucv: introduce loadable iucv interface

This patch adds a symbol to dynamically load iucv functions.

Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Frank Blaschka
2011-08-08 01:33:49 +00:00
committed by David S. Miller
parent 99558ea93c
commit 96d042a68b
2 changed files with 58 additions and 1 deletions
+35 -1
View File
@@ -120,7 +120,7 @@ struct iucv_message {
u32 reply_size;
u8 rmmsg[8];
u8 flags;
};
} __packed;
/*
* struct iucv_handler
@@ -459,3 +459,37 @@ int __iucv_message_send(struct iucv_path *path, struct iucv_message *msg,
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);
struct iucv_interface {
int (*message_receive)(struct iucv_path *path, struct iucv_message *msg,
u8 flags, void *buffer, size_t size, size_t *residual);
int (*__message_receive)(struct iucv_path *path,
struct iucv_message *msg, u8 flags, void *buffer, size_t size,
size_t *residual);
int (*message_reply)(struct iucv_path *path, struct iucv_message *msg,
u8 flags, void *reply, size_t size);
int (*message_reject)(struct iucv_path *path, struct iucv_message *msg);
int (*message_send)(struct iucv_path *path, struct iucv_message *msg,
u8 flags, u32 srccls, void *buffer, size_t size);
int (*__message_send)(struct iucv_path *path, struct iucv_message *msg,
u8 flags, u32 srccls, void *buffer, size_t size);
int (*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);
int (*message_purge)(struct iucv_path *path, struct iucv_message *msg,
u32 srccls);
int (*path_accept)(struct iucv_path *path, struct iucv_handler *handler,
u8 userdata[16], void *private);
int (*path_connect)(struct iucv_path *path,
struct iucv_handler *handler,
u8 userid[8], u8 system[8], u8 userdata[16], void *private);
int (*path_quiesce)(struct iucv_path *path, u8 userdata[16]);
int (*path_resume)(struct iucv_path *path, u8 userdata[16]);
int (*path_sever)(struct iucv_path *path, u8 userdata[16]);
int (*iucv_register)(struct iucv_handler *handler, int smp);
void (*iucv_unregister)(struct iucv_handler *handler, int smp);
struct bus_type *bus;
struct device *root;
};
extern struct iucv_interface iucv_if;