LCOV - code coverage report
Current view: top level - lkbce/include/linux - attribute_container.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 1 100.0 %
Date: 2017-01-25 Functions: 0 0 -

          Line data    Source code
       1             : /*
       2             :  * attribute_container.h - a generic container for all classes
       3             :  *
       4             :  * Copyright (c) 2005 - James Bottomley <James.Bottomley@steeleye.com>
       5             :  *
       6             :  * This file is licensed under GPLv2
       7             :  */
       8             : 
       9             : #ifndef _ATTRIBUTE_CONTAINER_H_
      10             : #define _ATTRIBUTE_CONTAINER_H_
      11             : 
      12             : #include <linux/device.h>
      13             : #include <linux/list.h>
      14             : #include <linux/klist.h>
      15             : 
      16             : struct attribute_container {
      17             :         struct list_head        node;
      18             :         struct klist            containers;
      19             :         struct class            *class;
      20             :         const struct attribute_group *grp;
      21             :         struct device_attribute **attrs;
      22             :         int (*match)(struct attribute_container *, struct device *);
      23             : #define ATTRIBUTE_CONTAINER_NO_CLASSDEVS        0x01
      24             :         unsigned long           flags;
      25             : };
      26             : 
      27             : static inline int
      28             : attribute_container_no_classdevs(struct attribute_container *atc)
      29             : {
      30             :         return atc->flags & ATTRIBUTE_CONTAINER_NO_CLASSDEVS;
      31             : }
      32             : 
      33             : static inline void
      34             : attribute_container_set_no_classdevs(struct attribute_container *atc)
      35             : {
      36             :         atc->flags |= ATTRIBUTE_CONTAINER_NO_CLASSDEVS;
      37             : }
      38             : 
      39             : int attribute_container_register(struct attribute_container *cont);
      40             : int __must_check attribute_container_unregister(struct attribute_container *cont);
      41             : void attribute_container_create_device(struct device *dev,
      42             :                                        int (*fn)(struct attribute_container *,
      43             :                                                  struct device *,
      44             :                                                  struct device *));
      45             : void attribute_container_add_device(struct device *dev,
      46             :                                     int (*fn)(struct attribute_container *,
      47             :                                               struct device *,
      48             :                                               struct device *));
      49             : void attribute_container_remove_device(struct device *dev,
      50             :                                        void (*fn)(struct attribute_container *,
      51             :                                                   struct device *,
      52             :                                                   struct device *));
      53             : void attribute_container_device_trigger(struct device *dev, 
      54             :                                         int (*fn)(struct attribute_container *,
      55             :                                                   struct device *,
      56             :                                                   struct device *));
      57             : void attribute_container_trigger(struct device *dev, 
      58             :                                  int (*fn)(struct attribute_container *,
      59             :                                            struct device *));
      60             : int attribute_container_add_attrs(struct device *classdev);
      61             : int attribute_container_add_class_device(struct device *classdev);
      62             : int attribute_container_add_class_device_adapter(struct attribute_container *cont,
      63             :                                                  struct device *dev,
      64             :                                                  struct device *classdev);
      65             : void attribute_container_remove_attrs(struct device *classdev);
      66             : void attribute_container_class_device_del(struct device *classdev);
      67             : struct attribute_container *attribute_container_classdev_to_container(struct device *);
      68             : struct device *attribute_container_find_class_device(struct attribute_container *, struct device *);
      69             : struct device_attribute **attribute_container_classdev_to_attrs(const struct device *classdev);
      70           1 : 
      71             : #endif

Generated by: LCOV version 1.10