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
drivers
macintosh
macio_sysfs.c
Go to the documentation of this file.
1
#include <linux/kernel.h>
2
#include <linux/stat.h>
3
#include <
asm/macio.h
>
4
5
6
#define macio_config_of_attr(field, format_string) \
7
static ssize_t \
8
field##_show (struct device *dev, struct device_attribute *attr, \
9
char *buf) \
10
{ \
11
struct macio_dev *mdev = to_macio_device (dev); \
12
return sprintf (buf, format_string, mdev->ofdev.dev.of_node->field); \
13
}
14
15
static
ssize_t
16
compatible_show (
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
17
{
18
struct
platform_device
*of;
19
const
char
*compat;
20
int
cplen;
21
int
length
= 0;
22
23
of = &to_macio_device (dev)->ofdev;
24
compat =
of_get_property
(of->
dev
.of_node,
"compatible"
, &cplen);
25
if
(!compat) {
26
*buf =
'\0'
;
27
return
0;
28
}
29
while
(cplen > 0) {
30
int
l
;
31
length +=
sprintf
(buf,
"%s\n"
, compat);
32
buf +=
length
;
33
l =
strlen
(compat) + 1;
34
compat +=
l
;
35
cplen -=
l
;
36
}
37
38
return
length
;
39
}
40
41
static
ssize_t
modalias_show (
struct
device
*
dev
,
struct
device_attribute
*
attr
,
42
char
*
buf
)
43
{
44
int
len
=
of_device_get_modalias
(dev, buf,
PAGE_SIZE
- 2);
45
46
buf[len] =
'\n'
;
47
buf[len+1] = 0;
48
49
return
len+1;
50
}
51
52
static
ssize_t
devspec_show(
struct
device
*
dev
,
53
struct
device_attribute
*
attr
,
char
*
buf
)
54
{
55
struct
platform_device
*ofdev;
56
57
ofdev =
to_platform_device
(dev);
58
return
sprintf
(buf,
"%s\n"
, ofdev->
dev
.of_node->full_name);
59
}
60
61
macio_config_of_attr
(
name
,
"%s\n"
);
62
macio_config_of_attr
(
type
,
"%s\n"
);
63
64
struct
device_attribute
macio_dev_attrs
[] = {
65
__ATTR_RO
(
name
),
66
__ATTR_RO
(
type
),
67
__ATTR_RO
(
compatible
),
68
__ATTR_RO
(modalias),
69
__ATTR_RO
(devspec),
70
__ATTR_NULL
71
};
Generated on Thu Jan 10 2013 13:43:17 for Linux Kernel by
1.8.2