linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: modules.pnpmap output support
@ 2003-11-17 12:37 "Andrey Borzenkov" 
  2003-11-17 13:34 ` Takashi Iwai
  2003-11-18  3:07 ` modules.pnpmap output support Rusty Russell
  0 siblings, 2 replies; 21+ messages in thread
From: "Andrey Borzenkov"  @ 2003-11-17 12:37 UTC (permalink / raw)
  To: "Takashi Iwai" ; +Cc: linux-kernel, "Rusty Russell" 


>> > The attached patch makes depmod to output modules.pnpmap file
>> > generated from the pnp device table.
>> > 

thank you. I was about to do it for hotplug.

>> > The output format is not compatible with the old modules.isapnpmap.
>> > The new format shows the pnp id string (e.g. CTL0301) while the old
>> > format uses the hex numbers.  I don't think it's worthy to keep the
>> > compatibility for this (since the new one is more intuitive), but it'd
>> > be easy to follow the old style.
>> 

can you get full ID out of sysfs? This is required for
coldplugging to work (I think mainly of loading drivers
for on-board legacy devices detected by PNP BIOS like floppy,
parport, serial).

Oh, BTW, it reminds me - file2alias prints hex in upper
case while both sysfs and hotplug present them in lower case
(for sure for USB and PCI, and for PNP entries detected by 
PNP BIOS). Should not we unify representation?

>> That seems strange.  If you don't worry about backwards compatibility,
>> then the new scripts/file2alias.c approach is better, 

welcome to the family :)

> which generates
>> aliases for each module (depmod then collects these into
>> /lib/modules/`uname -r`/modules.alias for speed).
>> 
>> The tables generated by depmod are purely for backwards compatibility,
>> although it does look like they will be required throughout 2.6 at
>> this stage.
>> 
>> Does that clarify?
>
>ah, ok, that makes sense.
>
> but still, file2alias (as of test9) doesn't output the entries for pnp
> devices...

Sure it does not, noone did it as yet. If you do it please let me
know, specifically about format for aliases.

Thank you

-andrey

