X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Fudev_rules.h;h=d8f2f367c91e3b5b6fed313198d146a36334f943;hb=aa8734ffcb8a895fc8d66ff383cbcf8f4b78f562;hp=fe0f9dfbb5f0a2bf2e2f89ecd9834d3725799421;hpb=726687ad48bdececed1e7e44387c50e009e28208;p=elogind.git diff --git a/udev/udev_rules.h b/udev/udev_rules.h index fe0f9dfbb..d8f2f367c 100644 --- a/udev/udev_rules.h +++ b/udev/udev_rules.h @@ -1,30 +1,27 @@ /* * Copyright (C) 2003-2004 Greg Kroah-Hartman - * Copyright (C) 2004-2006 Kay Sievers + * Copyright (C) 2004-2008 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * 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, either version 2 of the License, or + * (at your option) any later version. * + * 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, see . */ #ifndef UDEV_RULES_H #define UDEV_RULES_H #include "udev.h" -#include "list.h" #define PAIRS_MAX 5 -#define RULESFILE_SUFFIX ".rules" enum key_operation { KEY_OP_UNSET, @@ -87,6 +84,7 @@ struct udev_rule { struct key wait_for; struct key label; struct key goto_label; + size_t goto_rule_off; struct key name; struct key symlink; @@ -109,23 +107,28 @@ struct udev_rule { }; struct udev_rules { + struct udev *udev; char *buf; size_t bufsize; - size_t current; int resolve_names; }; -extern int udev_rules_init(struct udev_rules *rules, int resolve_names); +struct udev_rules_iter { + struct udev_rules *rules; + size_t current; +}; + +extern int udev_rules_init(struct udev *udev, struct udev_rules *rules, int resolve_names); 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 void udev_rules_iter_init(struct udev_rules_iter *iter, struct udev_rules *rules); +extern struct udev_rule *udev_rules_iter_next(struct udev_rules_iter *iter); +extern struct udev_rule *udev_rules_iter_goto(struct udev_rules_iter *iter, size_t rule_off); -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 int udev_rules_run(struct udevice *udev); +extern int udev_rules_get_name(struct udev_rules *rules, struct udev_event *event); +extern int udev_rules_get_run(struct udev_rules *rules, struct udev_event *event); +extern int udev_rules_run(struct udev_event *event); -extern void udev_rules_apply_format(struct udevice *udev, char *string, size_t maxsize); +extern void udev_rules_apply_format(struct udev_event *event, char *string, size_t maxsize); #endif