/*
- * Copyright (C) 2007-2009 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 2007-2012 Kay Sievers <kay.sievers@vrfy.org>
*
* 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
#include "udev.h"
+static bool initialized;
+
static const struct udev_builtin *builtins[] = {
[UDEV_BUILTIN_BLKID] = &udev_builtin_blkid,
+ [UDEV_BUILTIN_BTRFS] = &udev_builtin_btrfs,
[UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware,
[UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id,
[UDEV_BUILTIN_KMOD] = &udev_builtin_kmod,
int udev_builtin_init(struct udev *udev)
{
unsigned int i;
- int err;
+ int err = 0;
+
+ if (initialized)
+ return 0;
for (i = 0; i < ELEMENTSOF(builtins); i++) {
if (builtins[i]->init) {
break;
}
}
+
+ initialized = true;
return err;
}
{
unsigned int i;
+ if (!initialized)
+ return;
+
for (i = 0; i < ELEMENTSOF(builtins); i++)
if (builtins[i]->exit)
builtins[i]->exit(udev);
+
+ initialized = false;
}
bool udev_builtin_validate(struct udev *udev)
if (key[0] != '.')
udev_list_entry_set_num(entry, true);
- log_debug("%s=%s\n", key, val);
if (test)
printf("%s=%s\n", key, val);
return 0;