^ permalink raw reply	[flat|nested] 21+ messages in thread
* modules.pnpmap output support
@ 2003-11-14 14:07 Takashi Iwai
  2003-11-17  3:46 ` Rusty Russell
  0 siblings, 1 reply; 21+ messages in thread
From: Takashi Iwai @ 2003-11-14 14:07 UTC (permalink / raw)
  To: Rusty Russell; +Cc: linux-kernel

Hi Rusty,

The attached patch makes depmod to output modules.pnpmap file
generated from the pnp device table.

The output format is not compatible with the old modules.isapnpmap.
The new format shows the pnp id string (e.g. CTL0301) while the old
format uses the hex numbers.  I don't think it's worthy to keep the
compatibility for this (since the new one is more intuitive), but it'd
be easy to follow the old style.


ciao,
--
Takashi Iwai <tiwai@suse.de>		ALSA Developer - www.alsa-project.org

diff -ru module-init-tools-0.9.15-pre3/depmod.c module-init-tools-0.9.15-pre3-pnp/depmod.c
--- module-init-tools-0.9.15-pre3/depmod.c	2003-09-15 03:44:02.000000000 +0200
+++ module-init-tools-0.9.15-pre3-pnp/depmod.c	2003-11-14 12:59:04.000000000 +0100
@@ -594,6 +594,7 @@
 	{ "modules.usbmap", output_usb_table },
 	{ "modules.ccwmap", output_ccw_table },
 	{ "modules.ieee1394map", output_ieee1394_table },
+	{ "modules.pnpmap", output_pnp_table },
 	{ "modules.alias", output_aliases },
 	{ "modules.symbols", output_symbols },
 };
diff -ru module-init-tools-0.9.15-pre3/depmod.h module-init-tools-0.9.15-pre3-pnp/depmod.h
--- module-init-tools-0.9.15-pre3/depmod.h	2003-08-15 16:21:02.000000000 +0200
+++ module-init-tools-0.9.15-pre3-pnp/depmod.h	2003-11-14 14:46:30.000000000 +0100
@@ -40,6 +40,10 @@
 	void *ieee1394_table;
 	unsigned int ccw_size;
 	void *ccw_table;
+	unsigned int pnp_size;
+	void *pnp_table;
+	unsigned int pnp_card_size;
+	void *pnp_card_table;
 
 	/* File contents and length. */
 	void *data;
diff -ru module-init-tools-0.9.15-pre3/moduleops_core.c module-init-tools-0.9.15-pre3-pnp/moduleops_core.c
--- module-init-tools-0.9.15-pre3/moduleops_core.c	2003-10-01 01:17:42.000000000 +0200
+++ module-init-tools-0.9.15-pre3-pnp/moduleops_core.c	2003-11-14 14:46:24.000000000 +0100
@@ -179,6 +179,14 @@
 	module->ieee1394_size = PERBIT(IEEE1394_DEVICE_SIZE);
 	module->ieee1394_table = PERBIT(deref_sym)(module->data,
 					"__mod_ieee1394_device_table");
+
+	module->pnp_size = PERBIT(PNP_DEVICE_SIZE);
+	module->pnp_table = PERBIT(deref_sym)(module->data,
+					"__mod_pnp_device_table");
+
+	module->pnp_card_size = PERBIT(PNP_CARD_DEVICE_SIZE);
+	module->pnp_card_table = PERBIT(deref_sym)(module->data,
+					"__mod_pnp_card_device_table");
 }
 
 struct module_ops PERBIT(mod_ops) = {
diff -ru module-init-tools-0.9.15-pre3/tables.c module-init-tools-0.9.15-pre3-pnp/tables.c
--- module-init-tools-0.9.15-pre3/tables.c	2003-08-19 12:07:46.000000000 +0200
+++ module-init-tools-0.9.15-pre3-pnp/tables.c	2003-11-14 14:52:43.000000000 +0100
@@ -158,3 +158,47 @@
 			output_ccw_entry(e, shortname, out);
 	}
 }
+
+static void put_pnp_id(FILE *out, const char *id)
+{
+	int i;
+	putc(' ', out);
+	for (i = 0; i < 8 && *id; i++, id++)
+		putc(*id, out);
+}
+
+void output_pnp_table(struct module *modules, FILE *out)
+{
+	struct module *i;
+
+	fprintf(out, "# pnp module         ");
+	fprintf(out, "id      device ...\n");
+
+	for (i = modules; i; i = i->next) {
+		char shortname[strlen(i->pathname) + 1];
+
+		if (i->pnp_table) {
+			struct pnp_device_id *id;
+			make_shortname(shortname, i->pathname);
+			for (id = i->pnp_table; id->id[0]; id++) {
+				fprintf(out, "%-20s", shortname);
+				put_pnp_id(out, id->id);
+				fprintf(out, "\n");
+			}
+		} else if (i->pnp_card_table) {
+			struct pnp_card_device_id *id;
+			make_shortname(shortname, i->pathname);
+			for (id = i->pnp_card_table; id->id[0]; id++) {
+				int idx;
+				fprintf(out, "%-20s", shortname);
+				put_pnp_id(out, id->id);
+				for (idx = 0; idx < 8; idx++) {
+					if (! id->devid[idx][0])
+						break;
+					put_pnp_id(out, id->devid[idx]);
+				}
+				fprintf(out, "\n");
+			}
+		}
+	}
+}
diff -ru module-init-tools-0.9.15-pre3/tables.h module-init-tools-0.9.15-pre3-pnp/tables.h
--- module-init-tools-0.9.15-pre3/tables.h	2003-05-02 08:28:01.000000000 +0200
+++ module-init-tools-0.9.15-pre3-pnp/tables.h	2003-11-14 14:47:05.000000000 +0100
@@ -55,11 +55,26 @@
 #define CCW_DEVICE_SIZE32 (3 * 2 + 2 * 1 + 4)
 #define CCW_DEVICE_SIZE64 (3 * 2 + 2 * 1 + 8)
 
+struct pnp_device_id {
+	char id[8];		/* id string (always 8 letter) */
+};
+#define PNP_DEVICE_SIZE32 8
+#define PNP_DEVICE_SIZE64 8
+
+struct pnp_card_device_id {
+	char id[8];		/* id string (always 8 letter) */
+	unsigned long  driver_data;	/* grrr... */
+	char devid[8][8];
+};
+#define PNP_CARD_DEVICE_SIZE32 (8 + sizeof(long) + 8 * 8)
+#define PNP_CARD_DEVICE_SIZE64 (8 + sizeof(long) + 8 * 8)
+
 /* Functions provided by tables.c */
 struct module;
 void output_usb_table(struct module *modules, FILE *out);
 void output_ieee1394_table(struct module *modules, FILE *out);
 void output_pci_table(struct module *modules, FILE *out);
 void output_ccw_table(struct module *modules, FILE *out);
+void output_pnp_table(struct module *modules, FILE *out);
 
 #endif /* MODINITTOOLS_TABLES_H */


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2003-12-03 11:31 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-17 12:37 modules.pnpmap output support "Andrey Borzenkov" 
2003-11-17 13:34 ` Takashi Iwai
2003-11-17 14:05   ` Takashi Iwai
2003-11-20  4:35     ` Rusty Russell
2003-11-20  9:40       ` Takashi Iwai
2003-11-17 15:07   ` "Andrey Borzenkov" 
2003-11-17 15:37     ` Takashi Iwai
2003-11-20 21:23       ` Adam Belay
2003-11-21 11:44         ` Takashi Iwai
2003-11-23 22:07           ` Adam Belay
2003-11-25 10:29             ` Takashi Iwai
2003-11-27 14:41         ` file2alias for pnp (Re: modules.pnpmap output support) Takashi Iwai
2003-11-27 18:58           ` Andrey Borzenkov
2003-11-28 12:11             ` Takashi Iwai
2003-12-02 22:31               ` Adam Belay
2003-12-03 11:31                 ` Takashi Iwai
2003-11-18  3:07 ` modules.pnpmap output support Rusty Russell
  -- strict thread matches above, loose matches on Subject: below --
2003-11-14 14:07 Takashi Iwai
2003-11-17  3:46 ` Rusty Russell
2003-11-17 11:19   ` Takashi Iwai
2003-11-18  3:01     ` Rusty Russell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).