Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mirror_resources
Qemu
提交
6872ef61
Q
Qemu
项目概览
mirror_resources
/
Qemu
12 个月 前同步成功
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
Qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6872ef61
编写于
2月 05, 2011
作者:
B
Blue Swirl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
vmport: convert to qdev
Signed-off-by:
N
Blue Swirl
<
blauwirbel@gmail.com
>
上级
7ba7e49e
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
26 addition
and
6 deletion
+26
-6
hw/pc.c
hw/pc.c
+1
-0
hw/pc.h
hw/pc.h
+4
-1
hw/pc_piix.c
hw/pc_piix.c
+0
-2
hw/vmport.c
hw/vmport.c
+21
-3
未找到文件。
hw/pc.c
浏览文件 @
6872ef61
...
...
@@ -1133,6 +1133,7 @@ void pc_basic_device_init(qemu_irq *isa_irq,
a20_line
=
qemu_allocate_irqs
(
handle_a20_line_change
,
first_cpu
,
2
);
i8042
=
isa_create_simple
(
"i8042"
);
i8042_setup_a20_line
(
i8042
,
&
a20_line
[
0
]);
vmport_init
();
vmmouse_init
(
i8042
);
port92
=
isa_create_simple
(
"port92"
);
port92_init
(
port92
,
&
a20_line
[
1
]);
...
...
hw/pc.h
浏览文件 @
6872ef61
...
...
@@ -65,7 +65,10 @@ void hpet_pit_disable(void);
void
hpet_pit_enable
(
void
);
/* vmport.c */
void
vmport_init
(
void
);
static
inline
void
vmport_init
(
void
)
{
isa_create_simple
(
"vmport"
);
}
void
vmport_register
(
unsigned
char
command
,
IOPortReadFunc
*
func
,
void
*
opaque
);
/* vmmouse.c */
...
...
hw/pc_piix.c
浏览文件 @
6872ef61
...
...
@@ -86,8 +86,6 @@ static void pc_init1(ram_addr_t ram_size,
pc_cpus_init
(
cpu_model
);
vmport_init
();
/* allocate ram and load rom/bios */
pc_memory_init
(
ram_size
,
kernel_filename
,
kernel_cmdline
,
initrd_filename
,
&
below_4g_mem_size
,
&
above_4g_mem_size
);
...
...
hw/vmport.c
浏览文件 @
6872ef61
...
...
@@ -26,6 +26,7 @@
#include "pc.h"
#include "sysemu.h"
#include "kvm.h"
#include "qdev.h"
//#define VMPORT_DEBUG
...
...
@@ -37,6 +38,7 @@
typedef
struct
_VMPortState
{
ISADevice
dev
;
IOPortReadFunc
*
func
[
VMPORT_ENTRIES
];
void
*
opaque
[
VMPORT_ENTRIES
];
}
VMPortState
;
...
...
@@ -100,12 +102,28 @@ static uint32_t vmport_cmd_ram_size(void *opaque, uint32_t addr)
return
ram_size
;
}
void
vmport_init
(
void
)
static
int
vmport_initfn
(
ISADevice
*
dev
)
{
register_ioport_read
(
0x5658
,
1
,
4
,
vmport_ioport_read
,
&
port_state
);
register_ioport_write
(
0x5658
,
1
,
4
,
vmport_ioport_write
,
&
port_state
);
VMPortState
*
s
=
DO_UPCAST
(
VMPortState
,
dev
,
dev
);
register_ioport_read
(
0x5658
,
1
,
4
,
vmport_ioport_read
,
&
s
);
register_ioport_write
(
0x5658
,
1
,
4
,
vmport_ioport_write
,
&
s
);
isa_init_ioport
(
dev
,
0x5658
);
/* Register some generic port commands */
vmport_register
(
VMPORT_CMD_GETVERSION
,
vmport_cmd_get_version
,
NULL
);
vmport_register
(
VMPORT_CMD_GETRAMSIZE
,
vmport_cmd_ram_size
,
NULL
);
return
0
;
}
static
ISADeviceInfo
vmport_info
=
{
.
qdev
.
name
=
"vmport"
,
.
qdev
.
size
=
sizeof
(
VMPortState
),
.
qdev
.
no_user
=
1
,
.
init
=
vmport_initfn
,
};
static
void
vmport_dev_register
(
void
)
{
isa_qdev_register
(
&
vmport_info
);
}
device_init
(
vmport_dev_register
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录