Revision 86d86414
b/Makefile.objs | ||
---|---|---|
258 | 258 |
hw-obj-$(CONFIG_VGA_ISA) += vga-isa.o |
259 | 259 |
hw-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o |
260 | 260 |
hw-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o |
261 |
hw-obj-$(CONFIG_VMMOUSE) += vmmouse.o |
|
261 | 262 |
|
262 | 263 |
hw-obj-$(CONFIG_RC4030) += rc4030.o |
263 | 264 |
hw-obj-$(CONFIG_DP8393X) += dp8393x.o |
b/Makefile.target | ||
---|---|---|
215 | 215 |
obj-i386-y += vga.o |
216 | 216 |
obj-i386-y += mc146818rtc.o i8259.o pc.o |
217 | 217 |
obj-i386-y += cirrus_vga.o apic.o ioapic.o piix_pci.o |
218 |
obj-i386-y += vmmouse.o vmport.o hpet.o applesmc.o
|
|
218 |
obj-i386-y += vmport.o hpet.o applesmc.o |
|
219 | 219 |
obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o |
220 | 220 |
obj-i386-y += debugcon.o multiboot.o |
221 | 221 |
obj-i386-y += pc_piix.o |
b/default-configs/i386-softmmu.mak | ||
---|---|---|
4 | 4 |
CONFIG_VGA_PCI=y |
5 | 5 |
CONFIG_VGA_ISA=y |
6 | 6 |
CONFIG_VMWARE_VGA=y |
7 |
CONFIG_VMMOUSE=y |
|
7 | 8 |
CONFIG_SERIAL=y |
8 | 9 |
CONFIG_PARALLEL=y |
9 | 10 |
CONFIG_I8254=y |
b/default-configs/x86_64-softmmu.mak | ||
---|---|---|
4 | 4 |
CONFIG_VGA_PCI=y |
5 | 5 |
CONFIG_VGA_ISA=y |
6 | 6 |
CONFIG_VMWARE_VGA=y |
7 |
CONFIG_VMMMOUSE=y |
|
7 | 8 |
CONFIG_SERIAL=y |
8 | 9 |
CONFIG_PARALLEL=y |
9 | 10 |
CONFIG_I8254=y |
b/hw/pc.c | ||
---|---|---|
1134 | 1134 |
i8042 = isa_create_simple("i8042"); |
1135 | 1135 |
i8042_setup_a20_line(i8042, &a20_line[0]); |
1136 | 1136 |
vmport_init(); |
1137 |
vmmouse = isa_create("vmmouse"); |
|
1138 |
qdev_prop_set_ptr(&vmmouse->qdev, "ps2_mouse", i8042); |
|
1137 |
vmmouse = isa_try_create("vmmouse"); |
|
1138 |
if (vmmouse) { |
|
1139 |
qdev_prop_set_ptr(&vmmouse->qdev, "ps2_mouse", i8042); |
|
1140 |
} |
|
1139 | 1141 |
port92 = isa_create_simple("port92"); |
1140 | 1142 |
port92_init(port92, &a20_line[1]); |
1141 | 1143 |
|
b/hw/pc.h | ||
---|---|---|
70 | 70 |
isa_create_simple("vmport"); |
71 | 71 |
} |
72 | 72 |
void vmport_register(unsigned char command, IOPortReadFunc *func, void *opaque); |
73 |
void vmmouse_get_data(uint32_t *data); |
|
74 |
void vmmouse_set_data(const uint32_t *data); |
|
73 | 75 |
|
74 | 76 |
/* pckbd.c */ |
75 | 77 |
|
b/hw/vmmouse.c | ||
---|---|---|
178 | 178 |
memmove(s->queue, &s->queue[size], sizeof(s->queue[0]) * s->nb_queue); |
179 | 179 |
} |
180 | 180 |
|
181 |
static void vmmouse_get_data(uint32_t *data) |
|
182 |
{ |
|
183 |
CPUState *env = cpu_single_env; |
|
184 |
|
|
185 |
data[0] = env->regs[R_EAX]; data[1] = env->regs[R_EBX]; |
|
186 |
data[2] = env->regs[R_ECX]; data[3] = env->regs[R_EDX]; |
|
187 |
data[4] = env->regs[R_ESI]; data[5] = env->regs[R_EDI]; |
|
188 |
|
|
189 |
DPRINTF("get_data = {%x, %x, %x, %x, %x, %x}\n", |
|
190 |
data[0], data[1], data[2], data[3], data[4], data[5]); |
|
191 |
} |
|
192 |
|
|
193 |
static void vmmouse_set_data(const uint32_t *data) |
|
194 |
{ |
|
195 |
CPUState *env = cpu_single_env; |
|
196 |
|
|
197 |
DPRINTF("set_data = {%x, %x, %x, %x, %x, %x}\n", |
|
198 |
data[0], data[1], data[2], data[3], data[4], data[5]); |
|
199 |
|
|
200 |
env->regs[R_EAX] = data[0]; env->regs[R_EBX] = data[1]; |
|
201 |
env->regs[R_ECX] = data[2]; env->regs[R_EDX] = data[3]; |
|
202 |
env->regs[R_ESI] = data[4]; env->regs[R_EDI] = data[5]; |
|
203 |
} |
|
204 |
|
|
205 | 181 |
static uint32_t vmmouse_ioport_read(void *opaque, uint32_t addr) |
206 | 182 |
{ |
207 | 183 |
VMMouseState *s = opaque; |
b/hw/vmport.c | ||
---|---|---|
102 | 102 |
return ram_size; |
103 | 103 |
} |
104 | 104 |
|
105 |
/* vmmouse helpers */ |
|
106 |
void vmmouse_get_data(uint32_t *data) |
|
107 |
{ |
|
108 |
CPUState *env = cpu_single_env; |
|
109 |
|
|
110 |
data[0] = env->regs[R_EAX]; data[1] = env->regs[R_EBX]; |
|
111 |
data[2] = env->regs[R_ECX]; data[3] = env->regs[R_EDX]; |
|
112 |
data[4] = env->regs[R_ESI]; data[5] = env->regs[R_EDI]; |
|
113 |
} |
|
114 |
|
|
115 |
void vmmouse_set_data(const uint32_t *data) |
|
116 |
{ |
|
117 |
CPUState *env = cpu_single_env; |
|
118 |
|
|
119 |
env->regs[R_EAX] = data[0]; env->regs[R_EBX] = data[1]; |
|
120 |
env->regs[R_ECX] = data[2]; env->regs[R_EDX] = data[3]; |
|
121 |
env->regs[R_ESI] = data[4]; env->regs[R_EDI] = data[5]; |
|
122 |
} |
|
123 |
|
|
105 | 124 |
static int vmport_initfn(ISADevice *dev) |
106 | 125 |
{ |
107 | 126 |
VMPortState *s = DO_UPCAST(VMPortState, dev, dev); |
Also available in: Unified diff