Commit 9d4e5c54 authored by Al Viro's avatar Al Viro

fas216: switch to ->show_info()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 6b3a8bbf
...@@ -220,47 +220,21 @@ static const char *arxescsi_info(struct Scsi_Host *host) ...@@ -220,47 +220,21 @@ static const char *arxescsi_info(struct Scsi_Host *host)
return string; return string;
} }
/*
* Function: int arxescsi_proc_info(char *buffer, char **start, off_t offset,
* int length, int host_no, int inout)
* Purpose : Return information about the driver to a user process accessing
* the /proc filesystem.
* Params : buffer - a buffer to write information to
* start - a pointer into this buffer set by this routine to the start
* of the required information.
* offset - offset into information that we have read up to.
* length - length of buffer
* host_no - host number to return information for
* inout - 0 for reading, 1 for writing.
* Returns : length of data written to buffer.
*/
static int static int
arxescsi_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset, int length, arxescsi_show_info(struct seq_file *m, struct Scsi_Host *host)
int inout)
{ {
struct arxescsi_info *info; struct arxescsi_info *info;
char *p = buffer;
int pos;
info = (struct arxescsi_info *)host->hostdata; info = (struct arxescsi_info *)host->hostdata;
if (inout == 1)
return -EINVAL;
p += sprintf(p, "ARXE 16-bit SCSI driver v%s\n", VERSION);
p += fas216_print_host(&info->info, p);
p += fas216_print_stats(&info->info, p);
p += fas216_print_devices(&info->info, p);
*start = buffer + offset;
pos = p - buffer - offset;
if (pos > length)
pos = length;
return pos; seq_printf(m, "ARXE 16-bit SCSI driver v%s\n", VERSION);
fas216_print_host(&info->info, m);
fas216_print_stats(&info->info, m);
fas216_print_devices(&info->info, m);
return 0;
} }
static struct scsi_host_template arxescsi_template = { static struct scsi_host_template arxescsi_template = {
.proc_info = arxescsi_proc_info, .show_info = arxescsi_show_info,
.name = "ARXE SCSI card", .name = "ARXE SCSI card",
.info = arxescsi_info, .info = arxescsi_info,
.queuecommand = fas216_noqueue_command, .queuecommand = fas216_noqueue_command,
......
...@@ -337,50 +337,25 @@ cumanascsi_2_set_proc_info(struct Scsi_Host *host, char *buffer, int length) ...@@ -337,50 +337,25 @@ cumanascsi_2_set_proc_info(struct Scsi_Host *host, char *buffer, int length)
return ret; return ret;
} }
/* Prototype: int cumanascsi_2_proc_info(char *buffer, char **start, off_t offset, static int cumanascsi_2_show_info(struct seq_file *m, struct Scsi_Host *host)
* int length, int host_no, int inout)
* Purpose : Return information about the driver to a user process accessing
* the /proc filesystem.
* Params : buffer - a buffer to write information to
* start - a pointer into this buffer set by this routine to the start
* of the required information.
* offset - offset into information that we have read up to.
* length - length of buffer
* host_no - host number to return information for
* inout - 0 for reading, 1 for writing.
* Returns : length of data written to buffer.
*/
int cumanascsi_2_proc_info (struct Scsi_Host *host, char *buffer, char **start, off_t offset,
int length, int inout)
{ {
struct cumanascsi2_info *info; struct cumanascsi2_info *info;
char *p = buffer;
int pos;
if (inout == 1)
return cumanascsi_2_set_proc_info(host, buffer, length);
info = (struct cumanascsi2_info *)host->hostdata; info = (struct cumanascsi2_info *)host->hostdata;
p += sprintf(p, "Cumana SCSI II driver v%s\n", VERSION); seq_printf(m, "Cumana SCSI II driver v%s\n", VERSION);
p += fas216_print_host(&info->info, p); fas216_print_host(&info->info, m);
p += sprintf(p, "Term : o%s\n", seq_printf(m, "Term : o%s\n",
info->terms ? "n" : "ff"); info->terms ? "n" : "ff");
p += fas216_print_stats(&info->info, p); fas216_print_stats(&info->info, m);
p += fas216_print_devices(&info->info, p); fas216_print_devices(&info->info, m);
return 0;
*start = buffer + offset;
pos = p - buffer - offset;
if (pos > length)
pos = length;
return pos;
} }
static struct scsi_host_template cumanascsi2_template = { static struct scsi_host_template cumanascsi2_template = {
.module = THIS_MODULE, .module = THIS_MODULE,
.proc_info = cumanascsi_2_proc_info, .show_info = cumanascsi_2_show_info,
.write_info = cumanascsi_2_set_proc_info,
.name = "Cumana SCSI II", .name = "Cumana SCSI II",
.info = cumanascsi_2_info, .info = cumanascsi_2_info,
.queuecommand = fas216_queue_command, .queuecommand = fas216_queue_command,
......
...@@ -422,45 +422,20 @@ eesoxscsi_set_proc_info(struct Scsi_Host *host, char *buffer, int length) ...@@ -422,45 +422,20 @@ eesoxscsi_set_proc_info(struct Scsi_Host *host, char *buffer, int length)
return ret; return ret;
} }
/* Prototype: int eesoxscsi_proc_info(char *buffer, char **start, off_t offset, static int eesoxscsi_show_info(struct seq_file *m, struct Scsi_Host *host)
* int length, int host_no, int inout)
* Purpose : Return information about the driver to a user process accessing
* the /proc filesystem.
* Params : buffer - a buffer to write information to
* start - a pointer into this buffer set by this routine to the start
* of the required information.
* offset - offset into information that we have read up to.
* length - length of buffer
* host_no - host number to return information for
* inout - 0 for reading, 1 for writing.
* Returns : length of data written to buffer.
*/
int eesoxscsi_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset,
int length, int inout)
{ {
struct eesoxscsi_info *info; struct eesoxscsi_info *info;
char *p = buffer;
int pos;
if (inout == 1)
return eesoxscsi_set_proc_info(host, buffer, length);
info = (struct eesoxscsi_info *)host->hostdata; info = (struct eesoxscsi_info *)host->hostdata;
p += sprintf(p, "EESOX SCSI driver v%s\n", VERSION); seq_printf(m, "EESOX SCSI driver v%s\n", VERSION);
p += fas216_print_host(&info->info, p); fas216_print_host(&info->info, m);
p += sprintf(p, "Term : o%s\n", seq_printf(m, "Term : o%s\n",
info->control & EESOX_TERM_ENABLE ? "n" : "ff"); info->control & EESOX_TERM_ENABLE ? "n" : "ff");
p += fas216_print_stats(&info->info, p); fas216_print_stats(&info->info, m);
p += fas216_print_devices(&info->info, p); fas216_print_devices(&info->info, m);
return 0;
*start = buffer + offset;
pos = p - buffer - offset;
if (pos > length)
pos = length;
return pos;
} }
static ssize_t eesoxscsi_show_term(struct device *dev, struct device_attribute *attr, char *buf) static ssize_t eesoxscsi_show_term(struct device *dev, struct device_attribute *attr, char *buf)
...@@ -498,7 +473,8 @@ static DEVICE_ATTR(bus_term, S_IRUGO | S_IWUSR, ...@@ -498,7 +473,8 @@ static DEVICE_ATTR(bus_term, S_IRUGO | S_IWUSR,
static struct scsi_host_template eesox_template = { static struct scsi_host_template eesox_template = {
.module = THIS_MODULE, .module = THIS_MODULE,
.proc_info = eesoxscsi_proc_info, .show_info = eesoxscsi_show_info,
.write_info = eesoxscsi_set_proc_info,
.name = "EESOX SCSI", .name = "EESOX SCSI",
.info = eesoxscsi_info, .info = eesoxscsi_info,
.queuecommand = fas216_queue_command, .queuecommand = fas216_queue_command,
......
...@@ -2958,9 +2958,9 @@ void fas216_release(struct Scsi_Host *host) ...@@ -2958,9 +2958,9 @@ void fas216_release(struct Scsi_Host *host)
queue_free(&info->queues.issue); queue_free(&info->queues.issue);
} }
int fas216_print_host(FAS216_Info *info, char *buffer) void fas216_print_host(FAS216_Info *info, struct seq_file *m)
{ {
return sprintf(buffer, seq_printf(m,
"\n" "\n"
"Chip : %s\n" "Chip : %s\n"
" Address: 0x%p\n" " Address: 0x%p\n"
...@@ -2970,11 +2970,9 @@ int fas216_print_host(FAS216_Info *info, char *buffer) ...@@ -2970,11 +2970,9 @@ int fas216_print_host(FAS216_Info *info, char *buffer)
info->scsi.irq, info->scsi.dma); info->scsi.irq, info->scsi.dma);
} }
int fas216_print_stats(FAS216_Info *info, char *buffer) void fas216_print_stats(FAS216_Info *info, struct seq_file *m)
{ {
char *p = buffer; seq_printf(m, "\n"
p += sprintf(p, "\n"
"Command Statistics:\n" "Command Statistics:\n"
" Queued : %u\n" " Queued : %u\n"
" Issued : %u\n" " Issued : %u\n"
...@@ -2991,38 +2989,33 @@ int fas216_print_stats(FAS216_Info *info, char *buffer) ...@@ -2991,38 +2989,33 @@ int fas216_print_stats(FAS216_Info *info, char *buffer)
info->stats.writes, info->stats.miscs, info->stats.writes, info->stats.miscs,
info->stats.disconnects, info->stats.aborts, info->stats.disconnects, info->stats.aborts,
info->stats.bus_resets, info->stats.host_resets); info->stats.bus_resets, info->stats.host_resets);
return p - buffer;
} }
int fas216_print_devices(FAS216_Info *info, char *buffer) void fas216_print_devices(FAS216_Info *info, struct seq_file *m)
{ {
struct fas216_device *dev; struct fas216_device *dev;
struct scsi_device *scd; struct scsi_device *scd;
char *p = buffer;
p += sprintf(p, "Device/Lun TaggedQ Parity Sync\n"); seq_printf(m, "Device/Lun TaggedQ Parity Sync\n");
shost_for_each_device(scd, info->host) { shost_for_each_device(scd, info->host) {
dev = &info->device[scd->id]; dev = &info->device[scd->id];
p += sprintf(p, " %d/%d ", scd->id, scd->lun); seq_printf(m, " %d/%d ", scd->id, scd->lun);
if (scd->tagged_supported) if (scd->tagged_supported)
p += sprintf(p, "%3sabled(%3d) ", seq_printf(m, "%3sabled(%3d) ",
scd->simple_tags ? "en" : "dis", scd->simple_tags ? "en" : "dis",
scd->current_tag); scd->current_tag);
else else
p += sprintf(p, "unsupported "); seq_printf(m, "unsupported ");
p += sprintf(p, "%3sabled ", dev->parity_enabled ? "en" : "dis"); seq_printf(m, "%3sabled ", dev->parity_enabled ? "en" : "dis");
if (dev->sof) if (dev->sof)
p += sprintf(p, "offset %d, %d ns\n", seq_printf(m, "offset %d, %d ns\n",
dev->sof, dev->period * 4); dev->sof, dev->period * 4);
else else
p += sprintf(p, "async\n"); seq_printf(m, "async\n");
} }
return p - buffer;
} }
EXPORT_SYMBOL(fas216_init); EXPORT_SYMBOL(fas216_init);
......
...@@ -358,9 +358,9 @@ extern void fas216_remove (struct Scsi_Host *instance); ...@@ -358,9 +358,9 @@ extern void fas216_remove (struct Scsi_Host *instance);
*/ */
extern void fas216_release (struct Scsi_Host *instance); extern void fas216_release (struct Scsi_Host *instance);
extern int fas216_print_host(FAS216_Info *info, char *buffer); extern void fas216_print_host(FAS216_Info *info, struct seq_file *m);
extern int fas216_print_stats(FAS216_Info *info, char *buffer); extern void fas216_print_stats(FAS216_Info *info, struct seq_file *m);
extern int fas216_print_devices(FAS216_Info *info, char *buffer); extern void fas216_print_devices(FAS216_Info *info, struct seq_file *m);
/* Function: int fas216_eh_abort(struct scsi_cmnd *SCpnt) /* Function: int fas216_eh_abort(struct scsi_cmnd *SCpnt)
* Purpose : abort this command * Purpose : abort this command
......
...@@ -237,32 +237,20 @@ powertecscsi_set_proc_info(struct Scsi_Host *host, char *buffer, int length) ...@@ -237,32 +237,20 @@ powertecscsi_set_proc_info(struct Scsi_Host *host, char *buffer, int length)
* inout - 0 for reading, 1 for writing. * inout - 0 for reading, 1 for writing.
* Returns : length of data written to buffer. * Returns : length of data written to buffer.
*/ */
int powertecscsi_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset, static int powertecscsi_show_info(struct seq_file *m, struct Scsi_Host *host)
int length, int inout)
{ {
struct powertec_info *info; struct powertec_info *info;
char *p = buffer;
int pos;
if (inout == 1)
return powertecscsi_set_proc_info(host, buffer, length);
info = (struct powertec_info *)host->hostdata; info = (struct powertec_info *)host->hostdata;
p += sprintf(p, "PowerTec SCSI driver v%s\n", VERSION); seq_printf(m, "PowerTec SCSI driver v%s\n", VERSION);
p += fas216_print_host(&info->info, p); fas216_print_host(&info->info, m);
p += sprintf(p, "Term : o%s\n", seq_printf(m, "Term : o%s\n",
info->term_ctl ? "n" : "ff"); info->term_ctl ? "n" : "ff");
p += fas216_print_stats(&info->info, p); fas216_print_stats(&info->info, m);
p += fas216_print_devices(&info->info, p); fas216_print_devices(&info->info, m);
return 0;
*start = buffer + offset;
pos = p - buffer - offset;
if (pos > length)
pos = length;
return pos;
} }
static ssize_t powertecscsi_show_term(struct device *dev, struct device_attribute *attr, char *buf) static ssize_t powertecscsi_show_term(struct device *dev, struct device_attribute *attr, char *buf)
...@@ -291,7 +279,8 @@ static DEVICE_ATTR(bus_term, S_IRUGO | S_IWUSR, ...@@ -291,7 +279,8 @@ static DEVICE_ATTR(bus_term, S_IRUGO | S_IWUSR,
static struct scsi_host_template powertecscsi_template = { static struct scsi_host_template powertecscsi_template = {
.module = THIS_MODULE, .module = THIS_MODULE,
.proc_info = powertecscsi_proc_info, .show_info = powertecscsi_show_info,
.write_info = powertecscsi_set_proc_info,
.name = "PowerTec SCSI", .name = "PowerTec SCSI",
.info = powertecscsi_info, .info = powertecscsi_info,
.queuecommand = fas216_queue_command, .queuecommand = fas216_queue_command,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment