NCR5830: switch to ->show_info()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Родитель
b7654914bb
Коммит
dd7ab71bb3
|
@ -695,33 +695,35 @@ static void NCR5380_print_status(struct Scsi_Host *instance)
|
|||
* Return the number of bytes read from or written
|
||||
*/
|
||||
|
||||
#undef SPRINTF
|
||||
#define SPRINTF(args...) do { if(pos < buffer + length-80) pos += sprintf(pos, ## args); } while(0)
|
||||
static
|
||||
char *lprint_Scsi_Cmnd(Scsi_Cmnd * cmd, char *pos, char *buffer, int length);
|
||||
static
|
||||
char *lprint_command(unsigned char *cmd, char *pos, char *buffer, int len);
|
||||
static
|
||||
char *lprint_opcode(int opcode, char *pos, char *buffer, int length);
|
||||
|
||||
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_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...) seq_printf(m, ## args)
|
||||
static
|
||||
void lprint_Scsi_Cmnd(Scsi_Cmnd * cmd, struct seq_file *m);
|
||||
static
|
||||
void lprint_command(unsigned char *cmd, struct seq_file *m);
|
||||
static
|
||||
void lprint_opcode(int opcode, struct seq_file *m);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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; \
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
Загрузка…
Ссылка в новой задаче