aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2003-05-25 23:34:34 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-05-25 23:34:34 -0700
commit674084941e3bdad3b414c492b78f44c861896d70 (patch)
tree6ebfbbaaa75cabc3e80c9836db59ed773e540fbd /scripts
parent0b1a47c2d46b9539b5a29e9e88f3ae1f1acbd438 (diff)
downloadhistory-674084941e3bdad3b414c492b78f44c861896d70.tar.gz
[PATCH] s390: module alias support.
Add module alias support for ccw devices.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/file2alias.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/scripts/file2alias.c b/scripts/file2alias.c
index b2700f747136e..8c707215b8344 100644
--- a/scripts/file2alias.c
+++ b/scripts/file2alias.c
@@ -147,6 +147,28 @@ static int do_pci_entry(const char *filename,
return 1;
}
+/* looks like: "ccw:tNmNdtNdmN" */
+static int do_ccw_entry(const char *filename,
+ struct ccw_device_id *id, char *alias)
+{
+ id->match_flags = TO_NATIVE(id->match_flags);
+ id->cu_type = TO_NATIVE(id->cu_type);
+ id->cu_model = TO_NATIVE(id->cu_model);
+ id->dev_type = TO_NATIVE(id->dev_type);
+ id->dev_model = TO_NATIVE(id->dev_model);
+
+ strcpy(alias, "ccw:");
+ ADD(alias, "t", id->match_flags&CCW_DEVICE_ID_MATCH_CU_TYPE,
+ id->cu_type);
+ ADD(alias, "m", id->match_flags&CCW_DEVICE_ID_MATCH_CU_MODEL,
+ id->cu_model);
+ ADD(alias, "dt", id->match_flags&CCW_DEVICE_ID_MATCH_DEVICE_TYPE,
+ id->dev_type);
+ ADD(alias, "dm", id->match_flags&CCW_DEVICE_ID_MATCH_DEVICE_TYPE,
+ id->dev_model);
+ return 1;
+}
+
/* Ignore any prefix, eg. v850 prepends _ */
static inline int sym_is(const char *symbol, const char *name)
{
@@ -210,6 +232,9 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
else if (sym_is(symname, "__mod_ieee1394_device_table"))
do_table(symval, sym->st_size, sizeof(struct ieee1394_device_id),
do_ieee1394_entry, mod);
+ else if (sym_is(symname, "__mod_ccw_device_table"))
+ do_table(symval, sym->st_size, sizeof(struct ccw_device_id),
+ do_ccw_entry, mod);
}
/* Now add out buffered information to the generated C source */