X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Flib%2Flibudev-list.c;h=182d75aa8a201d116f0fdb4c1231b6d6a318aa4a;hb=a0ee5a05bb3a9a838c35e07ff7a0bb7bbd2d0c9b;hp=f205c61a7068b2b5ec308779d432b2f0329bf495;hpb=eb8837e15cdb9ad8f6840406f6ef0c8cfd702b98;p=elogind.git diff --git a/udev/lib/libudev-list.c b/udev/lib/libudev-list.c index f205c61a7..182d75aa8 100644 --- a/udev/lib/libudev-list.c +++ b/udev/lib/libudev-list.c @@ -3,18 +3,10 @@ * * Copyright (C) 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, 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 . + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. */ #include @@ -28,8 +20,8 @@ #include "libudev-private.h" struct udev_list_entry { - struct udev *udev; struct udev_list_node node; + struct udev *udev; struct udev_list_node *list; char *name; char *value; @@ -86,15 +78,22 @@ static struct udev_list_entry *list_node_to_entry(struct udev_list_node *node) } /* insert entry into a list as the last element */ -static void list_entry_append(struct udev_list_entry *new, struct udev_list_node *list) +void udev_list_entry_append(struct udev_list_entry *new, struct udev_list_node *list) { /* inserting before the list head make the node the last node in the list */ udev_list_node_insert_between(&new->node, list->prev, list); new->list = list; } +/* remove entry from a list */ +void udev_list_entry_remove(struct udev_list_entry *entry) +{ + udev_list_node_remove(&entry->node); + entry->list = NULL; +} + /* insert entry into a list, before a given existing entry */ -static void list_entry_insert_before(struct udev_list_entry *new, struct udev_list_entry *entry) +void udev_list_entry_insert_before(struct udev_list_entry *new, struct udev_list_entry *entry) { udev_list_node_insert_between(&new->node, entry->node.prev, &entry->node); new->list = entry->list; @@ -110,17 +109,17 @@ struct udev_list_entry *udev_list_entry_add(struct udev *udev, struct udev_list_ if (unique) udev_list_entry_foreach(entry_loop, udev_list_get_entry(list)) { if (strcmp(entry_loop->name, name) == 0) { - info(udev, "'%s' is already in the list\n", name); + dbg(udev, "'%s' is already in the list\n", name); free(entry_loop->value); if (value == NULL) { entry_loop->value = NULL; - info(udev, "'%s' value unset\n", name); + dbg(udev, "'%s' value unset\n", name); return entry_loop; } entry_loop->value = strdup(value); if (entry_loop->value == NULL) return NULL; - info(udev, "'%s' value replaced with '%s'\n", name, value); + dbg(udev, "'%s' value replaced with '%s'\n", name, value); return entry_loop; } } @@ -150,14 +149,14 @@ struct udev_list_entry *udev_list_entry_add(struct udev *udev, struct udev_list_ } } if (entry_loop != NULL) - list_entry_insert_before(entry_new, entry_loop); + udev_list_entry_insert_before(entry_new, entry_loop); else - list_entry_append(entry_new, list); + udev_list_entry_append(entry_new, list); dbg(udev, "'%s=%s' added\n", entry_new->name, entry_new->value); return entry_new; } -void udev_list_entry_remove(struct udev_list_entry *entry) +void udev_list_entry_delete(struct udev_list_entry *entry) { udev_list_node_remove(&entry->node); free(entry->name); @@ -171,20 +170,7 @@ void udev_list_cleanup_entries(struct udev *udev, struct udev_list_node *list) struct udev_list_entry *entry_tmp; udev_list_entry_foreach_safe(entry_loop, entry_tmp, udev_list_get_entry(list)) - udev_list_entry_remove(entry_loop); -} - -void udev_list_entry_move_to_end(struct udev_list_entry *list_entry) -{ - udev_list_node_remove(&list_entry->node); - udev_list_node_insert_between(&list_entry->node, list_entry->list->prev, list_entry->list); -} - -void udev_list_entry_move_before(struct udev_list_entry *list_entry, struct udev_list_entry *entry) -{ - udev_list_node_remove(&list_entry->node); - udev_list_node_insert_between(&list_entry->node, entry->node.prev, &entry->node); - list_entry->list = entry->list; + udev_list_entry_delete(entry_loop); } struct udev_list_entry *udev_list_get_entry(struct udev_list_node *list) @@ -234,14 +220,14 @@ const char *udev_list_entry_get_value(struct udev_list_entry *list_entry) return list_entry->value; } -extern int udev_list_entry_get_flag(struct udev_list_entry *list_entry) +int udev_list_entry_get_flag(struct udev_list_entry *list_entry) { if (list_entry == NULL) return -EINVAL; return list_entry->flag; } -extern void udev_list_entry_set_flag(struct udev_list_entry *list_entry, int flag) +void udev_list_entry_set_flag(struct udev_list_entry *list_entry, int flag) { if (list_entry == NULL) return;