All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Thomas Maier" <balagi@justmail.de>
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "petero2@telia.com" <petero2@telia.com>, "akpm@osdl.org" <akpm@osdl.org>
Subject: [PATCH 5/11] 2.6.18-mm3 pktcdvd: new pkt_print_info() function
Date: Tue, 03 Oct 2006 17:25:56 +0200	[thread overview]
Message-ID: <op.tguqhi06iudtyh@master> (raw)

[-- Attachment #1: Type: text/plain, Size: 255 bytes --]

Hello,

this patch moves the "print" code from pkt_seq_show() into
a new function pkt_print_info() for reusability.

http://people.freenet.de/BalaGi/download/pktcdvd-5-print-info_2.6.18.patch

Signed-off-by: Thomas Maier<balagi@justmail.de>

-Thomas Maier

[-- Attachment #2: pktcdvd-5-print-info_2.6.18.patch --]
[-- Type: application/octet-stream, Size: 5779 bytes --]

diff -urpN 4-modify-procfs/drivers/block/pktcdvd.c 5-print-info/drivers/block/pktcdvd.c
--- 4-modify-procfs/drivers/block/pktcdvd.c	2006-10-03 11:45:56.000000000 +0200
+++ 5-print-info/drivers/block/pktcdvd.c	2006-10-03 11:46:19.000000000 +0200
@@ -120,6 +120,85 @@ static struct pktcdvd_device *pkt_find_d
 	return NULL;
 }
 
+static void pkt_count_states(struct pktcdvd_device *pd, int *states)
+{
+	struct packet_data *pkt;
+	int i;
+
+	for (i = 0; i < PACKET_NUM_STATES; i++)
+		states[i] = 0;
+
+	spin_lock(&pd->cdrw.active_list_lock);
+	list_for_each_entry(pkt, &pd->cdrw.pkt_active_list, list) {
+		states[pkt->state]++;
+	}
+	spin_unlock(&pd->cdrw.active_list_lock);
+}
+
+static int pkt_print_info(struct pktcdvd_device *pd, char *buf, int blen)
+{
+	char *msg;
+	char bdev_buf[BDEVNAME_SIZE];
+	int states[PACKET_NUM_STATES];
+	int n = 0;
+
+#define PRINT(...) \
+	n += scnprintf(buf+n, blen-n, __VA_ARGS__)
+
+	PRINT("Writer %s mapped to %s:\n", pd->name,
+		   		bdevname(pd->bdev, bdev_buf));
+
+	PRINT("\nSettings:\n");
+	PRINT("\tpacket size:\t\t%dkB\n", pd->settings.size / 2);
+
+	if (pd->settings.write_type == 0)
+		msg = "Packet";
+	else
+		msg = "Unknown";
+	PRINT("\twrite type:\t\t%s\n", msg);
+
+	PRINT("\tpacket type:\t\t%s\n", pd->settings.fp ? "Fixed" : "Variable");
+	PRINT("\tlink loss:\t\t%d\n", pd->settings.link_loss);
+
+	PRINT("\ttrack mode:\t\t%d\n", pd->settings.track_mode);
+
+	if (pd->settings.block_mode == PACKET_BLOCK_MODE1)
+		msg = "Mode 1";
+	else if (pd->settings.block_mode == PACKET_BLOCK_MODE2)
+		msg = "Mode 2";
+	else
+		msg = "Unknown";
+	PRINT("\tblock mode:\t\t%s\n", msg);
+
+	PRINT("\nStatistics:\n");
+	PRINT("\tpackets started:\t%lu\n", pd->stats.pkt_started);
+	PRINT("\tpackets ended:\t\t%lu\n", pd->stats.pkt_ended);
+	PRINT("\twritten:\t\t%lukB\n", pd->stats.secs_w >> 1);
+	PRINT("\tread gather:\t\t%lukB\n", pd->stats.secs_rg >> 1);
+	PRINT("\tread:\t\t\t%lukB\n", pd->stats.secs_r >> 1);
+
+	PRINT("\nMisc:\n");
+	PRINT("\treference count:\t%d\n", pd->refcnt);
+	PRINT("\tflags:\t\t\t0x%lx\n", pd->flags);
+	PRINT("\tread speed:\t\t%ukB/s\n", pd->read_speed);
+	PRINT("\twrite speed:\t\t%ukB/s\n", pd->write_speed);
+	PRINT("\tstart offset:\t\t%lu\n", pd->offset);
+	PRINT("\tmode page offset:\t%u\n", pd->mode_offset);
+
+	PRINT("\nQueue state:\n");
+	PRINT("\tbios queued:\t\t%d\n", pd->bio_queue_size);
+	PRINT("\tbios pending:\t\t%d\n", atomic_read(&pd->cdrw.pending_bios));
+	PRINT("\tcurrent sector:\t\t0x%llx\n",
+					(unsigned long long)pd->current_sector);
+
+	pkt_count_states(pd, states);
+	PRINT("\tstate:\t\t\ti:%d ow:%d rw:%d ww:%d rec:%d fin:%d\n",
+	      states[0], states[1], states[2], states[3], states[4], states[5]);
+#undef PRINT
+	buf[blen-1] = 0;
+	return n;
+}
+
 /*****************************************************************/
 
 static void pkt_bio_finished(struct pktcdvd_device *pd)
@@ -1202,21 +1281,6 @@ static void pkt_handle_packets(struct pk
 	spin_unlock(&pd->cdrw.active_list_lock);
 }
 
-static void pkt_count_states(struct pktcdvd_device *pd, int *states)
-{
-	struct packet_data *pkt;
-	int i;
-
-	for (i = 0; i < PACKET_NUM_STATES; i++)
-		states[i] = 0;
-
-	spin_lock(&pd->cdrw.active_list_lock);
-	list_for_each_entry(pkt, &pd->cdrw.pkt_active_list, list) {
-		states[pkt->state]++;
-	}
-	spin_unlock(&pd->cdrw.active_list_lock);
-}
-
 /*
  * kcdrwd is woken up when writes have been queued for one of our
  * registered devices
@@ -2272,59 +2336,10 @@ static void pkt_init_queue(struct pktcdv
 static int pkt_seq_show(struct seq_file *m, void *p)
 {
 	struct pktcdvd_device *pd = m->private;
-	char *msg;
-	char bdev_buf[BDEVNAME_SIZE];
-	int states[PACKET_NUM_STATES];
-
-	seq_printf(m, "Writer %s mapped to %s:\n", pd->name,
-		   bdevname(pd->bdev, bdev_buf));
-
-	seq_printf(m, "\nSettings:\n");
-	seq_printf(m, "\tpacket size:\t\t%dkB\n", pd->settings.size / 2);
-
-	if (pd->settings.write_type == 0)
-		msg = "Packet";
-	else
-		msg = "Unknown";
-	seq_printf(m, "\twrite type:\t\t%s\n", msg);
-
-	seq_printf(m, "\tpacket type:\t\t%s\n", pd->settings.fp ? "Fixed" : "Variable");
-	seq_printf(m, "\tlink loss:\t\t%d\n", pd->settings.link_loss);
-
-	seq_printf(m, "\ttrack mode:\t\t%d\n", pd->settings.track_mode);
-
-	if (pd->settings.block_mode == PACKET_BLOCK_MODE1)
-		msg = "Mode 1";
-	else if (pd->settings.block_mode == PACKET_BLOCK_MODE2)
-		msg = "Mode 2";
-	else
-		msg = "Unknown";
-	seq_printf(m, "\tblock mode:\t\t%s\n", msg);
-
-	seq_printf(m, "\nStatistics:\n");
-	seq_printf(m, "\tpackets started:\t%lu\n", pd->stats.pkt_started);
-	seq_printf(m, "\tpackets ended:\t\t%lu\n", pd->stats.pkt_ended);
-	seq_printf(m, "\twritten:\t\t%lukB\n", pd->stats.secs_w >> 1);
-	seq_printf(m, "\tread gather:\t\t%lukB\n", pd->stats.secs_rg >> 1);
-	seq_printf(m, "\tread:\t\t\t%lukB\n", pd->stats.secs_r >> 1);
-
-	seq_printf(m, "\nMisc:\n");
-	seq_printf(m, "\treference count:\t%d\n", pd->refcnt);
-	seq_printf(m, "\tflags:\t\t\t0x%lx\n", pd->flags);
-	seq_printf(m, "\tread speed:\t\t%ukB/s\n", pd->read_speed);
-	seq_printf(m, "\twrite speed:\t\t%ukB/s\n", pd->write_speed);
-	seq_printf(m, "\tstart offset:\t\t%lu\n", pd->offset);
-	seq_printf(m, "\tmode page offset:\t%u\n", pd->mode_offset);
-
-	seq_printf(m, "\nQueue state:\n");
-	seq_printf(m, "\tbios queued:\t\t%d\n", pd->bio_queue_size);
-	seq_printf(m, "\tbios pending:\t\t%d\n", atomic_read(&pd->cdrw.pending_bios));
-	seq_printf(m, "\tcurrent sector:\t\t0x%llx\n", (unsigned long long)pd->current_sector);
-
-	pkt_count_states(pd, states);
-	seq_printf(m, "\tstate:\t\t\ti:%d ow:%d rw:%d ww:%d rec:%d fin:%d\n",
-		   states[0], states[1], states[2], states[3], states[4], states[5]);
-
+	char buf[1024];
+	
+	pkt_print_info(pd, buf, sizeof(buf));
+	seq_printf(m, "%s", buf);
 	return 0;
 }
 

                 reply	other threads:[~2006-10-03 15:25 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=op.tguqhi06iudtyh@master \
    --to=balagi@justmail.de \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=petero2@telia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.