X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev_rules.h;h=038f6da84d6e0ca07c74c4c075db4fec210eb435;hp=9e3931129f2afa3f3841fb41e50873006138f429;hb=4110664d4f25f203b7d76ee56e5e23220b04eb69;hpb=e8d569b4145a358775e87058829133fa725b32fd diff --git a/udev_rules.h b/udev_rules.h index 9e3931129..038f6da84 100644 --- a/udev_rules.h +++ b/udev_rules.h @@ -1,8 +1,6 @@ /* - * udev_rules.h - * * Copyright (C) 2003-2004 Greg Kroah-Hartman - * Copyright (C) 2004-2005 Kay Sievers + * Copyright (C) 2004-2006 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 @@ -15,19 +13,18 @@ * * 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. + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ #ifndef UDEV_RULES_H #define UDEV_RULES_H -#include "libsysfs/sysfs/libsysfs.h" #include "udev.h" #include "list.h" #define PAIRS_MAX 5 -#define RULEFILE_SUFFIX ".rules" +#define RULESFILE_SUFFIX ".rules" enum key_operation { KEY_OP_UNSET, @@ -60,35 +57,49 @@ enum import_type { IMPORT_PARENT, }; +enum escape_type { + ESCAPE_UNSET, + ESCAPE_NONE, + ESCAPE_REPLACE, +}; + struct udev_rule { - struct key label; - struct key goto_label; - struct key kernel_name; - struct key subsystem; struct key action; struct key devpath; - struct key bus; - struct key id; + struct key kernel; + struct key subsystem; struct key driver; + struct key_pairs attr; + + struct key kernels; + struct key subsystems; + struct key drivers; + struct key_pairs attrs; + + struct key_pairs env; struct key program; struct key result; - struct key modalias; struct key import; enum import_type import_type; + struct key test; + mode_t test_mode_mask; + struct key run; struct key wait_for_sysfs; - struct key_pairs sysfs; - struct key_pairs env; + struct key label; + struct key goto_label; struct key name; struct key symlink; - struct key run; struct key owner; struct key group; - enum key_operation mode_operation; mode_t mode; + enum key_operation mode_operation; + enum escape_type string_escape; + unsigned int link_priority; unsigned int partitions; unsigned int last_rule:1, + run_ignore_error:1, ignore_device:1, ignore_remove:1; @@ -100,23 +111,19 @@ struct udev_rules { char *buf; size_t bufsize; size_t current; - int mapped; int resolve_names; }; extern int udev_rules_init(struct udev_rules *rules, int resolve_names); -extern void udev_rules_close(struct udev_rules *rules); - -extern void udev_apply_format(struct udevice *udev, char *string, size_t maxsize, - struct sysfs_class_device *class_dev, struct sysfs_device *sysfs_device); +extern void udev_rules_cleanup(struct udev_rules *rules); extern void udev_rules_iter_init(struct udev_rules *rules); extern struct udev_rule *udev_rules_iter_next(struct udev_rules *rules); extern struct udev_rule *udev_rules_iter_label(struct udev_rules *rules, const char *label); -extern int udev_rules_get_name(struct udev_rules *rules, struct udevice *udev, - struct sysfs_class_device *class_dev); -extern int udev_rules_get_run(struct udev_rules *rules, struct udevice *udev, - struct sysfs_class_device *class_dev, struct sysfs_device *sysfs_dev); +extern int udev_rules_get_name(struct udev_rules *rules, struct udevice *udev); +extern int udev_rules_get_run(struct udev_rules *rules, struct udevice *udev); + +extern void udev_rules_apply_format(struct udevice *udev, char *string, size_t maxsize); #endif