Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
attribute_container.h
Go to the documentation of this file.
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/list.h>
13
#include <
linux/klist.h
>
14
15
struct
device
;
16
17
struct
attribute_container
{
18
struct
list_head
node
;
19
struct
klist
containers
;
20
struct
class
*
class
;
21
const
struct
attribute_group
*
grp
;
22
struct
device_attribute
**
attrs
;
23
int
(*
match
)(
struct
attribute_container
*,
struct
device
*);
24
#define ATTRIBUTE_CONTAINER_NO_CLASSDEVS 0x01
25
unsigned
long
flags
;
26
};
27
28
static
inline
int
29
attribute_container_no_classdevs(
struct
attribute_container
*atc)
30
{
31
return
atc->
flags
&
ATTRIBUTE_CONTAINER_NO_CLASSDEVS
;
32
}
33
34
static
inline
void
35
attribute_container_set_no_classdevs(
struct
attribute_container
*atc)
36
{
37
atc->
flags
|=
ATTRIBUTE_CONTAINER_NO_CLASSDEVS
;
38
}
39
40
int
attribute_container_register
(
struct
attribute_container
*
cont
);
41
int
__must_check
attribute_container_unregister
(
struct
attribute_container
*
cont
);
42
void
attribute_container_create_device
(
struct
device
*
dev
,
43
int
(*
fn
)(
struct
attribute_container
*,
44
struct
device
*,
45
struct
device
*));
46
void
attribute_container_add_device
(
struct
device
*dev,
47
int
(*
fn
)(
struct
attribute_container
*,
48
struct
device
*,
49
struct
device
*));
50
void
attribute_container_remove_device
(
struct
device
*dev,
51
void
(*
fn
)(
struct
attribute_container
*,
52
struct
device
*,
53
struct
device
*));
54
void
attribute_container_device_trigger
(
struct
device
*dev,
55
int
(*
fn
)(
struct
attribute_container
*,
56
struct
device
*,
57
struct
device
*));
58
void
attribute_container_trigger
(
struct
device
*dev,
59
int
(*
fn
)(
struct
attribute_container
*,
60
struct
device
*));
61
int
attribute_container_add_attrs
(
struct
device
*classdev);
62
int
attribute_container_add_class_device
(
struct
device
*classdev);
63
int
attribute_container_add_class_device_adapter
(
struct
attribute_container
*
cont
,
64
struct
device
*dev,
65
struct
device
*classdev);
66
void
attribute_container_remove_attrs
(
struct
device
*classdev);
67
void
attribute_container_class_device_del
(
struct
device
*classdev);
68
struct
attribute_container
*
attribute_container_classdev_to_container
(
struct
device
*);
69
struct
device
*
attribute_container_find_class_device
(
struct
attribute_container
*,
struct
device
*);
70
struct
device_attribute
**
attribute_container_classdev_to_attrs
(
const
struct
device
*classdev);
71
72
#endif
Generated on Thu Jan 10 2013 14:51:03 for Linux Kernel by
1.8.2