From: frank.blaschka@de.ibm.com
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, linux-s390@vger.kernel.org
Subject: [patch 03/13] [PATCH] iucv: introduce loadable iucv interface
Date: Mon, 08 Aug 2011 13:33:49 +0200 [thread overview]
Message-ID: <20110808113515.598188086@de.ibm.com> (raw)
In-Reply-To: 20110808113346.516293249@de.ibm.com
[-- Attachment #1: net1117-iucv-introduce-loadable-iucv-interface.patch --]
[-- Type: text/plain, Size: 3455 bytes --]
From: Frank Blaschka <frank.blaschka@de.ibm.com>
This patch adds a symbol to dynamically load iucv functions.
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
---
include/net/iucv/iucv.h | 36 +++++++++++++++++++++++++++++++++++-
net/iucv/iucv.c | 23 +++++++++++++++++++++++
2 files changed, 58 insertions(+), 1 deletion(-)
--- a/include/net/iucv/iucv.h
+++ b/include/net/iucv/iucv.h
@@ -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
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;
--- a/net/iucv/iucv.c
+++ b/net/iucv/iucv.c
@@ -1974,6 +1974,27 @@ out:
return rc;
}
+struct iucv_interface iucv_if = {
+ .message_receive = iucv_message_receive,
+ .__message_receive = __iucv_message_receive,
+ .message_reply = iucv_message_reply,
+ .message_reject = iucv_message_reject,
+ .message_send = iucv_message_send,
+ .__message_send = __iucv_message_send,
+ .message_send2way = iucv_message_send2way,
+ .message_purge = iucv_message_purge,
+ .path_accept = iucv_path_accept,
+ .path_connect = iucv_path_connect,
+ .path_quiesce = iucv_path_quiesce,
+ .path_resume = iucv_path_resume,
+ .path_sever = iucv_path_sever,
+ .iucv_register = iucv_register,
+ .iucv_unregister = iucv_unregister,
+ .bus = NULL,
+ .root = NULL,
+};
+EXPORT_SYMBOL(iucv_if);
+
/**
* iucv_init
*
@@ -2038,6 +2059,8 @@ static int __init iucv_init(void)
rc = bus_register(&iucv_bus);
if (rc)
goto out_reboot;
+ iucv_if.root = iucv_root;
+ iucv_if.bus = &iucv_bus;
return 0;
out_reboot:
next prev parent reply other threads:[~2011-08-08 11:33 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-08 11:33 [patch 00/13] s390: network patches for net-next frank.blaschka
2011-08-08 11:33 ` [patch 01/13] [PATCH] qeth: l3 ipv6 vlan not working on shared OSA chpid frank.blaschka
2011-08-08 11:33 ` [patch 02/13] [PATCH] qeth: do not apply priority queuing to HiperSockets frank.blaschka
2011-08-08 11:33 ` frank.blaschka [this message]
2011-08-08 11:33 ` [patch 04/13] [PATCH] iucv: kernel option for z/VM IUCV and HiperSockets frank.blaschka
2011-08-08 11:33 ` [patch 05/13] [PATCH] af_iucv: use loadable iucv interface frank.blaschka
2011-08-08 11:33 ` [patch 06/13] [PATCH] af_iucv: cleanup - use iucv_sk(sk) early frank.blaschka
2011-08-08 11:33 ` [patch 07/13] [PATCH] if_ether: add new Ethernet Protocol ID for af_iucv frank.blaschka
2011-08-08 11:33 ` [patch 08/13] [PATCH] af_iucv: add HiperSockets transport frank.blaschka
2011-08-08 11:33 ` [patch 09/13] [PATCH] qdio: support asynchronous delivery of storage blocks frank.blaschka
2011-08-08 11:33 ` [patch 10/13] [PATCH] qdio: support forced signal adapter indications frank.blaschka
2011-08-08 11:33 ` [patch 11/13] [PATCH] qeth: " frank.blaschka
2011-08-08 11:33 ` [patch 12/13] [PATCH] qeth: exploit asynchronous delivery of storage blocks frank.blaschka
2011-08-08 11:33 ` [patch 13/13] [PATCH] qeth: add support for af_iucv HiperSockets transport frank.blaschka
2011-08-13 8:10 ` [patch 00/13] s390: network patches for net-next David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110808113515.598188086@de.ibm.com \
--to=frank.blaschka@de.ibm.com \
--cc=davem@davemloft.net \
--cc=linux-s390@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.