[PATCH 3/7] [S390]: Adapt monreader driver to new IUCV API

2007-02-05 Thread Frank Pavlic
From: Martin Schwidefsky [EMAIL PROTECTED]

Adapt monreader character device driver to new IUCV API

Signed-off-by: Frank Pavlic [EMAIL PROTECTED]
Signed-off-by: Martin Schwidefsky [EMAIL PROTECTED]
---

drivers/s390/char/monreader.c |  218 +++--
 1 files changed, 101 insertions(+), 117 deletions(-)

diff --git a/drivers/s390/char/monreader.c b/drivers/s390/char/monreader.c
index a138b15..3a1a958 100644
--- a/drivers/s390/char/monreader.c
+++ b/drivers/s390/char/monreader.c
@@ -3,7 +3,7 @@
  *
  * Character device driver for reading z/VM *MONITOR service records.
  *
- * Copyright (C) 2004 IBM Corporation, IBM Deutschland Entwicklung GmbH.
+ * Copyright 2004 IBM Corporation, IBM Deutschland Entwicklung GmbH.
  *
  * Author: Gerald Schaefer [EMAIL PROTECTED]
  */
@@ -22,7 +22,7 @@ #include asm/uaccess.h
 #include asm/ebcdic.h
 #include asm/extmem.h
 #include linux/poll.h
-#include ../net/iucv.h
+#include net/iucv/iucv.h
 
 
 //#define MON_DEBUG/* Debug messages on/off */
