Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
2011fe56
Q
qemu
项目概览
openeuler
/
qemu
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2011fe56
编写于
8月 15, 2011
作者:
A
Anthony Liguori
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
char: document the functions that will be the public interface
Signed-off-by:
N
Anthony Liguori
<
aliguori@us.ibm.com
>
上级
903396ad
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
130 addition
and
7 deletion
+130
-7
qemu-char.h
qemu-char.h
+130
-7
未找到文件。
qemu-char.h
浏览文件 @
2011fe56
...
...
@@ -76,33 +76,156 @@ struct CharDriverState {
QTAILQ_ENTRY
(
CharDriverState
)
next
;
};
QemuOpts
*
qemu_chr_parse_compat
(
const
char
*
label
,
const
char
*
filename
);
/**
* @qemu_chr_new_from_opts:
*
* Create a new character backend from a QemuOpts list.
*
* @opts see qemu-config.c for a list of valid options
* @init not sure..
*
* Returns: a new character backend
*/
CharDriverState
*
qemu_chr_new_from_opts
(
QemuOpts
*
opts
,
void
(
*
init
)(
struct
CharDriverState
*
s
));
CharDriverState
*
qemu_chr_new
(
const
char
*
label
,
const
char
*
filename
,
void
(
*
init
)(
struct
CharDriverState
*
s
));
/**
* @qemu_chr_new:
*
* Create a new character backend from a URI.
*
* @label the name of the backend
* @filename the URI
* @init not sure..
*
* Returns: a new character backend
*/
CharDriverState
*
qemu_chr_new
(
const
char
*
label
,
const
char
*
filename
,
void
(
*
init
)(
struct
CharDriverState
*
s
));
/**
* @qemu_chr_delete:
*
* Destroy a character backend.
*/
void
qemu_chr_delete
(
CharDriverState
*
chr
);
/**
* @qemu_chr_fe_set_echo:
*
* Ask the backend to override its normal echo setting. This only really
* applies to the stdio backend and is used by the QMP server such that you
* can see what you type if you try to type QMP commands.
*
* @echo true to enable echo, false to disable echo
*/
void
qemu_chr_fe_set_echo
(
struct
CharDriverState
*
chr
,
bool
echo
);
/**
* @qemu_chr_fe_open:
*
* Open a character backend. This function call is an indication that the
* front end is ready to begin doing I/O.
*/
void
qemu_chr_fe_open
(
struct
CharDriverState
*
chr
);
/**
* @qemu_chr_fe_close:
*
* Close a character backend. This function call indicates that the front end
* no longer is able to process I/O. To process I/O again, the front end will
* call @qemu_chr_fe_open.
*/
void
qemu_chr_fe_close
(
struct
CharDriverState
*
chr
);
void
qemu_chr_delete
(
CharDriverState
*
chr
);
/**
* @qemu_chr_fe_printf:
*
* Write to a character backend using a printf style interface.
*
* @fmt see #printf
*/
void
qemu_chr_fe_printf
(
CharDriverState
*
s
,
const
char
*
fmt
,
...)
GCC_FMT_ATTR
(
2
,
3
);
/**
* @qemu_chr_fe_write:
*
* Write data to a character backend from the front end. This function will
* send data from the front end to the back end.
*
* @buf the data
* @len the number of bytes to send
*
* Returns: the number of bytes consumed
*/
int
qemu_chr_fe_write
(
CharDriverState
*
s
,
const
uint8_t
*
buf
,
int
len
);
/**
* @qemu_chr_fe_ioctl:
*
* Issue a device specific ioctl to a backend.
*
* @cmd see CHR_IOCTL_*
* @arg the data associated with @cmd
*
* Returns: if @cmd is not supported by the backend, -ENOTSUP, otherwise the
* return value depends on the semantics of @cmd
*/
int
qemu_chr_fe_ioctl
(
CharDriverState
*
s
,
int
cmd
,
void
*
arg
);
/**
* @qemu_chr_fe_get_msgfd:
*
* For backends capable of fd passing, return the latest file descriptor passed
* by a client.
*
* Returns: -1 if fd passing isn't supported or there is no pending file
* descriptor. If a file descriptor is returned, subsequent calls to
* this function will return -1 until a client sends a new file
* descriptor.
*/
int
qemu_chr_fe_get_msgfd
(
CharDriverState
*
s
);
/**
* @qemu_chr_be_can_write:
*
* Determine how much data the front end can currently accept. This function
* returns the number of bytes the front end can accept. If it returns 0, the
* front end cannot receive data at the moment. The function must be polled
* to determine when data can be received.
*
* Returns: the number of bytes the front end can receive via @qemu_chr_be_write
*/
int
qemu_chr_be_can_write
(
CharDriverState
*
s
);
/**
* @qemu_chr_be_write:
*
* Write data from the back end to the front end. Before issuing this call,
* the caller should call @qemu_chr_be_can_write to determine how much data
* the front end can currently accept.
*
* @buf a buffer to receive data from the front end
* @len the number of bytes to receive from the front end
*/
void
qemu_chr_be_write
(
CharDriverState
*
s
,
uint8_t
*
buf
,
int
len
);
void
qemu_chr_add_handlers
(
CharDriverState
*
s
,
IOCanReadHandler
*
fd_can_read
,
IOReadHandler
*
fd_read
,
IOEventHandler
*
fd_event
,
void
*
opaque
);
int
qemu_chr_fe_ioctl
(
CharDriverState
*
s
,
int
cmd
,
void
*
arg
);
void
qemu_chr_generic_open
(
CharDriverState
*
s
);
int
qemu_chr_be_can_write
(
CharDriverState
*
s
);
void
qemu_chr_be_write
(
CharDriverState
*
s
,
uint8_t
*
buf
,
int
len
);
int
qemu_chr_fe_get_msgfd
(
CharDriverState
*
s
);
void
qemu_chr_accept_input
(
CharDriverState
*
s
);
int
qemu_chr_add_client
(
CharDriverState
*
s
,
int
fd
);
void
qemu_chr_info_print
(
Monitor
*
mon
,
const
QObject
*
ret_data
);
void
qemu_chr_info
(
Monitor
*
mon
,
QObject
**
ret_data
);
CharDriverState
*
qemu_chr_find
(
const
char
*
name
);
QemuOpts
*
qemu_chr_parse_compat
(
const
char
*
label
,
const
char
*
filename
);
/* add an eventfd to the qemu devices that are polled */
CharDriverState
*
qemu_chr_open_eventfd
(
int
eventfd
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录