Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
1c82392a
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,发现更多精彩内容 >>
提交
1c82392a
编写于
4月 24, 2013
作者:
G
Gerd Hoffmann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
xhci: add tracepoint for endpoint state changes
Signed-off-by:
N
Gerd Hoffmann
<
kraxel@redhat.com
>
上级
52190422
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
0 deletion
+20
-0
hw/usb/hcd-xhci.c
hw/usb/hcd-xhci.c
+19
-0
trace-events
trace-events
+1
-0
未找到文件。
hw/usb/hcd-xhci.c
浏览文件 @
1c82392a
...
...
@@ -586,6 +586,14 @@ static const char *TRBCCode_names[] = {
[
CC_SPLIT_TRANSACTION_ERROR
]
=
"CC_SPLIT_TRANSACTION_ERROR"
,
};
static
const
char
*
ep_state_names
[]
=
{
[
EP_DISABLED
]
=
"disabled"
,
[
EP_RUNNING
]
=
"running"
,
[
EP_HALTED
]
=
"halted"
,
[
EP_STOPPED
]
=
"stopped"
,
[
EP_ERROR
]
=
"error"
,
};
static
const
char
*
lookup_name
(
uint32_t
index
,
const
char
**
list
,
uint32_t
llen
)
{
if
(
index
>=
llen
||
list
[
index
]
==
NULL
)
{
...
...
@@ -606,6 +614,12 @@ static const char *event_name(XHCIEvent *event)
ARRAY_SIZE
(
TRBCCode_names
));
}
static
const
char
*
ep_state_name
(
uint32_t
state
)
{
return
lookup_name
(
state
,
ep_state_names
,
ARRAY_SIZE
(
ep_state_names
));
}
static
uint64_t
xhci_mfindex_get
(
XHCIState
*
xhci
)
{
int64_t
now
=
qemu_clock_get_ns
(
QEMU_CLOCK_VIRTUAL
);
...
...
@@ -1203,6 +1217,11 @@ static void xhci_set_ep_state(XHCIState *xhci, XHCIEPContext *epctx,
}
xhci_dma_write_u32s
(
xhci
,
epctx
->
pctx
,
ctx
,
sizeof
(
ctx
));
if
(
epctx
->
state
!=
state
)
{
trace_usb_xhci_ep_state
(
epctx
->
slotid
,
epctx
->
epid
,
ep_state_name
(
epctx
->
state
),
ep_state_name
(
state
));
}
epctx
->
state
=
state
;
}
...
...
trace-events
浏览文件 @
1c82392a
...
...
@@ -381,6 +381,7 @@ usb_xhci_ep_set_dequeue(uint32_t slotid, uint32_t epid, uint32_t streamid, uint6
usb_xhci_ep_kick(uint32_t slotid, uint32_t epid, uint32_t streamid) "slotid %d, epid %d, streamid %d"
usb_xhci_ep_stop(uint32_t slotid, uint32_t epid) "slotid %d, epid %d"
usb_xhci_ep_reset(uint32_t slotid, uint32_t epid) "slotid %d, epid %d"
usb_xhci_ep_state(uint32_t slotid, uint32_t epid, const char *os, const char *ns) "slotid %d, epid %d, %s -> %s"
usb_xhci_xfer_start(void *xfer, uint32_t slotid, uint32_t epid, uint32_t streamid) "%p: slotid %d, epid %d, streamid %d"
usb_xhci_xfer_async(void *xfer) "%p"
usb_xhci_xfer_nak(void *xfer) "%p"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录