Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
c56a3b18
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
c56a3b18
编写于
4月 13, 2010
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ALSA: Update the documentation for changes of proc files
Signed-off-by:
N
Takashi Iwai
<
tiwai@suse.de
>
上级
02f4865f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
10 deletion
+17
-10
Documentation/DocBook/writing-an-alsa-driver.tmpl
Documentation/DocBook/writing-an-alsa-driver.tmpl
+17
-10
未找到文件。
Documentation/DocBook/writing-an-alsa-driver.tmpl
浏览文件 @
c56a3b18
...
@@ -5518,34 +5518,41 @@ struct _snd_pcm_runtime {
...
@@ -5518,34 +5518,41 @@ struct _snd_pcm_runtime {
]]>
]]>
</programlisting>
</programlisting>
</informalexample>
</informalexample>
For the raw data,
<structfield>
size
</structfield>
field must be
set properly. This specifies the maximum size of the proc file access.
</para>
</para>
<para>
<para>
The
callback is much more complicated than the text-file
The
read/write callbacks of raw mode are more direct than the text mode.
version.
You need to use a low-level I/O functions such as
You need to use a low-level I/O functions such as
<function>
copy_from/to_user()
</function>
to transfer the
<function>
copy_from/to_user()
</function>
to transfer the
data.
data.
<informalexample>
<informalexample>
<programlisting>
<programlisting>
<![CDATA[
<![CDATA[
static
long
my_file_io_read(struct snd_info_entry *entry,
static
ssize_t
my_file_io_read(struct snd_info_entry *entry,
void *file_private_data,
void *file_private_data,
struct file *file,
struct file *file,
char *buf,
char *buf,
unsigned long
count,
size_t
count,
unsigned long
pos)
loff_t
pos)
{
{
long size = count;
if (copy_to_user(buf, local_data + pos, count))
if (pos + size >
local_max_size)
size = local_max_size - pos;
if (copy_to_user(buf, local_data + pos, size))
return -EFAULT;
return -EFAULT;
return
size
;
return
count
;
}
}
]]>
]]>
</programlisting>
</programlisting>
</informalexample>
</informalexample>
If the size of the info entry has been set up properly,
<structfield>
count
</structfield>
and
<structfield>
pos
</structfield>
are
guaranteed to fit within 0 and the given size.
You don't have to check the range in the callbacks unless any
other condition is required.
</para>
</para>
</chapter>
</chapter>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录