1c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner/****************************************************************************
2c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************
3c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***
4c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   This header was automatically generated from a Linux kernel header
5c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   of the same name, to make information necessary for userspace to
6c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   call into the kernel available to libc.  It contains only constants,
7c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   structures, and macros generated from the original header, and thus,
8c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   contains no copyrightable information.
9c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***
10c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************
11c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************/
12c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#ifndef _ATTRIBUTE_CONTAINER_H_
13c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define _ATTRIBUTE_CONTAINER_H_
14c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
15c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#include <linux/device.h>
16c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#include <linux/list.h>
17c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#include <linux/klist.h>
18c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#include <linux/spinlock.h>
19c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
20c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerstruct attribute_container {
21c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner struct list_head node;
22c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner struct klist containers;
23c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner struct class *class;
24c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner struct class_device_attribute **attrs;
25c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int (*match)(struct attribute_container *, struct device *);
26c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define ATTRIBUTE_CONTAINER_NO_CLASSDEVS 0x01
27c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner unsigned long flags;
28c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner};
29c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
30c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerstruct attribute_container *attribute_container_classdev_to_container(struct class_device *);
31c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerstruct class_device *attribute_container_find_class_device(struct attribute_container *, struct device *);
32c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerstruct class_device_attribute **attribute_container_classdev_to_attrs(const struct class_device *classdev);
33c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
34c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#endif
35