2 * Copyright (C) 2003-2004 Greg Kroah-Hartman <greg@kroah.com>
3 * Copyright (C) 2004-2008 Kay Sievers <kay.sievers@vrfy.org>
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
36 enum key_operation operation;
47 struct key_pair keys[PAIRS_MAX];
69 struct key_pairs attr;
72 struct key subsystems;
74 struct key_pairs attrs;
80 enum import_type import_type;
82 mode_t test_mode_mask;
86 struct key goto_label;
91 struct key symlink_match;
95 enum escape_type string_escape;
97 unsigned int link_priority;
99 unsigned int partitions;
100 unsigned int last_rule:1,
116 struct udev_rules_iter {
117 struct udev_rules *rules;
121 extern int udev_rules_init(struct udev *udev, struct udev_rules *rules, int resolve_names);
122 extern void udev_rules_cleanup(struct udev_rules *rules);
124 extern void udev_rules_iter_init(struct udev_rules_iter *iter, struct udev_rules *rules);
125 extern struct udev_rule *udev_rules_iter_next(struct udev_rules_iter *iter);
126 extern struct udev_rule *udev_rules_iter_goto(struct udev_rules_iter *iter, size_t rule_off);
128 extern int udev_rules_get_name(struct udev_rules *rules, struct udevice *udev);
129 extern int udev_rules_get_run(struct udev_rules *rules, struct udevice *udev);
130 extern int udev_rules_run(struct udevice *udev);
132 extern void udev_rules_apply_format(struct udevice *udev, char *string, size_t maxsize);