/* list.c - VasEBoot list function */ /* * VAS_EBOOT -- GRand Unified Bootloader * Copyright (C) 2009 Free Software Foundation, Inc. * * VAS_EBOOT 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 3 of the License, or * (at your option) any later version. * * VAS_EBOOT 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 VAS_EBOOT. If not, see . */ #include #include #include void * VasEBoot_named_list_find (VasEBoot_named_list_t head, const char *name) { VasEBoot_named_list_t item; FOR_LIST_ELEMENTS (item, head) if (VasEBoot_strcmp (item->name, name) == 0) return item; return NULL; } void VasEBoot_list_push (VasEBoot_list_t *head, VasEBoot_list_t item) { item->prev = head; if (*head) (*head)->prev = &item->next; item->next = *head; *head = item; } void VasEBoot_list_remove (VasEBoot_list_t item) { if (item->prev) *item->prev = item->next; if (item->next) item->next->prev = item->prev; item->next = 0; item->prev = 0; }