NCR5830: switch to ->show_info()
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 31 Mar 2013 05:15:54 +0000 (01:15 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 9 Apr 2013 18:13:17 +0000 (14:13 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
13 files changed:
drivers/scsi/NCR5380.c
drivers/scsi/NCR5380.h
drivers/scsi/arm/cumana_1.c
drivers/scsi/arm/oak.c
drivers/scsi/dtc.c
drivers/scsi/dtc.h
drivers/scsi/g_NCR5380.c
drivers/scsi/mac_scsi.c
drivers/scsi/mac_scsi.h
drivers/scsi/pas16.c
drivers/scsi/pas16.h
drivers/scsi/t128.c
drivers/scsi/t128.h

index 450353e04dde8b6ed03ad594b57f65705790bd48..1e9d6ad9302b735cf2d124c2c41f053ef4d9f12a 100644 (file)
@@ -695,33 +695,35 @@ static void NCR5380_print_status(struct Scsi_Host *instance)
  * Return the number of bytes read from or written
  */
 
+static int __maybe_unused NCR5380_write_info(struct Scsi_Host *instance,
+       char *buffer, int length)
+{
+#ifdef DTC_PUBLIC_RELEASE
+       dtc_wmaxi = dtc_maxi = 0;
+#endif
+#ifdef PAS16_PUBLIC_RELEASE
+       pas_wmaxi = pas_maxi = 0;
+#endif
+       return (-ENOSYS);       /* Currently this is a no-op */
+}
+
 #undef SPRINTF
-#define SPRINTF(args...) do { if(pos < buffer + length-80) pos += sprintf(pos, ## args); } while(0)
+#define SPRINTF(args...) seq_printf(m, ## args)
 static
-char *lprint_Scsi_Cmnd(Scsi_Cmnd * cmd, char *pos, char *buffer, int length);
+void lprint_Scsi_Cmnd(Scsi_Cmnd * cmd, struct seq_file *m);
 static
-char *lprint_command(unsigned char *cmd, char *pos, char *buffer, int len);
+void lprint_command(unsigned char *cmd, struct seq_file *m);
 static
-char *lprint_opcode(int opcode, char *pos, char *buffer, int length);
+void lprint_opcode(int opcode, struct seq_file *m);
 
-static int __maybe_unused NCR5380_proc_info(struct Scsi_Host *instance,
-       char *buffer, char **start, off_t offset, int length, int inout)
+static int __maybe_unused NCR5380_show_info(struct seq_file *m,
+       struct Scsi_Host *instance)
 {
-       char *pos = buffer;
        struct NCR5380_hostdata *hostdata;
        Scsi_Cmnd *ptr;
 
        hostdata = (struct NCR5380_hostdata *) instance->hostdata;
 
-       if (inout) {            /* Has data been written to the file ? */
-#ifdef DTC_PUBLIC_RELEASE
-               dtc_wmaxi = dtc_maxi = 0;
-#endif
-#ifdef PAS16_PUBLIC_RELEASE
-               pas_wmaxi = pas_maxi = 0;
-#endif
-               return (-ENOSYS);       /* Currently this is a no-op */
-       }
        SPRINTF("NCR5380 core release=%d.   ", NCR5380_PUBLIC_RELEASE);
        if (((struct NCR5380_hostdata *) instance->hostdata)->flags & FLAG_NCR53C400)
                SPRINTF("ncr53c400 release=%d.  ", NCR53C400_PUBLIC_RELEASE);
@@ -755,46 +757,37 @@ static int __maybe_unused NCR5380_proc_info(struct Scsi_Host *instance,
        if (!hostdata->connected)
                SPRINTF("scsi%d: no currently connected command\n", instance->host_no);
        else
-               pos = lprint_Scsi_Cmnd((Scsi_Cmnd *) hostdata->connected, pos, buffer, length);
+               lprint_Scsi_Cmnd((Scsi_Cmnd *) hostdata->connected, m);
        SPRINTF("scsi%d: issue_queue\n", instance->host_no);
        for (ptr = (Scsi_Cmnd *) hostdata->issue_queue; ptr; ptr = (Scsi_Cmnd *) ptr->host_scribble)
-               pos = lprint_Scsi_Cmnd(ptr, pos, buffer, length);
+               lprint_Scsi_Cmnd(ptr, m);
 
        SPRINTF("scsi%d: disconnected_queue\n", instance->host_no);
        for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; ptr = (Scsi_Cmnd *) ptr->host_scribble)
-               pos = lprint_Scsi_Cmnd(ptr, pos, buffer, length);
+               lprint_Scsi_Cmnd(ptr, m);
        spin_unlock_irq(instance->host_lock);
-       
-       *start = buffer;
-       if (pos - buffer < offset)
-               return 0;
-       else if (pos - buffer - offset < length)
-               return pos - buffer - offset;
-       return length;
+       return 0;
 }
 
-static char *lprint_Scsi_Cmnd(Scsi_Cmnd * cmd, char *pos, char *buffer, int length)
+static void lprint_Scsi_Cmnd(Scsi_Cmnd * cmd, struct seq_file *m)
 {
        SPRINTF("scsi%d : destination target %d, lun %d\n", cmd->device->host->host_no, cmd->device->id, cmd->device->lun);
        SPRINTF("        command = ");
-       pos = lprint_command(cmd->cmnd, pos, buffer, length);
-       return (pos);
+       lprint_command(cmd->cmnd, m);
 }
 
-static char *lprint_command(unsigned char *command, char *pos, char *buffer, int length)
+static void lprint_command(unsigned char *command, struct seq_file *m)
 {
        int i, s;
-       pos = lprint_opcode(command[0], pos, buffer, length);
+       lprint_opcode(command[0], m);
        for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i)
                SPRINTF("%02x ", command[i]);
        SPRINTF("\n");
-       return (pos);
 }
 
-static char *lprint_opcode(int opcode, char *pos, char *buffer, int length)
+static void lprint_opcode(int opcode, struct seq_file *m)
 {
        SPRINTF("%2d (0x%02x)", opcode, opcode);
-       return (pos);
 }
 
 
index fd40a32b1f6f2d3690ac5d63c361cb9ece6a2120..14964d0a0e9dabc2bde55a7e6c8c54fb605bf3d2 100644 (file)
@@ -314,8 +314,10 @@ static void NCR5380_print(struct Scsi_Host *instance);
 static int NCR5380_abort(Scsi_Cmnd * cmd);
 static int NCR5380_bus_reset(Scsi_Cmnd * cmd);
 static int NCR5380_queue_command(struct Scsi_Host *, struct scsi_cmnd *);
-static int __maybe_unused NCR5380_proc_info(struct Scsi_Host *instance,
-       char *buffer, char **start, off_t offset, int length, int inout);
+static int __maybe_unused NCR5380_show_info(struct seq_file *,
+       struct Scsi_Host *);
+static int __maybe_unused NCR5380_write_info(struct Scsi_Host *instance,
+       char *buffer, int length);
 
 static void NCR5380_reselect(struct Scsi_Host *instance);
 static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd * cmd, int tag);
