diff options
Diffstat (limited to 'abs/core/klibc-udev')
-rw-r--r-- | abs/core/klibc-udev/50-udev-default.rules | 5 | ||||
-rw-r--r-- | abs/core/klibc-udev/60-persistent-storage.rules | 47 | ||||
-rw-r--r-- | abs/core/klibc-udev/64-device-mapper.rules | 4 | ||||
-rw-r--r-- | abs/core/klibc-udev/64-md-raid.rules | 18 | ||||
-rw-r--r-- | abs/core/klibc-udev/80-drivers.rules | 7 | ||||
-rw-r--r-- | abs/core/klibc-udev/PKGBUILD | 59 | ||||
-rw-r--r-- | abs/core/klibc-udev/disable-uid-gid-lookup.patch | 33 | ||||
-rw-r--r-- | abs/core/klibc-udev/klibc-remove-revert.patch | 111 | ||||
-rwxr-xr-x | abs/core/klibc-udev/load-modules.sh | 51 | ||||
-rw-r--r-- | abs/core/klibc-udev/post-107.patch | 176 | ||||
-rwxr-xr-x | abs/core/klibc-udev/start_udev | 115 | ||||
-rw-r--r-- | abs/core/klibc-udev/udev-fix-klibc-build.patch | 48 | ||||
-rw-r--r-- | abs/core/klibc-udev/udev.rules | 187 | ||||
-rw-r--r-- | abs/core/klibc-udev/udev_hook | 10 | ||||
-rw-r--r-- | abs/core/klibc-udev/udev_install | 29 | ||||
-rw-r--r-- | abs/core/klibc-udev/vol_id-suspend2.patch | 15 |
16 files changed, 0 insertions, 915 deletions
diff --git a/abs/core/klibc-udev/50-udev-default.rules b/abs/core/klibc-udev/50-udev-default.rules deleted file mode 100644 index 8593c7b..0000000 --- a/abs/core/klibc-udev/50-udev-default.rules +++ /dev/null @@ -1,5 +0,0 @@ -# firmware class requests -SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh" - -# do not delete static device nodes -ACTION=="remove", NAME=="?*", TEST=="/lib/udev/devices/$name", OPTIONS+="ignore_remove" diff --git a/abs/core/klibc-udev/60-persistent-storage.rules b/abs/core/klibc-udev/60-persistent-storage.rules deleted file mode 100644 index d32a143..0000000 --- a/abs/core/klibc-udev/60-persistent-storage.rules +++ /dev/null @@ -1,47 +0,0 @@ -# do not edit this file, it will be overwritten on update - -# persistent storage links: /dev/disk/{by-id,by-uuid,by-label,by-path} -# scheme based on "Linux persistent device names", 2004, Hannes Reinecke <hare@suse.de> - -# forward scsi device event to corresponding block device -ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change" - -ACTION!="add|change", GOTO="persistent_storage_end" -SUBSYSTEM!="block", GOTO="persistent_storage_end" - -# skip rules for inappropriate block devices -KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*|btibm*", GOTO="persistent_storage_end" - -# never access non-cdrom removable ide devices, the drivers are causing event loops on open() -KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end" -KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GOTO="persistent_storage_end" - -# ignore partitions that span the entire disk -TEST=="whole_disk", GOTO="persistent_storage_end" - -# /sys/class/block will export this -ENV{DEVTYPE}!="?*", ATTR{range}=="?*", ENV{DEVTYPE}="disk" -ENV{DEVTYPE}!="?*", ATTR{start}=="?*", ENV{DEVTYPE}="partition" - -# for partitions import parent information -ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*" - -# by-path (parent device path) -ENV{DEVTYPE}=="disk", IMPORT{program}="path_id %p" -ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}" -ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n" - -# skip unpartitioned removable media devices from drivers which do not send "change" events -ENV{DEVTYPE}=="disk", KERNEL!="sd*|sr*", ATTR{removable}=="1", GOTO="persistent_storage_end" - -# probe filesystem metadata of optical drives which have a media inserted -KERNEL=="sr*", ENV{ID_CDROM_MEDIA_TRACK_COUNT}=="?*", IMPORT{program}="vol_id --export --skip-raid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET} $tempnode" - -# probe filesystem metadata of disks -KERNEL!="sr*", IMPORT{program}="vol_id --export $tempnode" - -# by-label/by-uuid links (filesystem metadata) -ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" -ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" - -LABEL="persistent_storage_end" diff --git a/abs/core/klibc-udev/64-device-mapper.rules b/abs/core/klibc-udev/64-device-mapper.rules deleted file mode 100644 index 8154ef3..0000000 --- a/abs/core/klibc-udev/64-device-mapper.rules +++ /dev/null @@ -1,4 +0,0 @@ -# do not edit this file, it will be overwritten on update - -KERNEL=="device-mapper", NAME="mapper/control" - diff --git a/abs/core/klibc-udev/64-md-raid.rules b/abs/core/klibc-udev/64-md-raid.rules deleted file mode 100644 index e094ca7..0000000 --- a/abs/core/klibc-udev/64-md-raid.rules +++ /dev/null @@ -1,18 +0,0 @@ -# do not edit this file, it will be overwritten on update - -SUBSYSTEM!="block", GOTO="md_end" -ACTION!="add|change", GOTO="md_end" - -# import data from a raid member and activate it -#ENV{ID_FS_TYPE}=="linux_raid_member", IMPORT{program}="/sbin/mdadm --examine --export $tempnode", RUN+="/sbin/mdadm --incremental $env{DEVNAME}" -# import data from a raid set -KERNEL!="md*", GOTO="md_end" - -ATTR{md/array_state}=="|clear|inactive", GOTO="md_end" - -IMPORT{program}="vol_id --export $tempnode" -OPTIONS+="link_priority=100" -ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" -ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" - -LABEL="md_end" diff --git a/abs/core/klibc-udev/80-drivers.rules b/abs/core/klibc-udev/80-drivers.rules deleted file mode 100644 index 6f6fcc3..0000000 --- a/abs/core/klibc-udev/80-drivers.rules +++ /dev/null @@ -1,7 +0,0 @@ -# do not edit this file, it will be overwritten on update - -ACTION!="add", GOTO="drivers_end" - -DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/lib/udev/load-modules.sh $env{MODALIAS}" - -LABEL="drivers_end" diff --git a/abs/core/klibc-udev/PKGBUILD b/abs/core/klibc-udev/PKGBUILD deleted file mode 100644 index 0775b05..0000000 --- a/abs/core/klibc-udev/PKGBUILD +++ /dev/null @@ -1,59 +0,0 @@ -# $Id: PKGBUILD 23620 2009-01-11 14:11:40Z thomas $ -# Maintainer: Tobias Powalowski <tpowa@archlinux.org> - -pkgname=klibc-udev -pkgver=135 -pkgrel=30 -pkgdesc="udev compiled for klibc" -arch=(i686 x86_64) -url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" -groups=('base') -depends=('coreutils' 'klibc' $(basename /lib/klibc-*.so .so)) -license=('GPL') -source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-$pkgver.tar.bz2 - udev-fix-klibc-build.patch - disable-uid-gid-lookup.patch - udev_hook - udev_install - 50-udev-default.rules - 60-persistent-storage.rules - 64-device-mapper.rules - 64-md-raid.rules - 80-drivers.rules - load-modules.sh) -md5sums=('661b9df34e1304dad10f595d95b472bb' - 'c769a0440fc90ba0fee7a2ae2bf7d76f' - '89acd170a2771f81ca9e4b7920820555' - '042fd2ba6a0351bbae30da33ff492c03' - 'a3d81917e2bbe66f6c24486a86d4dc9c' - 'f9095dbad80fc93bcde60d7fe4572022' - '6625a4000069b9d46ae0ff9d9c2cebb7' - '258fea1c2b024f9755f905a21bd45a01' - 'e20efd69738bbbba35c49e7b63ee0212' - 'd42740d13b6bb5c5d90bfc2062019f58' - '5dd248da5d5fa3adfbe87309807ab734') - -build() { - cd ${srcdir}/udev-$pkgver - patch -p1 -i ../udev-fix-klibc-build.patch || return 1 - # uid/gid lookup fails to build on klibc due to incomplete headers - # we don't use this feature in klibc, simply omit it - patch -p1 -i ../disable-uid-gid-lookup.patch || return 1 - - CC=klcc LD=klcc ./configure --prefix="" - make || return 1 - - mkdir -p ${pkgdir}/lib/initcpio/udev - install -m755 udev/udevd ${pkgdir}/lib/initcpio/udev/ || return 1 - install -m755 udev/udevadm ${pkgdir}/lib/initcpio/udev/ || return 1 - install -m755 extras/path_id/path_id ${pkgdir}/lib/initcpio/udev/ || return 1 - install -m755 extras/volume_id/vol_id ${pkgdir}/lib/initcpio/udev/ || return 1 - install -m755 extras/firmware/firmware.sh ${pkgdir}/lib/initcpio/udev/ || return 1 - for rules in 50-udev-default.rules 60-persistent-storage.rules 64-device-mapper.rules 64-md-raid.rules 80-drivers.rules; do - install -m644 ${srcdir}/${rules} ${pkgdir}/lib/initcpio/udev/ || return 1 - done - install -m755 ${srcdir}/load-modules.sh ${pkgdir}/lib/initcpio/udev/ || return 1 - - install -D -m644 ${srcdir}/udev_install ${pkgdir}/lib/initcpio/install/udev || return 1 - install -D -m644 ${srcdir}/udev_hook ${pkgdir}/lib/initcpio/hooks/udev || return 1 -} diff --git a/abs/core/klibc-udev/disable-uid-gid-lookup.patch b/abs/core/klibc-udev/disable-uid-gid-lookup.patch deleted file mode 100644 index 578c3ee..0000000 --- a/abs/core/klibc-udev/disable-uid-gid-lookup.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -Nur udev-132.orig/udev/udev-util.c udev-132/udev/udev-util.c ---- udev-132.orig/udev/udev-util.c 2008-11-06 02:56:15.000000000 +0100 -+++ udev-132/udev/udev-util.c 2008-11-09 18:28:30.000000000 +0100 -@@ -126,6 +126,7 @@ - - uid_t util_lookup_user(struct udev *udev, const char *user) - { -+ /* - char *endptr; - int buflen = sysconf(_SC_GETPW_R_SIZE_MAX); - char buf[buflen]; -@@ -147,11 +148,13 @@ - err(udev, "specified user '%s' unknown\n", user); - else - err(udev, "error resolving user '%s': %m\n", user); -+ */ - return 0; - } - - extern gid_t util_lookup_group(struct udev *udev, const char *group) - { -+ /* - char *endptr; - int buflen = sysconf(_SC_GETGR_R_SIZE_MAX); - char buf[buflen]; -@@ -173,6 +176,7 @@ - err(udev, "specified group '%s' unknown\n", group); - else - err(udev, "error resolving group '%s': %m\n", group); -+ */ - return 0; - } - diff --git a/abs/core/klibc-udev/klibc-remove-revert.patch b/abs/core/klibc-udev/klibc-remove-revert.patch deleted file mode 100644 index 8d9484f..0000000 --- a/abs/core/klibc-udev/klibc-remove-revert.patch +++ /dev/null @@ -1,111 +0,0 @@ -### Archlinux revert -### revert this patch, crazy udev devs -From: Kay Sievers <kay.sievers@suse.de> -Date: Fri, 4 Aug 2006 22:02:58 +0000 (+0200) -Subject: libvolume_id: read ufs2 label -X-Git-Tag: 097 -X-Git-Url: http://www.kernel.org/git/?p=linux/hotplug/udev.git;a=commitdiff;h=eb82b76dedc1482b6434c46fee84d3ef13cb9648 - -libvolume_id: read ufs2 label - -Taken from the FreeBSD HAL repository. ---- - ---- a/Makefile -+++ b/Makefile -@@ -33,6 +33,9 @@ USE_GCOV = false - # include Security-Enhanced Linux support - USE_SELINUX = false - -+# comile with klibc instead of glibc -+USE_KLIBC = false -+ - # set this to create statically linked binaries - USE_STATIC = false - -@@ -139,6 +142,12 @@ ifeq ($(strip $(USE_GCOV)),true) - LDFLAGS += -fprofile-arcs - endif - -+ifeq ($(strip $(USE_KLIBC)),true) -+ KLCC = /usr/bin/$(CROSS_COMPILE)klcc -+ CC = $(KLCC) -+ LD = $(KLCC) -+endif -+ - ifeq ($(strip $(USE_SELINUX)),true) - UDEV_OBJS += udev_selinux.o - LIB_OBJS += -lselinux -lsepol ---- a/README -+++ b/README -@@ -69,6 +69,10 @@ Compile Options: - USE_SELINUX - If set to 'true', udev will be built with SELinux support - enabled. This is disabled by default. -+ USE_KLIBC -+ If set to 'true', udev is built and linked against klibc. -+ Default value is 'false'. KLCC specifies the klibc compiler -+ wrapper, usually located at /usr/bin/klcc. - EXTRAS - list of helper programs in extras/ to build. - make EXTRAS="extras/cdrom_id extras/scsi_id extras/volume_id" ---- a/extras/scsi_id/scsi_id.c -+++ b/extras/scsi_id/scsi_id.c -@@ -402,7 +402,8 @@ static int set_options(int argc, char ** - /* - * optind is a global extern used by getopt. Since we can call - * set_options twice (once for command line, and once for config -- * file) we have to reset this back to 1. -+ * file) we have to reset this back to 1. [Note glibc handles -+ * setting this to 0, but klibc does not.] - */ - optind = 1; - while (1) { ---- a/test/simple-build-check.sh -+++ b/test/simple-build-check.sh -@@ -23,6 +23,14 @@ make clean EXTRAS="$EXTRAS" >/dev/null - make all $MAKEOPTS USE_LOG=false EXTRAS="$EXTRAS" || exit - echo -e "\n\n" - -+# klibc build -+if [ -n "$KLCC" -a -e "$KLCC" ]; then -+ echo KLCC: "$KLCC" -+ make clean EXTRAS="$EXTRAS" >/dev/null -+ make all -j4 $MAKEOPTS USE_KLIBC=true DEBUG=true EXTRAS="$EXTRAS" KLCC="$KLCC" || exit -+ echo -e "\n\n" -+fi -+ - # install in temporary dir and show it - TEMPDIR="`pwd`/.tmp" - rm -rf $TEMPDIR ---- a/udev_libc_wrapper.c -+++ b/udev_libc_wrapper.c -@@ -30,7 +30,7 @@ - - #include "udev.h" - --#ifndef __GLIBC__ -+#ifdef __KLIBC__ - #define __OWN_USERDB_PARSER__ - #endif - ---- a/udev_libc_wrapper.h -+++ b/udev_libc_wrapper.h -@@ -105,7 +105,7 @@ static inline int inotify_add_watch(int - } - #else - /* needed until /usr/include/sys/inotify.h is working */ --#ifndef __GLIBC__ -+#ifdef __KLIBC__ - #include <sys/inotify.h> - #else - static inline int inotify_init(void) -@@ -117,7 +117,7 @@ static inline int inotify_add_watch(int - { - return syscall(__NR_inotify_add_watch, fd, name, mask); - } --#endif /* __GLIBC__ */ -+#endif /* __KLIBC__ */ - #endif /* __NR_inotify_init */ - - #ifndef IN_CREATE diff --git a/abs/core/klibc-udev/load-modules.sh b/abs/core/klibc-udev/load-modules.sh deleted file mode 100755 index 3d52d6b..0000000 --- a/abs/core/klibc-udev/load-modules.sh +++ /dev/null @@ -1,51 +0,0 @@ -#! /bin/sh -# Implement blacklisting for udev-loaded modules -# Includes module checking -# - Aaron Griffin & Tobias Powalowski for Archlinux -[ $# -ne 1 ] && exit 1 - -MODPROBE="/sbin/modprobe" -RESOLVEALIAS="/bin/resolve-modalias" -USEBLACKLIST="--use-blacklist" -REPLACE="/bin/replace" -MODDEPS="/bin/moddeps" - -if [ -f /proc/cmdline ]; then - for cmd in $(cat /proc/cmdline); do - case $cmd in - disablemodules=*) eval $cmd ;; - load_modules=off) exit ;; - esac - done - #parse cmdline entries of the form "disablemodules=x,y,z" - if [ -n "${disablemodules}" ]; then - BLACKLIST="$(${REPLACE} ${disablemodules} ',')" - fi -fi - -# sanitize the module names -BLACKLIST="$(${REPLACE} "${BLACKLIST}" '-' '_')" - -if [ -n "${BLACKLIST}" ] ; then - # Try to find all modules for the alias - mods="$($RESOLVEALIAS /lib/modules/$(uname -r)/modules.alias $1)" - # If no modules could be found, try if the alias name is a module name - # In that case, omit the --use-blacklist parameter to imitate normal modprobe behaviour - [ -z "${mods}" ] && $MODPROBE -qni $1 && mods="$1" && USEBLACKLIST="" - [ -z "${mods}" ] && exit - for mod in ${mods}; do - deps="$(${MODDEPS} ${mod})" - [ $? -ne 0 ] && continue - # If the module or any of its dependencies is blacklisted, don't load it - for dep in $deps; do - for blackmod in ${BLACKLIST}; do - [ "${blackmod}" = "${dep}" ] && continue 3 - done - done - $MODPROBE $USEBLACKLIST ${mod} - done -else - $MODPROBE $1 -fi - -# vim: set et ts=4: diff --git a/abs/core/klibc-udev/post-107.patch b/abs/core/klibc-udev/post-107.patch deleted file mode 100644 index cb6e618..0000000 --- a/abs/core/klibc-udev/post-107.patch +++ /dev/null @@ -1,176 +0,0 @@ -From: Matthias Schwarzott <zzam@gentoo.org> -Date: Thu, 22 Mar 2007 20:05:56 +0000 (+0100) -Subject: write_cd_rules: set default link type to "by-id" for usb and ieee1394 devices -X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=491a6a71ff685373422621f4b67f550806072d17 - -write_cd_rules: set default link type to "by-id" for usb and ieee1394 devices ---- - -diff --git a/extras/rule_generator/write_cd_rules b/extras/rule_generator/write_cd_rules -index 1dbe6b7..bd951c5 100644 ---- a/extras/rule_generator/write_cd_rules -+++ b/extras/rule_generator/write_cd_rules -@@ -53,7 +53,15 @@ fi - if [ "$1" ]; then - METHOD="$1" - else -- METHOD='by-path' -+ case "$ID_BUS" in -+ usb|ieee1394) -+ METHOD='by-id' -+ ;; -+ -+ *) -+ METHOD='by-path' -+ ;; -+ esac - fi - - case "$METHOD" in -From: Kay Sievers <kay.sievers@vrfy.org> -Date: Fri, 23 Mar 2007 16:17:18 +0000 (+0100) -Subject: udevinfo: relax check for the correct device if looked up by name -X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=be8594ab14f15203fcea4b2aa0115171472f3e43 - -udevinfo: relax check for the correct device if looked up by name ---- - -diff --git a/udev_db.c b/udev_db.c -index 00d68d6..7b8d02b 100644 ---- a/udev_db.c -+++ b/udev_db.c -@@ -186,7 +186,7 @@ int udev_db_get_device(struct udevice *udev, const char *devpath) - size_t cur; - size_t count; - -- strlcpy(udev->dev->devpath, devpath, sizeof(udev->dev->devpath)); -+ sysfs_device_set_values(udev->dev, devpath, NULL, NULL); - devpath_to_db_path(devpath, filename, sizeof(filename)); - - if (lstat(filename, &stats) != 0) { -diff --git a/udevinfo.c b/udevinfo.c -index 3f25be0..4b4876c 100644 ---- a/udevinfo.c -+++ b/udevinfo.c -@@ -173,13 +173,17 @@ static void export_db(void) { - static int lookup_device_by_name(struct udevice *udev, const char *name) - { - LIST_HEAD(name_list); -+ int count; - struct name_entry *device; - int rc = -1; - -- if (udev_db_get_devices_by_name(name, &name_list) <= 0) -+ count = udev_db_get_devices_by_name(name, &name_list); -+ if (count <= 0) - goto out; - -- /* select the device that matches the dev_t of name */ -+ info("found %i devices for '%s'", count, name); -+ -+ /* select the device that seems to match */ - list_for_each_entry(device, &name_list, node) { - char filename[PATH_SIZE]; - struct stat statbuf; -@@ -189,16 +193,18 @@ static int lookup_device_by_name(struct udevice *udev, const char *name) - continue; - info("found db entry '%s'", device->name); - -+ /* make sure, we don't get a link of a differnt device */ - strlcpy(filename, udev_root, sizeof(filename)); - strlcat(filename, "/", sizeof(filename)); - strlcat(filename, name, sizeof(filename)); - if (stat(filename, &statbuf) != 0) - continue; -- if (statbuf.st_rdev == udev->devt) { -- info("found '%s', dev_t matches", udev->name); -- rc = 0; -- break; -+ if (major(udev->devt) > 0 && udev->devt != statbuf.st_rdev) { -+ info("skip '%s', dev_t doesn't match", udev->name); -+ continue; - } -+ rc = 0; -+ break; - } - out: - name_list_cleanup(&name_list); -From: Kay Sievers <kay.sievers@vrfy.org> -Date: Fri, 23 Mar 2007 16:18:03 +0000 (+0100) -Subject: don't write to sysfs files during test run -X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=d2c9a56e0e624ed448aed8ad18460deed63973e1 - -don't write to sysfs files during test run ---- - -diff --git a/udev_rules.c b/udev_rules.c -index f8844a8..5078f2d 100644 ---- a/udev_rules.c -+++ b/udev_rules.c -@@ -861,8 +861,9 @@ try_parent: - info("writing '%s' to sysfs file '%s'", value, attr); - f = fopen(attr, "w"); - if (f != NULL) { -- if (fprintf(f, "%s", value) <= 0) -- err("error writing ATTR{%s}: %s", attr, strerror(errno)); -+ if (!udev->test_run) -+ if (fprintf(f, "%s", value) <= 0) -+ err("error writing ATTR{%s}: %s", attr, strerror(errno)); - fclose(f); - } else - err("error opening ATTR{%s} for writing: %s", attr, strerror(errno)); -From: Pozsar Balazs <pozsy@uhulinux.hu> -Date: Fri, 23 Mar 2007 16:21:46 +0000 (+0100) -Subject: udevsettle: read udev not kernel seqnum first -X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=4e2b290821d083361260f8cdbe7c54886463673e - -udevsettle: read udev not kernel seqnum first ---- - -diff --git a/udevsettle.c b/udevsettle.c -index 9e3e03b..f76ad71 100644 ---- a/udevsettle.c -+++ b/udevsettle.c -@@ -110,9 +110,9 @@ int main(int argc, char *argv[], char *envp[]) - goto exit; - } - -- /* read current kernel seqnum */ -- strlcpy(filename, sysfs_path, sizeof(filename)); -- strlcat(filename, "/kernel/uevent_seqnum", sizeof(filename)); -+ /* read current udev seqnum */ -+ strlcpy(filename, udev_root, sizeof(filename)); -+ strlcat(filename, "/" EVENT_SEQNUM, sizeof(filename)); - fd = open(filename, O_RDONLY); - if (fd < 0) - goto exit; -@@ -121,12 +121,12 @@ int main(int argc, char *argv[], char *envp[]) - if (len <= 0) - goto exit; - seqnum[len] = '\0'; -- seq_kernel = strtoull(seqnum, NULL, 10); -- info("kernel seqnum = %llu", seq_kernel); -+ seq_udev = strtoull(seqnum, NULL, 10); -+ info("udev seqnum = %llu", seq_udev); - -- /* read current udev seqnum */ -- strlcpy(filename, udev_root, sizeof(filename)); -- strlcat(filename, "/" EVENT_SEQNUM, sizeof(filename)); -+ /* read current kernel seqnum */ -+ strlcpy(filename, sysfs_path, sizeof(filename)); -+ strlcat(filename, "/kernel/uevent_seqnum", sizeof(filename)); - fd = open(filename, O_RDONLY); - if (fd < 0) - goto exit; -@@ -135,8 +135,8 @@ int main(int argc, char *argv[], char *envp[]) - if (len <= 0) - goto exit; - seqnum[len] = '\0'; -- seq_udev = strtoull(seqnum, NULL, 10); -- info("udev seqnum = %llu", seq_udev); -+ seq_kernel = strtoull(seqnum, NULL, 10); -+ info("kernel seqnum = %llu", seq_kernel); - - /* make sure all kernel events have arrived in the queue */ - if (seq_udev >= seq_kernel) { - diff --git a/abs/core/klibc-udev/start_udev b/abs/core/klibc-udev/start_udev deleted file mode 100755 index 8503bb9..0000000 --- a/abs/core/klibc-udev/start_udev +++ /dev/null @@ -1,115 +0,0 @@ -#! /bin/sh -# -# start_udev -# script to initialize /dev by using udev. -# -# Modified for Archlinux by Tobias Powalowski <tpowa@archlinux.org> -# -# Inspired by: -# -# Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com> -# -# Released under the GPL v2 only. -# -# This needs to be run at the earliest possible point in the boot -# process. -# -# Based on the udev init.d script -# -# Thanks go out to the Gentoo developers for proving -# that this is possible to do. -# -# Yes, it's very verbose, feel free to turn off all of the echo calls, -# they were there to make me feel better that everything was working -# properly during development... - -prog=udev -sysfs_dir=/sys -bin=/sbin/udev -udevd=/sbin/udevd -udev_root="/dev" - -trigger_device_events () -{ - /sbin/udevtrigger -} - -wait_for_queue () -{ - # disabled because it hangs network boot - #loop=20 - #while ! [ "$loop" -gt 0 -a -d /dev/.udev/queue ]; do - # sleep 0.1; - # loop=$(($loop - 1)) - #done - /sbin/udevsettle -} - -make_extra_nodes () -{ - # there are a few things that sysfs does not export for us. - # these things go here (and remember to remove them in - # remove_extra_nodes() - # - # Thanks to Gentoo for the initial list of these. - ln -sf /proc/self/fd $udev_root/fd - ln -sf /proc/self/fd/0 $udev_root/stdin - ln -sf /proc/self/fd/1 $udev_root/stdout - ln -sf /proc/self/fd/2 $udev_root/stderr - ln -sf /proc/kcore $udev_root/core -} - -udev_init () -{ -# don't use udev if sysfs is not mounted. -if [ ! -d $sysfs_dir/block ]; then - exit 1 -fi - -# Do not mount ramfs, we are already in ramfs -#mount -t ramfs none $udev_root - -# propogate /udev from /sys -#echo "Creating initial udev device nodes:" - -#echo "making extra nodes" -make_extra_nodes - -# check if udevd is already running -#echo "start udev daemon" -/sbin/udevd --daemon - -case "$(uname -r)" in - 2.6.[0-9]|2.6.[0-9][!0-9]*) ;; - *) if [ -f "/sys/class/tty/console/uevent" ]; then - #echo "Kernel >= 2.6.15 and supports uevents" - # trigger the sorted events - echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug - # catch events that are real fast - mkdir -p /dev/.udev/queue - else - # for older kernels without uevents will be removed when udevstart dies in udev - echo "Kernel does not support uevents, you need a kernel >= 2.6.15!" - exit 1 - fi - ;; -esac -} - -udev_uevents () -{ -# configure all devices -trigger_device_events -# until we know how to do better, just wait for _all_ events to finish -wait_for_queue -} - -if [ $# -eq 0 ]; then -udev_init -udev_uevents -fi - -[ "$1" = "init" ] && udev_init -[ "$1" = "uevents" ] && udev_uevents - -exit 0 diff --git a/abs/core/klibc-udev/udev-fix-klibc-build.patch b/abs/core/klibc-udev/udev-fix-klibc-build.patch deleted file mode 100644 index 7ac0917..0000000 --- a/abs/core/klibc-udev/udev-fix-klibc-build.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff -Nur udev-128.orig/extras/Makefile.in udev-128/extras/Makefile.in ---- udev-128.orig/extras/Makefile.in 2008-09-11 16:58:01.000000000 +0200 -+++ udev-128/extras/Makefile.in 2008-09-18 12:03:09.000000000 +0200 -@@ -176,15 +176,11 @@ - udev_prefix = @udev_prefix@ - SUBDIRS = \ - ata_id \ -- cdrom_id \ - edd_id \ - path_id \ - firmware \ -- collect \ - floppy \ -- fstab_import \ - rule_generator \ -- scsi_id \ - usb_id \ - volume_id - -diff -Nur udev-128.orig/extras/volume_id/lib/libvolume_id-private.h udev-128/extras/volume_id/lib/libvolume_id-private.h ---- udev-128.orig/extras/volume_id/lib/libvolume_id-private.h 2008-09-10 02:37:09.000000000 +0200 -+++ udev-128/extras/volume_id/lib/libvolume_id-private.h 2008-09-18 12:07:57.000000000 +0200 -@@ -35,12 +35,8 @@ - log_null(const char *format, ...) {} - - #define err(format, arg...) volume_id_log_fn(LOG_ERR, __FILE__, __LINE__, format, ##arg) --#define info(format, arg...) volume_id_log_fn(LOG_INFO, __FILE__, __LINE__, format, ##arg) --#ifdef DEBUG --#define dbg(format, arg...) volume_id_log_fn(LOG_DEBUG, __FILE__, __LINE__, format, ##arg) --#else -+#define info(format, arg...) log_null(format, ##arg) - #define dbg(format, arg...) log_null(format, ##arg) --#endif - - #if (__BYTE_ORDER == __LITTLE_ENDIAN) - #define le16_to_cpu(x) (x) -diff -Nur udev-128.orig/extras/volume_id/lib/md5.c udev-128/extras/volume_id/lib/md5.c ---- udev-128.orig/extras/volume_id/lib/md5.c 2008-09-10 02:18:59.000000000 +0200 -+++ udev-128/extras/volume_id/lib/md5.c 2008-09-18 12:03:09.000000000 +0200 -@@ -21,7 +21,7 @@ - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - --#include <stdint.h> -+/*#include <stdint.h>*/ - #include <string.h> - #include <endian.h> - #include <byteswap.h> diff --git a/abs/core/klibc-udev/udev.rules b/abs/core/klibc-udev/udev.rules deleted file mode 100644 index 22f422a..0000000 --- a/abs/core/klibc-udev/udev.rules +++ /dev/null @@ -1,187 +0,0 @@ -# Udev rules for Archlinux by Tobias Powalowski <tpowa@archlinux.org> -# -# This ruleset should provide a DevFS-compatible device tree. -# -# There are a number of modifiers that are allowed to be used in some -# of the different fields. They provide the following subsitutions: -# -# %n the "kernel number" of the device. -# For example, 'sda3' has a "kernel number" of '3' -# %k the kernel name for the device. -# %M the kernel major number for the device -# %m the kernel minor number for the device -# %b the bus id for the device -# %c the string returned by the PROGRAM -# %s{filename} the content of a sysfs attribute. -# %% the '%' char itself. -# -# There are a number of modifiers that are allowed to be used in some of the -# fields. See the udev man page for a full description of them. -# global stuff -# - -##################################### -# Early rules - begin -##################################### -# wait for sysfs -ACTION=="add", KERNEL=="[0-9]*:[0-9]*", SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt" -# Setting timeout for tape-devices (type 1) to 900 seconds -# and 60 seconds for device types 0, 7 and 14 -SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="0|7|14", ATTR{timeout}="60" -SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="1", ATTR{timeout}="900" -##################################### -# Early rules -end -##################################### - -##################################### -###### Hotplug rules - begin -##################################### - -# Modaliases to load -ACTION=="add", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/lib/udev/load-modules.sh $env{MODALIAS}" -# SCSI addon modules -ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="[07]", RUN+="/lib/udev/load-modules.sh sd_mod" -ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="14", RUN+="/lib/udev/load-modules.sh sd_mod" -ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="[45]", RUN+="/lib/udev/load-modules.sh sr_mod" -ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="1", ATTRS{vendor}=="Onstream", ATTRS{model}!="ADR*", RUN+="/lib/udev/load-modules.sh osst" -ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="1", ATTRS{vendor}=="Onstream", ATTRS{model}=="ADR*", RUN+="/lib/udev/load-modules.sh st" -ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="1", ATTRS{vendor}!="Onstream", RUN+="/lib/udev/load-modules.sh st" -ACTION=="add", SUBSYSTEM=="scsi", ATTRS{type}=="[23689]", TEST!="[module/sg]", RUN+="/lib/udev/load-modules.sh sg" -ACTION=="add", SUBSYSTEM=="mmc", RUN+="/lib/udev/load-modules.sh mmc_block" - -LABEL="hotplug_driver_loaded" - -# FIRMWARE -ACTION=="add", SUBSYSTEM=="firmware", ENV{FIRMWARE}=="?*", RUN+="/lib/udev/firmware.sh" -##################################### -##### Hotplug rules - end -##################################### - -##################################### -###### CD/DVD symlinks - begin -##################################### -ACTION=="add", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", IMPORT="/lib/udev/cdrom_id --export $tempnode" -ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", IMPORT="/lib/udev/cdrom_id --export $tempnode" -ACTION=="add", SUBSYSTEMS=="scsi", KERNEL=="scd[a-z]", IMPORT="/lib/udev/cdrom_id --export $tempnode" -ENV{ID_CDROM}=="?*", SYMLINK+="cd/cdrom-%b" -ENV{ID_CDROM_CD_RW}=="?*", SYMLINK+="cd/cdrw-%b" -ENV{ID_CDROM_DVD}=="?*", SYMLINK+="cd/dvd-%b" -ENV{ID_CDROM_DVD_R}=="?*", SYMLINK+="cd/dvd-%b" -##################################### -###### CD/DVD symlinks - end -##################################### - -##################################### -##### PCMCIA rules - begin -##################################### -# PCMCIA devices: -# - -# Very few CIS firmware entries (which we use for matching) -# are so broken that we need to read out random bytes of it -# instead of the manufactor, card or product ID. Then the -# matching is done in userspace. -ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", RUN+="/sbin/pcmcia-check-broken-cis.static" - -# However, the "weak" matching by func_id is only allowed _after_ modprobe -# returns, so that "strong" matches have a higher priority. -ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", RUN+="/bin/sh -c 'echo 1 > /sys/$devpath/allow_func_id_match'" - -# PCMCIA sockets: -# -# modprobe the pcmcia bus module so that 16-bit PCMCIA devices work -ACTION=="add", SUBSYSTEM=="pcmcia_socket", RUN+="/lib/udev/load-modules.sh pcmcia" - -# if this is a PCMCIA socket which needs a resource database, -# pcmcia-socket-startup sets it up -ACTION=="add", SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/pcmcia-socket-startup.static" -##################################### -##### PCMCIA rules - end -##################################### - -####################################### -# Persistant block device stuff - begin -####################################### -# persistent storage links: /dev/{disk,tape}/{by-id,by-uuid,by-label,by-path,by-name} -# scheme based on "Linux persistent device names", 2004, Hannes Reinecke <hare@suse.de> - -# needed like this!!! -ACTION!="add|change", GOTO="persistent_storage_end" -#KERNEL=="nst[0-9]", SUBSYSTEMS=="scsi", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}-nst" - -# type 8 devices are "Medium Changers" -#KERNEL=="sg*", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}" -SUBSYSTEM!="block", GOTO="persistent_storage_end" - -# skip rules for inappropriate block devices -# don't add dm-*!!! -KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*", GOTO="persistent_storage_end" - -# never access non-cdrom removable ide devices, the drivers are causing event loops on open() -KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end" -KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GOTO="persistent_storage_end" - -# ignore partitions that span the entire disk -ATTR{whole_disk}=="*", GOTO="persistent_storage_end" - -# /sys/class/block will export this -ENV{DEVTYPE}!="?*", ATTR{range}=="?*", ENV{DEVTYPE}="disk" -ENV{DEVTYPE}!="?*", ATTR{start}=="?*", ENV{DEVTYPE}="partition" - -# for partitions import parent information -ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*" - -# by-id (hardware serial number) -KERNEL=="hd*[!0-9]", IMPORT{program}="/lib/udev/ata_id --export $tempnode" -KERNEL=="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}" -KERNEL=="hd*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}-part%n" - -KERNEL=="sd*[!0-9]|sr*|st*", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_SUBSYSTEMS}="ieee1394" -KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program}="/lib/udev/usb_id --export %p" -#KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}!="?*", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode" -#KERNEL=="cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}!="?*", IMPORT{program}="/lib/udev/scsi_id --export --whitelisted --ignore-sysfs -s %p -d $tempnode", ENV{ID_BUS}="cciss" -KERNEL=="sd*[!0-9]|sr*|cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" -KERNEL=="sd*[0-9]|cciss*p[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" -KERNEL=="st*", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}" - -# libata compat (links like hd*) -KERNEL=="sd*[!0-9]|sr*", ENV{ID_VENDOR}=="ATA", PROGRAM="/lib/udev/ata_id $tempnode", RESULT=="?*", ENV{ID_ATA_COMPAT}="$result", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}" -KERNEL=="sd*[0-9]", ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}-part%n" - -KERNEL=="mmcblk[0-9]", SUBSYSTEMS=="mmc", ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}" -KERNEL=="mmcblk[0-9]p[0-9]", ENV{ID_NAME}=="?*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n" - -# by-path (shortest physical path) broken atm -#ENV{DEVTYPE}=="disk", IMPORT{program}="/lib/udev/path_id %p" -#ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}" -#ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n" -#KERNEL=="st*", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}" - -KERNEL=="sr*|st*", GOTO="persistent_storage_end" -KERNEL=="hd*[!0-9]", ATTR{removable}=="1", GOTO="persistent_storage_end" - -# by-label/by-uuid (filesystem properties) -IMPORT{program}="/lib/udev/vol_id --export $tempnode" -ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" -ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" - -# BIOS Enhanced Disk Device -ENV{DEVTYPE}=="disk", IMPORT{program}="/lib/udev/edd_id --export $tempnode" -ENV{DEVTYPE}=="disk", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}" -ENV{DEVTYPE}=="partition", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}-part%n" -LABEL="persistent_storage_end" - -# md links hook into "change" events, when the array becomes available -KERNEL!="md[0-9]*", GOTO="md_end" -ACTION!="add|change", GOTO="md_end" - -ATTR{md/array_state}=="|clear|inactive", GOTO="md_end" -IMPORT{program}="/lib/udev/vol_id --export $tempnode" -OPTIONS="link_priority=100" -ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" -ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"" - -LABEL="md_end" -##################################### -# Persistant block device stuff - end -##################################### diff --git a/abs/core/klibc-udev/udev_hook b/abs/core/klibc-udev/udev_hook deleted file mode 100644 index 4d8212a..0000000 --- a/abs/core/klibc-udev/udev_hook +++ /dev/null @@ -1,10 +0,0 @@ -# vim: set ft=sh: -run_hook () -{ - msg -n ":: Loading udev..." - echo > /proc/sys/kernel/hotplug - /sbin/udevd --daemon - /sbin/udevadm trigger - /sbin/udevadm settle - msg "done." -} diff --git a/abs/core/klibc-udev/udev_install b/abs/core/klibc-udev/udev_install deleted file mode 100644 index 94dcd80..0000000 --- a/abs/core/klibc-udev/udev_install +++ /dev/null @@ -1,29 +0,0 @@ -# vim:set ft=sh: - -install () -{ - MODULES="" - BINARIES="" - FILES=" /etc/udev/udev.conf" - SCRIPT="udev" - add_file /lib/initcpio/udev/udevd /sbin/udevd - add_file /lib/initcpio/udev/udevadm /sbin/udevadm - add_file /lib/initcpio/udev/50-udev-default.rules /lib/udev/rules.d/50-udev-default.rules - add_file /lib/initcpio/udev/60-persistent-storage.rules /lib/udev/rules.d/60-persistent-storage.rules - add_file /lib/initcpio/udev/64-device-mapper.rules /lib/udev/rules.d/64-device-mapper.rules - add_file /lib/initcpio/udev/64-md-raid.rules /lib/udev/rules.d/64-md-raid.rules - add_file /lib/initcpio/udev/80-drivers.rules /lib/udev/rules.d/80-drivers.rules - add_file /lib/initcpio/udev/firmware.sh /lib/udev/firmware.sh - add_file /lib/initcpio/udev/path_id /lib/udev/path_id - add_file /lib/initcpio/udev/vol_id /lib/udev/vol_id - add_file /lib/initcpio/udev/load-modules.sh /lib/udev/load-modules.sh -} - -help () -{ -cat <<HELPEOF - This hook will use udev to create your root device node - and detect the needed modules for your root device. - It is recommended to use this hook instead of modload. -HELPEOF -} diff --git a/abs/core/klibc-udev/vol_id-suspend2.patch b/abs/core/klibc-udev/vol_id-suspend2.patch deleted file mode 100644 index 525e17e..0000000 --- a/abs/core/klibc-udev/vol_id-suspend2.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -Nur udev-103.orig/extras/volume_id/lib/linux_swap.c udev-103/extras/volume_id/lib/linux_swap.c ---- udev-103.orig/extras/volume_id/lib/linux_swap.c 2006-10-20 14:43:35.000000000 +0200 -+++ udev-103/extras/volume_id/lib/linux_swap.c 2006-10-29 17:15:19.000000000 +0100 -@@ -73,6 +73,11 @@ - strcpy(id->type_version, "ulsuspend"); - goto found_label; - } -+ if (memcmp(buf, "z", 1) == 0 || memcmp(buf, "Z", 1) == 0) { -+ id->type = "suspend"; -+ strcpy(id->type_version, "suspend2"); -+ goto found_label; -+ } - } - return -1; - |