The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/lib/of-reconfig-notifier-error-inject.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 #include <linux/kernel.h>
    2 #include <linux/module.h>
    3 #include <linux/of.h>
    4 
    5 #include "notifier-error-inject.h"
    6 
    7 static int priority;
    8 module_param(priority, int, 0);
    9 MODULE_PARM_DESC(priority, "specify OF reconfig notifier priority");
   10 
   11 static struct notifier_err_inject reconfig_err_inject = {
   12         .actions = {
   13                 { NOTIFIER_ERR_INJECT_ACTION(OF_RECONFIG_ATTACH_NODE) },
   14                 { NOTIFIER_ERR_INJECT_ACTION(OF_RECONFIG_DETACH_NODE) },
   15                 { NOTIFIER_ERR_INJECT_ACTION(OF_RECONFIG_ADD_PROPERTY) },
   16                 { NOTIFIER_ERR_INJECT_ACTION(OF_RECONFIG_REMOVE_PROPERTY) },
   17                 { NOTIFIER_ERR_INJECT_ACTION(OF_RECONFIG_UPDATE_PROPERTY) },
   18                 {}
   19         }
   20 };
   21 
   22 static struct dentry *dir;
   23 
   24 static int err_inject_init(void)
   25 {
   26         int err;
   27 
   28         dir = notifier_err_inject_init("OF-reconfig",
   29                 notifier_err_inject_dir, &reconfig_err_inject, priority);
   30         if (IS_ERR(dir))
   31                 return PTR_ERR(dir);
   32 
   33         err = of_reconfig_notifier_register(&reconfig_err_inject.nb);
   34         if (err)
   35                 debugfs_remove_recursive(dir);
   36 
   37         return err;
   38 }
   39 
   40 static void err_inject_exit(void)
   41 {
   42         of_reconfig_notifier_unregister(&reconfig_err_inject.nb);
   43         debugfs_remove_recursive(dir);
   44 }
   45 
   46 module_init(err_inject_init);
   47 module_exit(err_inject_exit);
   48 
   49 MODULE_DESCRIPTION("OF reconfig notifier error injection module");
   50 MODULE_LICENSE("GPL");
   51 MODULE_AUTHOR("Akinobu Mita <akinobu.mita@gmail.com>");

Cache object: ebe7a7592a7540bebbdffb9792b326c5


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.