Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
30c2f238
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,发现更多精彩内容 >>
提交
30c2f238
编写于
8月 07, 2011
作者:
B
Blue Swirl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
escc: replace DPRINTFs with tracepoints
Signed-off-by:
N
Blue Swirl
<
blauwirbel@gmail.com
>
上级
42c812b9
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
29 addition
and
46 deletion
+29
-46
hw/escc.c
hw/escc.c
+14
-46
trace-events
trace-events
+15
-0
未找到文件。
hw/escc.c
浏览文件 @
30c2f238
...
...
@@ -27,15 +27,7 @@
#include "escc.h"
#include "qemu-char.h"
#include "console.h"
/* debug serial */
//#define DEBUG_SERIAL
/* debug keyboard */
//#define DEBUG_KBD
/* debug mouse */
//#define DEBUG_MOUSE
#include "trace.h"
/*
* Chipset docs:
...
...
@@ -69,25 +61,6 @@
* 2010-May-23 Artyom Tarasenko: Reworked IUS logic
*/
#ifdef DEBUG_SERIAL
#define SER_DPRINTF(fmt, ...) \
do { printf("SER: " fmt , ## __VA_ARGS__); } while (0)
#else
#define SER_DPRINTF(fmt, ...)
#endif
#ifdef DEBUG_KBD
#define KBD_DPRINTF(fmt, ...) \
do { printf("KBD: " fmt , ## __VA_ARGS__); } while (0)
#else
#define KBD_DPRINTF(fmt, ...)
#endif
#ifdef DEBUG_MOUSE
#define MS_DPRINTF(fmt, ...) \
do { printf("MSC: " fmt , ## __VA_ARGS__); } while (0)
#else
#define MS_DPRINTF(fmt, ...)
#endif
typedef
enum
{
chn_a
,
chn_b
,
}
ChnID
;
...
...
@@ -250,7 +223,7 @@ static void put_queue(void *opaque, int b)
ChannelState
*
s
=
opaque
;
SERIOQueue
*
q
=
&
s
->
queue
;
SER_DPRINTF
(
"channel %c put: 0x%02x
\n
"
,
CHN_C
(
s
),
b
);
trace_escc_put_queue
(
CHN_C
(
s
),
b
);
if
(
q
->
count
>=
SERIO_QUEUE_SIZE
)
return
;
q
->
data
[
q
->
wptr
]
=
b
;
...
...
@@ -274,7 +247,7 @@ static uint32_t get_queue(void *opaque)
q
->
rptr
=
0
;
q
->
count
--
;
}
SER_DPRINTF
(
"channel %c get 0x%02x
\n
"
,
CHN_C
(
s
),
val
);
trace_escc_get_queue
(
CHN_C
(
s
),
val
);
if
(
q
->
count
>
0
)
serial_receive_byte
(
s
,
0
);
return
val
;
...
...
@@ -301,7 +274,7 @@ static void escc_update_irq(ChannelState *s)
irq
=
escc_update_irq_chn
(
s
);
irq
|=
escc_update_irq_chn
(
s
->
otherchn
);
SER_DPRINTF
(
"IRQ = %d
\n
"
,
irq
);
trace_escc_update_irq
(
irq
);
qemu_set_irq
(
s
->
irq
,
irq
);
}
...
...
@@ -486,8 +459,7 @@ static void escc_update_parameters(ChannelState *s)
ssp
.
parity
=
parity
;
ssp
.
data_bits
=
data_bits
;
ssp
.
stop_bits
=
stop_bits
;
SER_DPRINTF
(
"channel %c: speed=%d parity=%c data=%d stop=%d
\n
"
,
CHN_C
(
s
),
speed
,
parity
,
data_bits
,
stop_bits
);
trace_escc_update_parameters
(
CHN_C
(
s
),
speed
,
parity
,
data_bits
,
stop_bits
);
qemu_chr_ioctl
(
s
->
chr
,
CHR_IOCTL_SERIAL_SET_PARAMS
,
&
ssp
);
}
...
...
@@ -505,8 +477,7 @@ static void escc_mem_write(void *opaque, target_phys_addr_t addr,
s
=
&
serial
->
chn
[
channel
];
switch
(
saddr
)
{
case
SERIAL_CTRL
:
SER_DPRINTF
(
"Write channel %c, reg[%d] = %2.2x
\n
"
,
CHN_C
(
s
),
s
->
reg
,
val
&
0xff
);
trace_escc_mem_writeb_ctrl
(
CHN_C
(
s
),
s
->
reg
,
val
&
0xff
);
newreg
=
0
;
switch
(
s
->
reg
)
{
case
W_CMD
:
...
...
@@ -576,7 +547,7 @@ static void escc_mem_write(void *opaque, target_phys_addr_t addr,
s
->
reg
=
0
;
break
;
case
SERIAL_DATA
:
SER_DPRINTF
(
"Write channel %c, ch %d
\n
"
,
CHN_C
(
s
),
val
);
trace_escc_mem_writeb_data
(
CHN_C
(
s
),
val
);
s
->
tx
=
val
;
if
(
s
->
wregs
[
W_TXCTRL2
]
&
TXCTRL2_TXEN
)
{
// tx enabled
if
(
s
->
chr
)
...
...
@@ -608,8 +579,7 @@ static uint64_t escc_mem_read(void *opaque, target_phys_addr_t addr,
s
=
&
serial
->
chn
[
channel
];
switch
(
saddr
)
{
case
SERIAL_CTRL
:
SER_DPRINTF
(
"Read channel %c, reg[%d] = %2.2x
\n
"
,
CHN_C
(
s
),
s
->
reg
,
s
->
rregs
[
s
->
reg
]);
trace_escc_mem_readb_ctrl
(
CHN_C
(
s
),
s
->
reg
,
s
->
rregs
[
s
->
reg
]);
ret
=
s
->
rregs
[
s
->
reg
];
s
->
reg
=
0
;
return
ret
;
...
...
@@ -620,7 +590,7 @@ static uint64_t escc_mem_read(void *opaque, target_phys_addr_t addr,
ret
=
get_queue
(
s
);
else
ret
=
s
->
rx
;
SER_DPRINTF
(
"Read channel %c, ch %d
\n
"
,
CHN_C
(
s
),
ret
);
trace_escc_mem_readb_data
(
CHN_C
(
s
),
ret
);
if
(
s
->
chr
)
qemu_chr_accept_input
(
s
->
chr
);
return
ret
;
...
...
@@ -656,7 +626,7 @@ static int serial_can_receive(void *opaque)
static
void
serial_receive_byte
(
ChannelState
*
s
,
int
ch
)
{
SER_DPRINTF
(
"channel %c put ch %d
\n
"
,
CHN_C
(
s
),
ch
);
trace_escc_serial_receive_byte
(
CHN_C
(
s
),
ch
);
s
->
rregs
[
R_STATUS
]
|=
STATUS_RXAV
;
s
->
rx
=
ch
;
set_rxint
(
s
);
...
...
@@ -768,8 +738,7 @@ static void sunkbd_event(void *opaque, int ch)
ChannelState
*
s
=
opaque
;
int
release
=
ch
&
0x80
;
KBD_DPRINTF
(
"Untranslated keycode %2.2x (%s)
\n
"
,
ch
,
release
?
"release"
:
"press"
);
trace_escc_sunkbd_event_in
(
ch
);
switch
(
ch
)
{
case
58
:
// Caps lock press
s
->
caps_lock_mode
^=
1
;
...
...
@@ -803,13 +772,13 @@ static void sunkbd_event(void *opaque, int ch)
}
else
{
ch
=
keycodes
[
ch
&
0x7f
];
}
KBD_DPRINTF
(
"Translated keycode %2.2x
\n
"
,
ch
);
trace_escc_sunkbd_event_out
(
ch
);
put_queue
(
s
,
ch
|
release
);
}
static
void
handle_kbd_command
(
ChannelState
*
s
,
int
val
)
{
KBD_DPRINTF
(
"Command %d
\n
"
,
val
);
trace_escc_kbd_command
(
val
);
if
(
s
->
led_mode
)
{
// Ignore led byte
s
->
led_mode
=
0
;
return
;
...
...
@@ -841,8 +810,7 @@ static void sunmouse_event(void *opaque,
ChannelState
*
s
=
opaque
;
int
ch
;
MS_DPRINTF
(
"dx=%d dy=%d buttons=%01x
\n
"
,
dx
,
dy
,
buttons_state
);
trace_escc_sunmouse_event
(
dx
,
dy
,
buttons_state
);
ch
=
0x80
|
0x7
;
/* protocol start byte, no buttons pressed */
if
(
buttons_state
&
MOUSE_EVENT_LBUTTON
)
...
...
trace-events
浏览文件 @
30c2f238
...
...
@@ -446,3 +446,18 @@ disable qemu_co_mutex_lock_entry(void *mutex, void *self) "mutex %p self %p"
disable qemu_co_mutex_lock_return(void *mutex, void *self) "mutex %p self %p"
disable qemu_co_mutex_unlock_entry(void *mutex, void *self) "mutex %p self %p"
disable qemu_co_mutex_unlock_return(void *mutex, void *self) "mutex %p self %p"
# hw/escc.c
disable escc_put_queue(char channel, int b) "channel %c put: 0x%02x"
disable escc_get_queue(char channel, int val) "channel %c get 0x%02x"
disable escc_update_irq(int irq) "IRQ = %d"
disable escc_update_parameters(char channel, int speed, int parity, int data_bits, int stop_bits) "channel %c: speed=%d parity=%c data=%d stop=%d"
disable escc_mem_writeb_ctrl(char channel, uint32_t reg, uint32_t val) "Write channel %c, reg[%d] = %2.2x"
disable escc_mem_writeb_data(char channel, uint32_t val) "Write channel %c, ch %d"
disable escc_mem_readb_ctrl(char channel, uint32_t reg, uint8_t val) "Read channel %c, reg[%d] = %2.2x"
disable escc_mem_readb_data(char channel, uint32_t ret) "Read channel %c, ch %d"
disable escc_serial_receive_byte(char channel, int ch) "channel %c put ch %d"
disable escc_sunkbd_event_in(int ch) "Untranslated keycode %2.2x"
disable escc_sunkbd_event_out(int ch) "Translated keycode %2.2x"
disable escc_kbd_command(int val) "Command %d"
disable escc_sunmouse_event(int dx, int dy, int buttons_state) "dx=%d dy=%d buttons=%01x"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录