index c93938b246d59c29ec2414b05c1749b216b5b128..b679778376c5f62c6d3a2a83c01beb468fa1a849 100644 (file)
@@ -30,7 +30,6 @@
 #define NCR5380_write(reg, value)      cumanascsi_write(_instance, reg, value)
 #define NCR5380_intr                   cumanascsi_intr
 #define NCR5380_queue_command          cumanascsi_queue_command
-#define NCR5380_proc_info              cumanascsi_proc_info
 
 #define NCR5380_implementation_fields  \
        unsigned ctrl;                  \
index 48facdc18002d6e7a2e9eb27e30bfa79807d5eec..4266eef8aca12256b469b0983e39c652ac43f7c0 100644 (file)
@@ -31,7 +31,8 @@
 #define NCR5380_write(reg, value)      writeb(value, _base + ((reg) << 2))
 #define NCR5380_intr                   oakscsi_intr
 #define NCR5380_queue_command          oakscsi_queue_command
-#define NCR5380_proc_info              oakscsi_proc_info
+#define NCR5380_show_info              oakscsi_show_info
+#define NCR5380_write_info             oakscsi_write_info
 
 #define NCR5380_implementation_fields  \
        void __iomem *base
@@ -115,7 +116,8 @@ printk("reading %p len %d\n", addr, len);
 
 static struct scsi_host_template oakscsi_template = {
        .module                 = THIS_MODULE,
-       .proc_info              = oakscsi_proc_info,
+       .show_info              = oakscsi_show_info,
+       .write_info             = oakscsi_write_info,
        .name                   = "Oak 16-bit SCSI",
        .info                   = oakscsi_info,
        .queuecommand           = oakscsi_queue_command,
index 4b11bb04f5c46c51574bcbae994184f3ce19060c..d01f01604140a9204b8273eb220fe21d2d0ff2cf 100644 (file)
@@ -216,7 +216,8 @@ static int __init dtc_detect(struct scsi_host_template * tpnt)
        int sig, count;
 
        tpnt->proc_name = "dtc3x80";
-       tpnt->proc_info = &dtc_proc_info;
+       tpnt->show_info = dtc_show_info;
+       tpnt->write_info = dtc_write_info;
 
        for (count = 0; current_override < NO_OVERRIDES; ++current_override) {
                addr = 0;
index cdc621204b667bb4dd317fd09b137afb6950c79b..92d7cfc3f4fcd0c706c412438f39b3a58cecae24 100644 (file)
@@ -88,7 +88,8 @@ static int dtc_bus_reset(Scsi_Cmnd *);
 #define NCR5380_queue_command          dtc_queue_command
 #define NCR5380_abort                  dtc_abort
 #define NCR5380_bus_reset              dtc_bus_reset
-#define NCR5380_proc_info              dtc_proc_info 
+#define NCR5380_show_info              dtc_show_info 
+#define NCR5380_write_info             dtc_write_info 
 
 /* 15 12 11 10
    1001 1100 0000 0000 */
index 5041f925c19140eb901a48cfcb1ff7ed448c9146..5cec6c60ca22dd9df89f3ebb8f19ed78c781b0a9 100644 (file)
@@ -745,42 +745,36 @@ static inline int NCR5380_pwrite(struct Scsi_Host *instance, unsigned char *src,
  
 #include "NCR5380.c"
 
-#define PRINTP(x) len += sprintf(buffer+len, x)
+#define PRINTP(x) seq_printf(m, x)
 #define ANDP ,
 
-static int sprint_opcode(char *buffer, int len, int opcode)
+static void sprint_opcode(struct seq_file *m, int opcode)
 {
-       int start = len;
        PRINTP("0x%02x " ANDP opcode);
-       return len - start;
 }
 
-static int sprint_command(char *buffer, int len, unsigned char *command)
+static void sprint_command(struct seq_file *m, unsigned char *command)
 {
-       int i, s, start = len;
-       len += sprint_opcode(buffer, len, command[0]);
+       int i, s;
+       sprint_opcode(m, command[0]);
        for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i)
                PRINTP("%02x " ANDP command[i]);
        PRINTP("\n");
-       return len - start;
 }
 
 /**
  *     sprintf_Scsi_Cmnd       -       print a scsi command
- *     @buffer: buffr to print into
- *     @len: buffer length
+ *     @m: seq_fil to print into
  *     @cmd: SCSI command block
  *     
  *     Print out the target and command data in hex
  */
 
-static int sprint_Scsi_Cmnd(char *buffer, int len, Scsi_Cmnd * cmd)
+static void sprint_Scsi_Cmnd(struct seq_file *m, Scsi_Cmnd * cmd)
 {
-       int start = len;
        PRINTP("host number %d destination target %d, lun %d\n" ANDP cmd->device->host->host_no ANDP cmd->device->id ANDP cmd->device->lun);
        PRINTP("        command = ");
-       len += sprint_command(buffer, len, cmd->cmnd);
-       return len - start;
+       sprint_command(m, cmd->cmnd);
 }
 
 /**
@@ -800,9 +794,8 @@ static int sprint_Scsi_Cmnd(char *buffer, int len, Scsi_Cmnd * cmd)
  *     Locks: global cli/lock for queue walk
  */
  
-static int generic_NCR5380_proc_info(struct Scsi_Host *scsi_ptr, char *buffer, char **start, off_t offset, int length, int inout)
+static int generic_NCR5380_show_info(struct seq_file *m, struct Scsi_Host *scsi_ptr)
 {
-       int len = 0;
        NCR5380_local_declare();
        unsigned long flags;
        unsigned char status;
@@ -853,16 +846,16 @@ static int generic_NCR5380_proc_info(struct Scsi_Host *scsi_ptr, char *buffer, c
                PRINTP("  T:%d %s " ANDP dev->id ANDP scsi_device_type(dev->type));
                for (i = 0; i < 8; i++)
                        if (dev->vendor[i] >= 0x20)
-                               *(buffer + (len++)) = dev->vendor[i];
-               *(buffer + (len++)) = ' ';
+                               seq_putc(m, dev->vendor[i]);
+               seq_putc(m, ' ');
                for (i = 0; i < 16; i++)
                        if (dev->model[i] >= 0x20)
-                               *(buffer + (len++)) = dev->model[i];
-               *(buffer + (len++)) = ' ';
+                               seq_putc(m, dev->model[i]);
+               seq_putc(m, ' ');
                for (i = 0; i < 4; i++)
                        if (dev->rev[i] >= 0x20)
-                               *(buffer + (len++)) = dev->rev[i];
-               *(buffer + (len++)) = ' ';
+                               seq_putc(m, dev->rev[i]);
+               seq_putc(m, ' ');
 
                PRINTP("\n%10ld kb read    in %5ld secs" ANDP br / 1024 ANDP tr);
                if (tr)
@@ -886,32 +879,28 @@ static int generic_NCR5380_proc_info(struct Scsi_Host *scsi_ptr, char *buffer, c
        if (!hostdata->connected) {
                PRINTP("No currently connected command\n");
        } else {
-               len += sprint_Scsi_Cmnd(buffer, len, (Scsi_Cmnd *) hostdata->connected);
+               sprint_Scsi_Cmnd(m, (Scsi_Cmnd *) hostdata->connected);
        }
 
        PRINTP("issue_queue\n");
 
        for (ptr = (Scsi_Cmnd *) hostdata->issue_queue; ptr; ptr = (Scsi_Cmnd *) ptr->host_scribble)
-               len += sprint_Scsi_Cmnd(buffer, len, ptr);
+               sprint_Scsi_Cmnd(m, ptr);
 
        PRINTP("disconnected_queue\n");
 
        for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; ptr = (Scsi_Cmnd *) ptr->host_scribble)
-               len += sprint_Scsi_Cmnd(buffer, len, ptr);
+               sprint_Scsi_Cmnd(m, ptr);
 
-       *start = buffer + offset;
-       len -= offset;
-       if (len > length)
-               len = length;
        spin_unlock_irqrestore(scsi_ptr->host_lock, flags);
-       return len;
+       return 0;
 }
 
 #undef PRINTP
 #undef ANDP
 
 static struct scsi_host_template driver_template = {
-       .proc_info              = generic_NCR5380_proc_info,
+       .show_info              = generic_NCR5380_show_info,
        .name                   = "Generic NCR5380/NCR53C400 Scsi Driver",
        .detect                 = generic_NCR5380_detect,
        .release                = generic_NCR5380_release_resources,
index 24828b54773a627a2c866d008cabfbc06aa3b534..858075723c87fc2e010f582385126529ac168fff 100644 (file)
@@ -561,7 +561,8 @@ static int macscsi_pwrite (struct Scsi_Host *instance,
 
 static struct scsi_host_template driver_template = {
        .proc_name                      = "Mac5380",
-       .proc_info                      = macscsi_proc_info,
+       .show_info                      = macscsi_show_info,
+       .write_info                     = macscsi_write_info,
        .name                           = "Macintosh NCR5380 SCSI",
        .detect                         = macscsi_detect,
        .release                        = macscsi_release,
index d26e331c6c12e3d6e37790e92ed124a74b34309d..7dc62fce1c4c6739ec1f21faa59be2aebf55f8ee 100644 (file)
@@ -72,7 +72,8 @@
 #define NCR5380_queue_command macscsi_queue_command
 #define NCR5380_abort macscsi_abort
 #define NCR5380_bus_reset macscsi_bus_reset
-#define NCR5380_proc_info macscsi_proc_info
+#define NCR5380_show_info macscsi_show_info
+#define NCR5380_write_info macscsi_write_info
 
 #define BOARD_NORMAL   0
 #define BOARD_NCR53C400        1
index 2f72c9807b12181684d1e84fa40998281c4e3523..62f1a6031765d33755cbf5f9f0987bddc5760a5d 100644 (file)
@@ -388,7 +388,8 @@ int __init pas16_detect(struct scsi_host_template * tpnt)
     int  count;
 
     tpnt->proc_name = "pas16";
-    tpnt->proc_info = &pas16_proc_info;
+    tpnt->show_info = pas16_show_info;
+    tpnt->write_info = pas16_write_info;
 
     if (pas16_addr != 0) {
        overrides[0].io_port = pas16_addr;
index a04281cace2e318e8c1896f7d30b818e41e24000..3721342835e9a1b6ebce6e5906747039c129bc48 100644 (file)
@@ -163,7 +163,8 @@ static int pas16_bus_reset(Scsi_Cmnd *);
 #define NCR5380_queue_command pas16_queue_command
 #define NCR5380_abort pas16_abort
 #define NCR5380_bus_reset pas16_bus_reset
-#define NCR5380_proc_info pas16_proc_info
+#define NCR5380_show_info pas16_show_info
+#define NCR5380_write_info pas16_write_info
 
 /* 15 14 12 10 7 5 3 
    1101 0100 1010 1000 */
index d672d97fb84adcee58886164c72579615ac65c10..f1e4b4148c75ced73820cba96a325ba2ffdb5d8d 100644 (file)
@@ -201,7 +201,8 @@ int __init t128_detect(struct scsi_host_template * tpnt){
     int sig, count;
 
     tpnt->proc_name = "t128";
-    tpnt->proc_info = &t128_proc_info;
+    tpnt->show_info = t128_show_info;
+    tpnt->write_info = t128_write_info;
 
     for (count = 0; current_override < NO_OVERRIDES; ++current_override) {
        base = 0;
index ada1115079c9e6890b00108e83f70f15061058a0..1df82c28e56d6af8b1a4558bee1144e03299f43f 100644 (file)
@@ -140,7 +140,8 @@ static int t128_bus_reset(struct scsi_cmnd *);
 #define NCR5380_queue_command t128_queue_command
 #define NCR5380_abort t128_abort
 #define NCR5380_bus_reset t128_bus_reset
-#define NCR5380_proc_info t128_proc_info
+#define NCR5380_show_info t128_show_info
+#define NCR5380_write_info t128_write_info
 
 /* 15 14 12 10 7 5 3
    1101 0100 1010 1000 */