From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kay Sievers Date: Thu, 15 Jan 2004 14:32:26 +0000 Subject: Re: [ANNOUNCE] udev 013 release Message-Id: <20040115143226.GA15609@vrfy.org> MIME-Version: 1 Content-Type: multipart/mixed; boundary="2oS5YaxWCcQjTEyO" List-Id: References: <20040113235213.GA7659@kroah.com> In-Reply-To: <20040113235213.GA7659@kroah.com> To: linux-hotplug@vger.kernel.org --2oS5YaxWCcQjTEyO Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, Jan 15, 2004 at 05:14:16AM +0100, Kay Sievers wrote: > On Wed, Jan 14, 2004 at 01:10:43PM -0800, Greg KH wrote: > > On Wed, Jan 14, 2004 at 02:34:26PM -0600, Clay Haapala wrote: > > > On Wed, 14 Jan 2004, Chris Friesen spake thusly: > > > > > > > > Maybe for ones with a matching rule, you could print something like: > > > > > > > > > > > Is the act of printing/syslogging a rule in an of itself? > > > > No, as currently the only way stuff ends up in the syslog is if > > DEBUG=true is used on the build line. > > > > But it's sounding like we might want to change that... :) > > How about this in the syslog after connect/disconnect? > > Jan 15 05:07:45 pim udev[28007]: configured rule in '/etc/udev/udev.rules' at line 17 applied, 'video*' becomes 'video/webcam%n' > Jan 15 05:07:45 pim udev[28007]: creating device node '/udev/video/webcam0' > Jan 15 05:07:47 pim udev[28015]: removing device node '/udev/video/webcam0' Here is a slightly better version. I've created a logging.h file and moved the debug macros from udev.h in there. If you type: 'make' - you will get a binary that prints one or two lines to syslog if a device node is created or deleted 'make LOG=false' - you get a binary that prints asolutely nothing 'make DEBUG=true' - the same as today, it will print all debug lines thanks, Kay --2oS5YaxWCcQjTEyO Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="00-simple-syslog.patch" diff -Nru a/Makefile b/Makefile --- a/Makefile Thu Jan 15 15:22:25 2004 +++ b/Makefile Thu Jan 15 15:22:25 2004 @@ -16,7 +16,12 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# Set the following to `true' to make a debuggable build. +# Set the following to control the use of syslog +# Set it to `false' to remove all logging +LOG = true + +# Set the following to `true' to log the debug +# and make a unstripped, unoptimized binary. # Leave this set to `false' for production use. DEBUG = false @@ -104,6 +109,10 @@ CFLAGS+=-pipe endif +ifeq ($(strip $(LOG)),true) + CFLAGS += -DLOG +endif + # if DEBUG is enabled, then we do not strip or optimize ifeq ($(strip $(DEBUG)),true) CFLAGS += $(WARNINGS) -O1 -g -DDEBUG -D_GNU_SOURCE @@ -216,7 +225,7 @@ $(OBJS): $(GEN_HEADERS) -$(ROOT): $(OBJS) udev.h namedev.h udev_version.h udev_dbus.h udevdb.h klibc_fixups.h list.h +$(ROOT): $(OBJS) udev.h namedev.h udev_version.h udev_dbus.h udevdb.h klibc_fixups.h logging.h list.h $(LD) $(LDFLAGS) -o $(ROOT) $(CRT0) $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS) $(STRIPCMD) $(ROOT) diff -Nru a/logging.c b/logging.c --- a/logging.c Thu Jan 15 15:22:25 2004 +++ b/logging.c Thu Jan 15 15:22:25 2004 @@ -25,9 +25,9 @@ #include #include #include -#include "udev.h" -#ifdef DEBUG +#include "logging.h" + static int logging_init = 0; static unsigned char udev_logname[42]; @@ -54,5 +54,3 @@ va_end(args); return 1; } - -#endif diff -Nru a/logging.h b/logging.h --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/logging.h Thu Jan 15 15:22:25 2004 @@ -0,0 +1,60 @@ +/* + * udev.h + * + * Userspace devfs + * + * Copyright (C) 2003 Greg Kroah-Hartman + * Copyright (C) 2004 Kay Sievers + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#ifndef LOGGING_H +#define LOGGING_H + +#ifdef LOG +#include +#define info(format, arg...) \ + do { \ + log_message (LOG_INFO , format , ## arg); \ + } while (0) +#else + #define info(format, arg...) do { } while (0) +#endif + +#ifdef DEBUG +#define dbg(format, arg...) \ + do { \ + log_message (LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg); \ + } while (0) +#else + #define dbg(format, arg...) do { } while (0) +#endif + +/* Parser needs it's own debugging statement, we usually don't care about this at all */ +#ifdef DEBUG_PARSER +#define dbg_parse(format, arg...) \ + do { \ + log_message (LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg); \ + } while (0) +#else + #define dbg_parse(format, arg...) do { } while (0) +#endif + + +extern int log_message (int level, const char *format, ...) + __attribute__ ((format (printf, 2, 3))); + +#endif diff -Nru a/namedev.c b/namedev.c --- a/namedev.c Thu Jan 15 15:22:25 2004 +++ b/namedev.c Thu Jan 15 15:22:25 2004 @@ -36,6 +36,7 @@ #include "list.h" #include "udev.h" #include "udev_version.h" +#include "logging.h" #include "namedev.h" #include "libsysfs/libsysfs.h" #include "klibc_fixups.h" @@ -295,12 +296,12 @@ /* sleep to give the kernel a chance to create the file */ sleep(1); } - dbg("Timed out waiting for '%s' file, continuing on anyway...", b->file); + dbg("timed out waiting for '%s' file, continuing on anyway...", b->file); goto exit; } b++; } - dbg("Did not find bus type '%s' on list of bus_id_files, contact greg@kroah.com", sysfs_device->bus); + dbg("did not find bus type '%s' on list of bus_id_files, contact greg@kroah.com", sysfs_device->bus); exit: return; /* here to prevent compiler warning... */ } @@ -544,7 +545,7 @@ if (sysfs_device != NULL) goto device_found; } - dbg("Timed out waiting for device symlink, continuing on anyway..."); + dbg("timed out waiting for device symlink, continuing on anyway..."); device_found: /* We have another issue with just the wait above - the sysfs part of @@ -569,10 +570,10 @@ if (sysfs_device->bus[0] != '\0') goto bus_found; } - dbg("Timed out waiting to find the device bus, continuing on anyway\n"); + dbg("timed out waiting to find the device bus, continuing on anyway"); goto exit; bus_found: - dbg("Device %s is registered with bus %s\n", + dbg("device %s is registered with bus '%s'", sysfs_device->name, sysfs_device->bus); } exit: @@ -704,7 +705,8 @@ } /* Yup, this rule belongs to us! */ - dbg("found matching rule, '%s' becomes '%s'", dev->kernel, dev->name); + info("configured rule in '%s' at line %i applied, '%s' becomes '%s'", + udev_rules_filename, dev->config_line, udev->kernel_name, dev->name); strfieldcpy(udev->name, dev->name); strfieldcpy(udev->symlink, dev->symlink); goto found; diff -Nru a/namedev.h b/namedev.h --- a/namedev.h Thu Jan 15 15:22:25 2004 +++ b/namedev.h Thu Jan 15 15:22:25 2004 @@ -65,6 +65,7 @@ char name[NAME_SIZE]; char symlink[NAME_SIZE]; struct sysfs_pair sysfs_pair[MAX_SYSFS_PAIRS]; + int config_line; }; struct perm_device { diff -Nru a/namedev_parse.c b/namedev_parse.c --- a/namedev_parse.c Thu Jan 15 15:22:25 2004 +++ b/namedev_parse.c Thu Jan 15 15:22:25 2004 @@ -36,6 +36,7 @@ #include #include "udev.h" +#include "logging.h" #include "namedev.h" static int add_config_dev(struct config_device *new_dev) @@ -249,6 +250,7 @@ goto error; } + dev.config_line = lineno; retval = add_config_dev(&dev); if (retval) { dbg("add_config_dev returned with error %d", retval); diff -Nru a/udev-add.c b/udev-add.c --- a/udev-add.c Thu Jan 15 15:22:25 2004 +++ b/udev-add.c Thu Jan 15 15:22:25 2004 @@ -37,6 +37,7 @@ #include "udev.h" #include "udev_version.h" #include "udev_dbus.h" +#include "logging.h" #include "namedev.h" #include "udevdb.h" #include "libsysfs/libsysfs.h" @@ -141,6 +142,7 @@ if (strrchr(dev->name, '/')) create_path(filename); + info("creating device node '%s'", filename); dbg("mknod(%s, %#o, %u, %u)", filename, dev->mode, dev->major, dev->minor); retval = mknod(filename, dev->mode, res); if (retval) diff -Nru a/udev-remove.c b/udev-remove.c --- a/udev-remove.c Thu Jan 15 15:22:25 2004 +++ b/udev-remove.c Thu Jan 15 15:22:25 2004 @@ -31,6 +31,7 @@ #include "udev.h" #include "udev_version.h" #include "udev_dbus.h" +#include "logging.h" #include "namedev.h" #include "udevdb.h" #include "libsysfs/libsysfs.h" @@ -73,7 +74,7 @@ strncpy(filename, udev_root, sizeof(filename)); strncat(filename, dev->name, sizeof(filename)); - dbg("unlinking node '%s'", filename); + info("removing device node '%s'", filename); retval = unlink(filename); if (retval) { dbg("unlink(%s) failed with error '%s'", diff -Nru a/udev.c b/udev.c --- a/udev.c Thu Jan 15 15:22:25 2004 +++ b/udev.c Thu Jan 15 15:22:25 2004 @@ -34,6 +34,7 @@ #include "udev.h" #include "udev_version.h" #include "udev_dbus.h" +#include "logging.h" #include "namedev.h" #include "udevdb.h" #include "libsysfs/libsysfs.h" diff -Nru a/udev.h b/udev.h --- a/udev.h Thu Jan 15 15:22:25 2004 +++ b/udev.h Thu Jan 15 15:22:25 2004 @@ -26,30 +26,6 @@ #include "libsysfs/libsysfs.h" #include -#ifdef DEBUG -#include -#define dbg(format, arg...) \ - do { \ - log_message (LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg); \ - } while (0) -#else - #define dbg(format, arg...) do { } while (0) -#endif - -/* Parser needs it's own debugging statement, we usually don't care about this at all */ -#ifdef DEBUG_PARSER -#define dbg_parse(format, arg...) \ - do { \ - log_message (LOG_DEBUG , "%s: " format , __FUNCTION__ , ## arg); \ - } while (0) -#else - #define dbg_parse(format, arg...) do { } while (0) -#endif - - -extern int log_message (int level, const char *format, ...) - __attribute__ ((format (printf, 2, 3))); - #define COMMENT_CHARACTER '#' #define NAME_SIZE 100 @@ -71,7 +47,6 @@ unsigned char program_result[NAME_SIZE]; unsigned char kernel_number[NAME_SIZE]; unsigned char kernel_name[NAME_SIZE]; - }; #define strfieldcpy(to, from) \ diff -Nru a/udev_config.c b/udev_config.c --- a/udev_config.c Thu Jan 15 15:22:25 2004 +++ b/udev_config.c Thu Jan 15 15:22:25 2004 @@ -34,6 +34,7 @@ #include "udev.h" #include "udev_version.h" +#include "logging.h" #include "namedev.h" #include "libsysfs/libsysfs.h" diff -Nru a/udevdb.c b/udevdb.c --- a/udevdb.c Thu Jan 15 15:22:25 2004 +++ b/udevdb.c Thu Jan 15 15:22:25 2004 @@ -35,6 +35,7 @@ #include "udev_version.h" #include "udev.h" +#include "logging.h" #include "namedev.h" #include "udevdb.h" #include "tdb/tdb.h" --2oS5YaxWCcQjTEyO-- ------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel