Skip to contentSkip to conversation

IEEE1394 file2alias additions

PATCH New Ben Collins 1 participant 1 message May 2, 2003

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 IEEE1394 file2alias additions

As suggested by Rusty, here's additions for ieee1394's module id table.

Index: scripts/file2alias.c
===================================================================
RCS file: /home/scm/linux-2.5/scripts/file2alias.c,v retrieving revision 1.3

scripts/file2alias.c +26 -0
diff -u -u -r1.3 file2alias.c
@@ -81,6 +81,29 @@
 	return 1;
 }
 
+/* Looks like: ieee1394:venNmoNspNverN */
+static int do_ieee1394_entry(const char *filename,
+			     struct ieee1394_device_id *id, char *alias)
+{
+	id->match_flags = TO_NATIVE(id->match_flags);
+	id->vendor_id = TO_NATIVE(id->vendor_id);
+	id->model_id = TO_NATIVE(id->model_id);
+	id->specifier_id = TO_NATIVE(id->specifier_id);
+	id->version = TO_NATIVE(id->version);
+
+	strcpy(alias, "ieee1394:");
+	ADD(alias, "ven", id->match_flags & IEEE1394_MATCH_VENDOR_ID,
+	    id->vendor_id);
+	ADD(alias, "mo", id->match_flags & IEEE1394_MATCH_MODEL_ID,
+	    id->model_id);
+	ADD(alias, "sp", id->match_flags & IEEE1394_MATCH_SPECIFIER_ID,
+	    id->specifier_id);
+	ADD(alias, "ver", id->match_flags & IEEE1394_MATCH_VERSION,
+	    id->version);
+
+	return 1;
+}
+
 /* Looks like: pci:vNdNsvNsdNbcNscNiN. */
 static int do_pci_entry(const char *filename,
 			struct pci_device_id *id, char *alias)
@@ -184,6 +207,9 @@
 	else if (sym_is(symname, "__mod_usb_device_table"))
 		do_table(symval, sym->st_size, sizeof(struct usb_device_id),
 			 do_usb_entry, mod);
+	else if (sym_is(symname, "__mod_ieee1394_device_table"))
+		do_table(symval, sym->st_size, sizeof(struct ieee1394_device_id),
+			 do_ieee1394_entry, mod);
 }
 
 /* Now add out buffered information to the generated C source */

Index: include/linux/mod_devicetable.h
===================================================================
RCS file: /home/scm/linux-2.5/include/linux/mod_devicetable.h,v retrieving revision 1.2

include/linux/mod_devicetable.h +16 -0
diff -u -u -r1.2 mod_devicetable.h
@@ -21,6 +21,22 @@
 	kernel_ulong_t driver_data;	/* Data private to the driver */
 };
 
+
+#define IEEE1394_MATCH_VENDOR_ID	0x0001
+#define IEEE1394_MATCH_MODEL_ID		0x0002
+#define IEEE1394_MATCH_SPECIFIER_ID	0x0004
+#define IEEE1394_MATCH_VERSION		0x0008
+
+struct ieee1394_device_id {
+	__u32 match_flags;
+	__u32 vendor_id;
+	__u32 model_id;
+	__u32 specifier_id;
+	__u32 version;
+	kernel_ulong_t driver_data;
+};
+
+
 /*
  * Device table entry for "new style" table-driven USB drivers.
  * User mode code can read these tables to choose which modules to load.