@@ -50,14 +50,13 @@ static char mon_dcss_name[9] = MONDCSS\
 struct mon_msg {
u32 pos;
u32 mca_offset;
-   iucv_MessagePending local_eib;
+   struct iucv_message msg;
char msglim_reached;
char replied_msglim;
 };
 
 struct mon_private {
-   u16 pathid;
-   iucv_handle_t iucv_handle;
+   struct iucv_path *path;
struct mon_msg *msg_array[MON_MSGLIM];
unsigned int   write_index;
unsigned int   read_index;
@@ -75,8 +74,6 @@ static unsigned long mon_dcss_end;
 static DECLARE_WAIT_QUEUE_HEAD(mon_read_wait_queue);
 static DECLARE_WAIT_QUEUE_HEAD(mon_conn_wait_queue);
 
-static u8 iucv_host[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-
 static u8 user_data_connect[16] = {
/* Version code, must be 0x01 for shared mode */
0x01,
@@ -100,8 +97,7 @@ static u8 user_data_sever[16] = {
  * Create the 8 bytes EBCDIC DCSS segment name from
  * an ASCII name, incl. padding
  */
-static inline void
-dcss_mkname(char *ascii_name, char *ebcdic_name)
+static inline void dcss_mkname(char *ascii_name, char *ebcdic_name)
 {
int i;
 
@@ -119,8 +115,7 @@ dcss_mkname(char *ascii_name, char *ebcd
  * print appropriate error message for segment_load()/segment_type()
  * return code
  */
-static void
-mon_segment_warn(int rc, char* seg_name)
+static void mon_segment_warn(int rc, char* seg_name)
 {
switch (rc) {
case -ENOENT:
@@ -166,44 +161,37 @@ mon_segment_warn(int rc, char* seg_name)
}
 }
 
-static inline unsigned long
-mon_mca_start(struct mon_msg *monmsg)
+static inline unsigned long mon_mca_start(struct mon_msg *monmsg)
 {
-   return monmsg-local_eib.ln1msg1.iprmmsg1_u32;
+   return *(u32 *) monmsg-msg.rmmsg;
 }
 
-static inline unsigned long
-mon_mca_end(struct mon_msg *monmsg)
+static inline unsigned long mon_mca_end(struct mon_msg *monmsg)
 {
-   return monmsg-local_eib.ln1msg2.ipbfln1f;
+   return *(u32 *) monmsg-msg.rmmsg[4];
 }
 
-static inline u8
-mon_mca_type(struct mon_msg *monmsg, u8 index)
+static inline u8 mon_mca_type(struct mon_msg *monmsg, u8 index)
 {
return *((u8 *) mon_mca_start(monmsg) + monmsg-mca_offset + index);
 }
 
-static inline u32
-mon_mca_size(struct mon_msg *monmsg)
+static inline u32 mon_mca_size(struct mon_msg *monmsg)
 {
return mon_mca_end(monmsg) - mon_mca_start(monmsg) + 1;
 }
 
-static inline u32
-mon_rec_start(struct mon_msg *monmsg)
+static inline u32 mon_rec_start(struct mon_msg *monmsg)
 {
return *((u32 *) (mon_mca_start(monmsg) + monmsg-mca_offset + 4));
 }
 
-static inline u32
-mon_rec_end(struct mon_msg *monmsg)
+static inline u32 mon_rec_end(struct mon_msg *monmsg)
 {
return *((u32 *) (mon_mca_start(monmsg) + monmsg-mca_offset + 8));
 }
 
-static inline int
-mon_check_mca(struct mon_msg *monmsg)
+static inline int mon_check_mca(struct mon_msg *monmsg)
 {
if ((mon_rec_end(monmsg) = mon_rec_start(monmsg)) ||
(mon_rec_start(monmsg)  mon_dcss_start) ||
@@ -221,20 +209,17 @@ mon_check_mca(struct mon_msg *monmsg)
return 0;
 }
 
-static inline int
-mon_send_reply(struct mon_msg *monmsg, struct mon_private *monpriv)
+static inline int mon_send_reply(struct mon_msg *monmsg,
+struct mon_private *monpriv)
 {
-   u8 prmmsg[8];
int rc;
 
P_DEBUG(read, REPLY: pathid = 0x%04X, msgid = 0x%08X, trgcls = 
0x%08X\n\n,
-   monmsg-local_eib.ippathid, monmsg-local_eib.ipmsgid,
-   monmsg-local_eib.iptrgcls);
-   rc = iucv_reply_prmmsg(monmsg-local_eib.ippathid,
-   monmsg-local_eib.ipmsgid,
-   monmsg-local_eib.iptrgcls,
-   0, prmmsg);
+   monpriv-path-pathid, monmsg-msg.id, monmsg-msg.class);
+
+   rc = iucv_message_reply(monpriv-path, monmsg-msg,
+   

[PATCH 3/7] [S390]: Adapt monreader driver to new IUCV API

2007-02-02 Thread Frank Pavlic
From: Martin Schwidefsky [EMAIL PROTECTED]

Adapt monreader character device driver to new IUCV API

Signed-off-by: Frank Pavlic [EMAIL PROTECTED]
Signed-off-by: Martin Schwidefsky [EMAIL PROTECTED]
---

drivers/s390/char/monreader.c |  218 +++--
 1 files changed, 101 insertions(+), 117 deletions(-)

diff --git a/drivers/s390/char/monreader.c b/drivers/s390/char/monreader.c
index a138b15..3a1a958 100644
--- a/drivers/s390/char/monreader.c
+++ b/drivers/s390/char/monreader.c
@@ -3,7 +3,7 @@
  *
  * Character device driver for reading z/VM *MONITOR service records.
  *
- * Copyright (C) 2004 IBM Corporation, IBM Deutschland Entwicklung GmbH.
+ * Copyright 2004 IBM Corporation, IBM Deutschland Entwicklung GmbH.
  *
  * Author: Gerald Schaefer [EMAIL PROTECTED]
  */
@@ -22,7 +22,7 @@ #include asm/uaccess.h
 #include asm/ebcdic.h
 #include asm/extmem.h
 #include linux/poll.h
-#include ../net/iucv.h
+#include net/iucv/iucv.h
 
 
 //#define MON_DEBUG/* Debug messages on/off */
@@ -50,14 +50,13 @@ static char mon_dcss_name[9] = MONDCSS\
 struct mon_msg {
u32 pos;
u32 mca_offset;
-   iucv_MessagePending local_eib;
+   struct iucv_message msg;
char msglim_reached;
char replied_msglim;
 };
 
 struct mon_private {
-   u16 pathid;
-   iucv_handle_t iucv_handle;
+   struct iucv_path *path;
struct mon_msg *msg_array[MON_MSGLIM];
unsigned int   write_index;
unsigned int   read_index;
@@ -75,8 +74,6 @@ static unsigned long mon_dcss_end;
 static DECLARE_WAIT_QUEUE_HEAD(mon_read_wait_queue);
 static DECLARE_WAIT_QUEUE_HEAD(mon_conn_wait_queue);
 
-static u8 iucv_host[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-
 static u8 user_data_connect[16] = {
/* Version code, must be 0x01 for shared mode */
0x01,
@@ -100,8 +97,7 @@ static u8 user_data_sever[16] = {
  * Create the 8 bytes EBCDIC DCSS segment name from
  * an ASCII name, incl. padding
  */
-static inline void
-dcss_mkname(char *ascii_name, char *ebcdic_name)
+static inline void dcss_mkname(char *ascii_name, char *ebcdic_name)
 {
int i;
 
@@ -119,8 +115,7 @@ dcss_mkname(char *ascii_name, char *ebcd
  * print appropriate error message for segment_load()/segment_type()
  * return code
  */
-static void
-mon_segment_warn(int rc, char* seg_name)
+static void mon_segment_warn(int rc, char* seg_name)
 {
switch (rc) {
case -ENOENT:
@@ -166,44 +161,37 @@ mon_segment_warn(int rc, char* seg_name)
}
 }
 
-static inline unsigned long
-mon_mca_start(struct mon_msg *monmsg)
+static inline unsigned long mon_mca_start(struct mon_msg *monmsg)
 {
-   return monmsg-local_eib.ln1msg1.iprmmsg1_u32;
+   return *(u32 *) monmsg-msg.rmmsg;
 }
 
-static inline unsigned long
-mon_mca_end(struct mon_msg *monmsg)
+static inline unsigned long mon_mca_end(struct mon_msg *monmsg)
 {
-   return monmsg-local_eib.ln1msg2.ipbfln1f;
+   return *(u32 *) monmsg-msg.rmmsg[4];
 }
 
-static inline u8
-mon_mca_type(struct mon_msg *monmsg, u8 index)
+static inline u8 mon_mca_type(struct mon_msg *monmsg, u8 index)
 {
return *((u8 *) mon_mca_start(monmsg) + monmsg-mca_offset + index);
 }
 
-static inline u32
-mon_mca_size(struct mon_msg *monmsg)
+static inline u32 mon_mca_size(struct mon_msg *monmsg)
 {
return mon_mca_end(monmsg) - mon_mca_start(monmsg) + 1;
 }
 
-static inline u32
-mon_rec_start(struct mon_msg *monmsg)
+static inline u32 mon_rec_start(struct mon_msg *monmsg)
 {
return *((u32 *) (mon_mca_start(monmsg) + monmsg-mca_offset + 4));
 }
 
-static inline u32
-mon_rec_end(struct mon_msg *monmsg)
+static inline u32 mon_rec_end(struct mon_msg *monmsg)
 {
return *((u32 *) (mon_mca_start(monmsg) + monmsg-mca_offset + 8));
 }
 
-static inline int
-mon_check_mca(struct mon_msg *monmsg)
+static inline int mon_check_mca(struct mon_msg *monmsg)
 {
if ((mon_rec_end(monmsg) = mon_rec_start(monmsg)) ||
(mon_rec_start(monmsg)  mon_dcss_start) ||
@@ -221,20 +209,17 @@ mon_check_mca(struct mon_msg *monmsg)
return 0;
 }
 
-static inline int
-mon_send_reply(struct mon_msg *monmsg, struct mon_private *monpriv)
+static inline int mon_send_reply(struct mon_msg *monmsg,
+struct mon_private *monpriv)
 {
-   u8 prmmsg[8];
int rc;
 
P_DEBUG(read, REPLY: pathid = 0x%04X, msgid = 0x%08X, trgcls = 
0x%08X\n\n,
-   monmsg-local_eib.ippathid, monmsg-local_eib.ipmsgid,
-   monmsg-local_eib.iptrgcls);
-   rc = iucv_reply_prmmsg(monmsg-local_eib.ippathid,
-   monmsg-local_eib.ipmsgid,
-   monmsg-local_eib.iptrgcls,
-   0, prmmsg);
+   monpriv-path-pathid, monmsg-msg.id, monmsg-msg.class);
+
+   rc = iucv_message_reply(monpriv-path, monmsg-msg,
+