|
@@ -438,22 +438,21 @@ void usb_stor_report_bus_reset(struct us_data *us)
|
|
|
* /proc/scsi/ functions
|
|
|
***********************************************************************/
|
|
|
|
|
|
+static int write_info(struct Scsi_Host *host, char *buffer, int length)
|
|
|
+{
|
|
|
+ /* if someone is sending us data, just throw it away */
|
|
|
+ return length;
|
|
|
+}
|
|
|
+
|
|
|
/* we use this macro to help us write into the buffer */
|
|
|
#undef SPRINTF
|
|
|
-#define SPRINTF(args...) \
|
|
|
- do { if (pos < buffer+length) pos += sprintf(pos, ## args); } while (0)
|
|
|
+#define SPRINTF(args...) seq_printf(m, ## args)
|
|
|
|
|
|
-static int proc_info (struct Scsi_Host *host, char *buffer,
|
|
|
- char **start, off_t offset, int length, int inout)
|
|
|
+static int show_info (struct seq_file *m, struct Scsi_Host *host)
|
|
|
{
|
|
|
struct us_data *us = host_to_us(host);
|
|
|
- char *pos = buffer;
|
|
|
const char *string;
|
|
|
|
|
|
- /* if someone is sending us data, just throw it away */
|
|
|
- if (inout)
|
|
|
- return length;
|
|
|
-
|
|
|
/* print the controller name */
|
|
|
SPRINTF(" Host scsi%d: usb-storage\n", host->host_no);
|
|
|
|
|
@@ -483,28 +482,14 @@ static int proc_info (struct Scsi_Host *host, char *buffer,
|
|
|
SPRINTF(" Transport: %s\n", us->transport_name);
|
|
|
|
|
|
/* show the device flags */
|
|
|
- if (pos < buffer + length) {
|
|
|
- pos += sprintf(pos, " Quirks:");
|
|
|
+ SPRINTF(" Quirks:");
|
|
|
|
|
|
#define US_FLAG(name, value) \
|
|
|
- if (us->fflags & value) pos += sprintf(pos, " " #name);
|
|
|
+ if (us->fflags & value) seq_printf(m, " " #name);
|
|
|
US_DO_ALL_FLAGS
|
|
|
#undef US_FLAG
|
|
|
-
|
|
|
- *(pos++) = '\n';
|
|
|
- }
|
|
|
-
|
|
|
- /*
|
|
|
- * Calculate start of next buffer, and return value.
|
|
|
- */
|
|
|
- *start = buffer + offset;
|
|
|
-
|
|
|
- if ((pos - buffer) < offset)
|
|
|
- return (0);
|
|
|
- else if ((pos - buffer - offset) < length)
|
|
|
- return (pos - buffer - offset);
|
|
|
- else
|
|
|
- return (length);
|
|
|
+ seq_putc(m, '\n');
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
/***********************************************************************
|
|
@@ -549,7 +534,8 @@ struct scsi_host_template usb_stor_host_template = {
|
|
|
/* basic userland interface stuff */
|
|
|
.name = "usb-storage",
|
|
|
.proc_name = "usb-storage",
|
|
|
- .proc_info = proc_info,
|
|
|
+ .show_info = show_info,
|
|
|
+ .write_info = write_info,
|
|
|
.info = host_info,
|
|
|
|
|
|
/* command interface -- queued only */
|