summaryrefslogtreecommitdiff
path: root/udev.h
AgeCommit message (Collapse)Author
2006-01-13better log test and commentsKay Sievers
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2006-01-09replace libsysfsKay Sievers
We never used any of the libsysfs convenience features. Here we replace it completely with 300 lines of code, which are much simpler and a bit faster cause udev(d) does not open any syfs file for a simple event which does not need any parent device information. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-12-17add DEVLINKS to the event environmentKay Sievers
Multiple symlinks are separated by a space character. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-12-16remove unused variablesKay Sievers
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-11-16remove "udev_db" option from config fileKay Sievers
All udev state is kept in /$udev_root/.udev/ now. No option to configure that anymore, it will always be there. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-11-12remove all built-in wait_for_sysfs logicKay Sievers
Most of the issues are fixed with the kernel we depend on, for the remaing ones see the RELEASE-NOTES for a special rule to add. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-11-07udevd: depend on netlink and remove all sequence reorder logicKay Sievers
Netlink will never get out-of-order and we just depend on it from now on. Udevsend messages will have no effect if they contain a sequence number (SEQNUM). Thanks to Bastian Blank <waldi@debian.org>, for the debugging session which identified a bug where the timeouts are not working if inotify was not available. All the timeout handling is removed now and this issue should be solved. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-07-22move code to its own filesKay Sievers
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-07-07fix default-name handling and NAME="" rulesKay Sievers
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-07-06rename ALARM_TIMEOUT to UDEV_ALARM_TIMEOUTKay Sievers
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-06-26store the imported device information in the udevdbKay Sievers
Any program can query with udevinfo for persistent device attributes evaluated on device discovery now. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-06-05udev: handle all events - not only class and block devicesKay Sievers
Handle all events with rules. If udev is expected to handle hotplug.d/ the exernal helper must be called. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-06-05udev: move dev.d/ handling to external helperKay Sievers
Modern rules are expected to call notification and postprocessing with the RUN key. For compatibility the current behavior can be emulated with an external helper. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-06-05udev: allow final assignments :=Kay Sievers
The use of KEY:=<value> will make the key unchangeable by later rules. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-04-26[PATCH] add RUN key to be able to run rule based notificationkay.sievers@vrfy.org
SUBSYSTEM=="block", RUN="/sbin/program" will execute the program only for block device events. ACTION="remove", SUBSYSTEM=="block", RUN"/sbin/program" will execute the program, if a block device is removed.
2005-04-26[PATCH] support log-priority levels in udev.confkay.sievers@vrfy.org
2005-04-26[PATCH] correct enum device_typekay.sievers@vrfy.org
2005-04-26[PATCH] replace strncpy()/strncat() by strlcpy()/strlcat()kay.sievers@vrfy.org
2005-04-26[PATCH] allow unlimitied count of symlinkskay.sievers@vrfy.org
2005-04-26[PATCH] remove typedef for call_foreach_file() handler functionkay.sievers@vrfy.org
2005-04-26[PATCH] correct udev_init_devicekay.sievers@vrfy.org
2005-04-26[PATCH] move kernel name/number evaluation into udev_init_device()kay.sievers@vrfy.org
2005-04-26[PATCH] switch device type to enumkay.sievers@vrfy.org
2005-04-26[PATCH] switch major/minor to dev_tkay.sievers@vrfy.org
2005-04-26[PATCH] create /block/*/range count of partitons for all_partitionskay.sievers@vrfy.org
2005-04-26[PATCH] provide temporary device node for callouts to access the devicekay.sievers@vrfy.org
%N will create a temporary node for a callout a be sustituted with the name of the node.
2005-04-26[PATCH] remove default_* permissions from udev.conf filekay.sievers@vrfy.org
With the "permissions only rules" we can just place: MODE="0660", OWNER="root", GROUP="root" at the beginning of the rules file and get exactly the same behavior. If no values are given the compiled-in defaults are used.
2005-04-26[PATCH] allow multiline rules by backslash at the end of the linekay.sievers@vrfy.org
On Sun, 2004-12-19 at 18:31 +0100, Marco d'Itri wrote: > > On Dec 19, Kay Sievers <kay.sievers@vrfy.org> wrote: > > > (Feature request: would it be possible to extend the rules files parser > > to support continuation lines? I'd like it to consider lines starting > > with white space as part of the previous line.) > > How about the usual backslash at the end of the line. Here is a simple > patch.
2005-04-26[PATCH] complete removal of explicit udev permissions config filekay.sievers@vrfy.org
2005-04-26[PATCH] remove unused timestamp fieldkay.sievers@vrfy.org
2005-04-26[PATCH] simplify permission handlingkay.sievers@vrfy.org
Initialize the defaults in udev_config.c instead of namedev.c. Replace macro by expanded code. Switch to mode_t instead of string value. Add and clarify some comments.
2005-04-26[PATCH] trivial cleanups and change some commentskay.sievers@vrfy.org
2005-04-26[PATCH] remove unused variableskay.sievers@vrfy.org
Remove udev.bus, cause it's currently unused and newer kernels will pass it in the hotplug environment as PHYSDEVBUS. Remove udev.action, cause it's unused. Rename udev_set_values() to udev_init_device().
2005-04-26[PATCH] don't call the hotplug scripts with a test runkay.sievers@vrfy.org
2005-04-26[PATCH] rename udev_lib to udev_utils and dev_d to udev_multiplexkay.sievers@vrfy.org
2005-04-26[PATCH] handle whole hotplug event with udevd/udevkay.sievers@vrfy.org
If /proc/sys/kernel/hotplug points to /sbin/udevsend we handle the whole hotplug event with multiplexing /etc/hotplug.d/.
2005-04-26[PATCH] add NAME{ignore_remove} attributekay.sievers@vrfy.org
Some broken ide drivers are generating high event traffic, with add/remove events. With this attribute, it can be specified, that the node is always available. It may be used in conjunction with the new DRIVER= match to catch specific kernel device drivers.
2005-04-26[PATCH] Make dev.d/ handling a separate processing stagekay.sievers@vrfy.org
Move the logic when and how to call the dev.d/ scripts into the main processing path.
2005-04-26[PATCH] make the udev object available to more processing stageskay.sievers@vrfy.org
Remove the overwriting of main_argv[] hack and use the values from the udev object. Pass the udev object to call_foreach_file(). In the udevstart case, export SUBSYSTEM and UDEVSTART to the environment.
2005-04-26[PATCH] add ACTION to udev object to expose it to the whole processkay.sievers@vrfy.org
2005-04-26[PATCH] replace tdb database by simple lockless file databasekay.sievers@vrfy.org
This makes the udev operation completely lockless by storing a file for every node in /dev/.udevdb/* This solved the problem with deadlocking concurrent udev processes waiting for each other to release the file lock under heavy load.
2005-04-26[PATCH] Don't use any syslog() in signal handler, cause it may deadlock.kay.sievers@vrfy.org
2005-04-26[PATCH] cleanup netif handling and netif-dev.d/ eventskay.sievers@vrfy.org
Here we supress the dev.d/ execution if we didn't change a network interface's name with a rule. This should solve the issue of two running dhclients for the same interface, cause the /etc/dev.d/net/hotplug.dev script that fakes the hotplug event runs with every udevstart for every interface and fakes a second identical hotplug event on bootup. With this patch netif interfaces are no longer stored in the udevdb. It is not needed, cause we don't have permissions or symlinks :) and all information is available in sysfs. This patch also moves the dev_d execution calls out of the udev_add/udev_remove. As with the former api-cleanup-patch we have all processed data in one udev struct and can place the execution calls where needed.
2005-04-26[PATCH] big cleanup of internal udev apikay.sievers@vrfy.org
Here is the first patch to cleanup the internal processing of the various stages of an udev event. It should not change any behavior, but if your system depends on udev, please always test it before reboot :) We pass only one generic structure around between add, remove, namedev, db and dev_d handling and make all relevant data available to all internal stages. All udev structures are renamed to "udev". We replace the fake parameter by a flag in the udev structure. We open the class device in the main binaries and not in udev_add, to make it possible to use libsysfs for udevstart directory crawling. The last sleep parameters are removed.
2005-04-26[PATCH] remove sleeps from udev as it is external nowkay.sievers@vrfy.org
Here we remove all the sysfs sleep loops from udev as wait_for_sysfs will do this for us and any other hotplug user. We still keep a small blacklist of subsystems we don't care about but any missing entry here will no longer lead to a spinning udev waiting for files.
2005-04-26[PATCH] prevent deadlocks on an corrupt udev databasekay.sievers@vrfy.org
Here is the patch, that should prevent all of the known deadlocks with corrupt tdb databases we discovered. Thanks to Frank Steiner <fsteiner-mail@bio.ifi.lmu.de>, who tested all this endlessly with a NFS mounted /dev. The conclusion is, that udev will not work on filesystems without proper record locking, but we should prevent the endless loops anyway. This patch implements: o recovery from a corrupted udev database. udev will continue without database support now, instead of doing nothing. So the node should be generated in any case, remove will obviously not work for custom names. o added iteration limits to the tdb-code at the places we discovered endless loops. In the case tdb tries to find more than 100.000 entries with the same hash, we better give up :) o prevent a {all_partitions} loop caused by corrupt db data o log all tdb errors to syslog o switch sleep() to usleep() cause we want to use alarm()
2005-04-26[PATCH] switch udev's seqnum to u64kay.sievers@vrfy.org
The kernel will use a u64 for the sequence number, so we want the same.
2005-04-26[PATCH] Fix naming ethernet devices in udevstartkay.sievers@vrfy.org
On Tue, Sep 07, 2004 at 12:46:43PM +0200, Kay Sievers wrote: > On Mon, 2004-09-06 at 20:18 -0700, Tom Rini wrote: > > I noticed somewhat recently that my enet devices weren't being renamed > > on boot anymore. I don't quite know when this got broken (or rather, if > > it was supposed to be working. I swear it worked for me once..), but > > the following seems to do it. > > I think it never worked in the udevstart case. It worked only with the > hotplug-event-udev, I expect. > > > In udev_scan_class(), look for not just > > %s/%s/dev (which everything with a dev node has), but %s/%s/dev* (both > > of my enet devices, sis900 & 3c59x only have device) and if that > > exists, pass this along to udev. > > Yeah, network devices don't have a devnode and therefore no "dev", but > they are all in /sys/class/net/. We may just test if we are there > instead of the "device" match. How about something like this. It adds all the net devices without looking at the attributes and keeps the remaining logic like it is. It also removes certain levels of indirection and much simplifies the udevstart process. We surely don't need to open and close the udevdb for every node while iterating over the list. (We are about 5% faster on my box) It's not well tested, so it would be nice if someone can have a look at it, before a broken udevstart renders any system unbootable.
2005-04-26[PATCH] udev - read long lines from config files overflow fixarun@codemovers.org
Hi Kay, On 23:12 Sat 04 Sep , Kay Sievers wrote: > Cool, a real bug :) > Thanks, for the patch. I think it would be better to skip lenghth exceeding > lines instead of cutting it and continue. While looking at it I restructured > the buffer reading logic a bit and fixed another stupid bug. Thanks for the cleanup. You may have overlooked the fix for udev_config.c(parsing udev.conf) in your patch. So, I've adapted the fixes you applied to namedev_parse.c to this file also. Also, while 'eating' the whitespace the 'count' doesn't get decremented. This leads strncpy to copy the number of whitespace minus 1 characters from the next line. Minus 1 because it copies '\n' from the current line. while (isspace(bufline[0])) { bufline++; + count--; } . . . strncpy(line, bufline, count); Included patch(against udev-030) contains the above fixes as well as your fixes. Signed-off-by: Arun Bhanu <arun@codemovers.org>
2005-04-26[PATCH] pass SEQNUM trough udevdkay.sievers@vrfy.org
here we change udevd to pass the SEQNUM from the hotplug environment to udev and the dev.d/ scripts. We need this for HAL to match the hotplug event with the dev.d/ events. It also changes the type from int to long to match the kernel.