summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorHamad Kadmany <hkadmany@codeaurora.org>2012-07-24 08:36:11 +0300
committerGerrit - the friendly Code Review server <code-review@localhost>2015-10-06 03:42:24 -0700
commitecfbe4c386d3a6f3bd36da81e277decc17678be0 (patch)
tree605b57801048ae14f6040181433ffb914bcd9e1b /init
parent7c93b040acbc048a25ea873609cb7374903ce9f4 (diff)
downloadsystem_core-ecfbe4c386d3a6f3bd36da81e277decc17678be0.zip
system_core-ecfbe4c386d3a6f3bd36da81e277decc17678be0.tar.gz
system_core-ecfbe4c386d3a6f3bd36da81e277decc17678be0.tar.bz2
system: core: Add uevent support for dvb devices
Change-Id: I9a31183014cc370a2d948dbd1d6a36a6e89b4c13
Diffstat (limited to 'init')
-rw-r--r--init/devices.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/init/devices.cpp b/init/devices.cpp
index 9151f06..96607a4 100644
--- a/init/devices.cpp
+++ b/init/devices.cpp
@@ -731,6 +731,27 @@ static void handle_generic_device_event(struct uevent *uevent)
base = "/dev/log/";
make_dir(base, 0755);
name += 4;
+ } else if (!strncmp(uevent->subsystem, "dvb", 3)) {
+ /* This imitates the file system that would be created
+ * if we were using devfs instead to preserve backward compatibility
+ * for users of dvb devices
+ */
+ int adapter_id;
+ char dev_name[20] = {0};
+
+ sscanf(name, "dvb%d.%s", &adapter_id, dev_name);
+
+ /* build dvb directory */
+ base = "/dev/dvb";
+ mkdir(base, 0755);
+
+ /* build adapter directory */
+ snprintf(devpath, sizeof(devpath), "/dev/dvb/adapter%d", adapter_id);
+ mkdir(devpath, 0755);
+
+ /* build actual device directory */
+ snprintf(devpath, sizeof(devpath), "/dev/dvb/adapter%d/%s",
+ adapter_id, dev_name);
} else
base = "/dev/";
links = get_character_device_symlinks(uevent);