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
arch
x86
platform
uv
uv_sysfs.c
Go to the documentation of this file.
1
/*
2
* This file supports the /sys/firmware/sgi_uv interfaces for SGI UV.
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; either version 2 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved.
19
* Copyright (c) Russ Anderson
20
*/
21
22
#include <linux/device.h>
23
#include <
asm/uv/bios.h
>
24
#include <asm/uv/uv.h>
25
26
struct
kobject
*
sgi_uv_kobj
;
27
28
static
ssize_t
partition_id_show(
struct
kobject
*kobj,
29
struct
kobj_attribute
*
attr
,
char
*
buf
)
30
{
31
return
snprintf
(buf,
PAGE_SIZE
,
"%ld\n"
,
sn_partition_id
);
32
}
33
34
static
ssize_t
coherence_id_show(
struct
kobject
*kobj,
35
struct
kobj_attribute
*
attr
,
char
*
buf
)
36
{
37
return
snprintf
(buf,
PAGE_SIZE
,
"%ld\n"
,
partition_coherence_id
());
38
}
39
40
static
struct
kobj_attribute
partition_id_attr =
41
__ATTR
(partition_id,
S_IRUGO
, partition_id_show,
NULL
);
42
43
static
struct
kobj_attribute
coherence_id_attr =
44
__ATTR
(coherence_id,
S_IRUGO
, coherence_id_show,
NULL
);
45
46
47
static
int
__init
sgi_uv_sysfs_init(
void
)
48
{
49
unsigned
long
ret
;
50
51
if
(!
is_uv_system
())
52
return
-
ENODEV
;
53
54
if
(!sgi_uv_kobj)
55
sgi_uv_kobj =
kobject_create_and_add
(
"sgi_uv"
,
firmware_kobj
);
56
if
(!sgi_uv_kobj) {
57
printk
(
KERN_WARNING
"kobject_create_and_add sgi_uv failed\n"
);
58
return
-
EINVAL
;
59
}
60
61
ret =
sysfs_create_file
(sgi_uv_kobj, &partition_id_attr.
attr
);
62
if
(ret) {
63
printk
(
KERN_WARNING
"sysfs_create_file partition_id failed\n"
);
64
return
ret
;
65
}
66
67
ret =
sysfs_create_file
(sgi_uv_kobj, &coherence_id_attr.
attr
);
68
if
(ret) {
69
printk
(
KERN_WARNING
"sysfs_create_file coherence_id failed\n"
);
70
return
ret
;
71
}
72
73
return
0;
74
}
75
76
device_initcall
(sgi_uv_sysfs_init);
Generated on Thu Jan 10 2013 13:21:49 for Linux Kernel by
1.8.2