Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
bug2833
cloud-kernel
提交
a3b2c5e4
cloud-kernel
项目概览
bug2833
/
cloud-kernel
与 Fork 源项目一致
Fork自
openanolis / cloud-kernel
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a3b2c5e4
编写于
4月 05, 2009
作者:
L
Len Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dynamic-ssdt' into release
上级
49383700
4658e4ef
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
48 addition
and
3 deletion
+48
-3
drivers/acpi/system.c
drivers/acpi/system.c
+48
-3
未找到文件。
drivers/acpi/system.c
浏览文件 @
a3b2c5e4
...
...
@@ -62,6 +62,7 @@ module_param_call(acpica_version, NULL, param_get_acpica_version, NULL, 0444);
-------------------------------------------------------------------------- */
static
LIST_HEAD
(
acpi_table_attr_list
);
static
struct
kobject
*
tables_kobj
;
static
struct
kobject
*
dynamic_tables_kobj
;
struct
acpi_table_attr
{
struct
bin_attribute
attr
;
...
...
@@ -128,6 +129,40 @@ static void acpi_table_attr_init(struct acpi_table_attr *table_attr,
return
;
}
static
acpi_status
acpi_sysfs_table_handler
(
u32
event
,
void
*
table
,
void
*
context
)
{
struct
acpi_table_attr
*
table_attr
;
switch
(
event
)
{
case
ACPI_TABLE_EVENT_LOAD
:
table_attr
=
kzalloc
(
sizeof
(
struct
acpi_table_attr
),
GFP_KERNEL
);
if
(
!
table_attr
)
return
AE_NO_MEMORY
;
acpi_table_attr_init
(
table_attr
,
table
);
if
(
sysfs_create_bin_file
(
dynamic_tables_kobj
,
&
table_attr
->
attr
))
{
kfree
(
table_attr
);
return
AE_ERROR
;
}
else
list_add_tail
(
&
table_attr
->
node
,
&
acpi_table_attr_list
);
break
;
case
ACPI_TABLE_EVENT_UNLOAD
:
/*
* we do not need to do anything right now
* because the table is not deleted from the
* global table list when unloading it.
*/
break
;
default:
return
AE_BAD_PARAMETER
;
}
return
AE_OK
;
}
static
int
acpi_system_sysfs_init
(
void
)
{
struct
acpi_table_attr
*
table_attr
;
...
...
@@ -137,7 +172,11 @@ static int acpi_system_sysfs_init(void)
tables_kobj
=
kobject_create_and_add
(
"tables"
,
acpi_kobj
);
if
(
!
tables_kobj
)
return
-
ENOMEM
;
goto
err
;
dynamic_tables_kobj
=
kobject_create_and_add
(
"dynamic"
,
tables_kobj
);
if
(
!
dynamic_tables_kobj
)
goto
err_dynamic_tables
;
do
{
result
=
acpi_get_table_by_index
(
table_index
,
&
table_header
);
...
...
@@ -162,8 +201,14 @@ static int acpi_system_sysfs_init(void)
}
}
while
(
!
result
);
kobject_uevent
(
tables_kobj
,
KOBJ_ADD
);
return
0
;
kobject_uevent
(
dynamic_tables_kobj
,
KOBJ_ADD
);
result
=
acpi_install_table_handler
(
acpi_sysfs_table_handler
,
NULL
);
return
result
==
AE_OK
?
0
:
-
EINVAL
;
err_dynamic_tables:
kobject_put
(
tables_kobj
);
err:
return
-
ENOMEM
;
}
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录