Revision 47c06340 hw/ide/core.c
b/hw/ide/core.c | ||
---|---|---|
115 | 115 |
put_le16(p + 20, 3); /* XXX: retired, remove ? */ |
116 | 116 |
put_le16(p + 21, 512); /* cache size in sectors */ |
117 | 117 |
put_le16(p + 22, 4); /* ecc bytes */ |
118 |
padstr((char *)(p + 23), QEMU_VERSION, 8); /* firmware version */
|
|
118 |
padstr((char *)(p + 23), s->version, 8); /* firmware version */
|
|
119 | 119 |
padstr((char *)(p + 27), "QEMU HARDDISK", 40); /* model */ |
120 | 120 |
#if MAX_MULT_SECTORS > 1 |
121 | 121 |
put_le16(p + 47, 0x8000 | MAX_MULT_SECTORS); |
... | ... | |
186 | 186 |
put_le16(p + 20, 3); /* buffer type */ |
187 | 187 |
put_le16(p + 21, 512); /* cache size in sectors */ |
188 | 188 |
put_le16(p + 22, 4); /* ecc bytes */ |
189 |
padstr((char *)(p + 23), QEMU_VERSION, 8); /* firmware version */
|
|
189 |
padstr((char *)(p + 23), s->version, 8); /* firmware version */
|
|
190 | 190 |
padstr((char *)(p + 27), "QEMU DVD-ROM", 40); /* model */ |
191 | 191 |
put_le16(p + 48, 1); /* dword I/O (XXX: should not be set on CDROM) */ |
192 | 192 |
#ifdef USE_DMA_CDROM |
... | ... | |
238 | 238 |
put_le16(p + 8, s->nb_sectors); /* Sectors per card */ |
239 | 239 |
padstr((char *)(p + 10), s->drive_serial_str, 20); /* serial number */ |
240 | 240 |
put_le16(p + 22, 0x0004); /* ECC bytes */ |
241 |
padstr((char *) (p + 23), QEMU_VERSION, 8); /* Firmware Revision */
|
|
241 |
padstr((char *) (p + 23), s->version, 8); /* Firmware Revision */
|
|
242 | 242 |
padstr((char *) (p + 27), "QEMU MICRODRIVE", 40);/* Model number */ |
243 | 243 |
#if MAX_MULT_SECTORS > 1 |
244 | 244 |
put_le16(p + 47, 0x8000 | MAX_MULT_SECTORS); |
... | ... | |
1591 | 1591 |
buf[7] = 0; /* reserved */ |
1592 | 1592 |
padstr8(buf + 8, 8, "QEMU"); |
1593 | 1593 |
padstr8(buf + 16, 16, "QEMU DVD-ROM"); |
1594 |
padstr8(buf + 32, 4, QEMU_VERSION);
|
|
1594 |
padstr8(buf + 32, 4, s->version);
|
|
1595 | 1595 |
ide_atapi_cmd_reply(s, 36, max_len); |
1596 | 1596 |
break; |
1597 | 1597 |
case GPCMD_GET_CONFIGURATION: |
... | ... | |
2590 | 2590 |
ide_clear_hob(bus); |
2591 | 2591 |
} |
2592 | 2592 |
|
2593 |
void ide_init_drive(IDEState *s, DriveInfo *dinfo) |
|
2593 |
void ide_init_drive(IDEState *s, DriveInfo *dinfo, const char *version)
|
|
2594 | 2594 |
{ |
2595 | 2595 |
int cylinders, heads, secs; |
2596 | 2596 |
uint64_t nb_sectors; |
... | ... | |
2619 | 2619 |
if (strlen(s->drive_serial_str) == 0) |
2620 | 2620 |
snprintf(s->drive_serial_str, sizeof(s->drive_serial_str), |
2621 | 2621 |
"QM%05d", s->drive_serial); |
2622 |
if (version) { |
|
2623 |
pstrcpy(s->version, sizeof(s->version), version); |
|
2624 |
} else { |
|
2625 |
pstrcpy(s->version, sizeof(s->version), QEMU_VERSION); |
|
2626 |
} |
|
2622 | 2627 |
ide_reset(s); |
2623 | 2628 |
} |
2624 | 2629 |
|
... | ... | |
2639 | 2644 |
s->sector_write_timer = qemu_new_timer(vm_clock, |
2640 | 2645 |
ide_sector_write_timer_cb, s); |
2641 | 2646 |
if (i == 0) |
2642 |
ide_init_drive(s, hd0); |
|
2647 |
ide_init_drive(s, hd0, NULL);
|
|
2643 | 2648 |
if (i == 1) |
2644 |
ide_init_drive(s, hd1); |
|
2649 |
ide_init_drive(s, hd1, NULL);
|
|
2645 | 2650 |
} |
2646 | 2651 |
bus->irq = irq; |
2647 | 2652 |
} |
Also available in: Unified diff