Changeset 38188 in vbox
- Timestamp:
- Jul 26, 2011 2:41:26 PM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 73146
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevDMA.cpp
r37423 r38188 430 430 uint32_t *pu32, unsigned cb) 431 431 { 432 DMAControl *dc = (DMAControl *)pvUser; 433 int reg; 434 432 435 if (cb == 1) 433 436 { 434 DMAControl *dc = (DMAControl *)pvUser;435 int reg;436 437 437 reg = port & 7; 438 438 *pu32 = dc->au8Page[reg]; 439 Log2(("Read %#x tofrom page register %#x (channel %d)\n",439 Log2(("Read %#x (byte) from page register %#x (channel %d)\n", 440 440 *pu32, port, DMAPG2CX(reg))); 441 441 return VINF_SUCCESS; 442 } 443 else if (cb == 2) 444 { 445 reg = port & 7; 446 *pu32 = dc->au8Page[reg] | (dc->au8Page[(reg + 1) & 7] << 8); 447 Log2(("Read %#x (word) from page register %#x (channel %d)\n", 448 *pu32, port, DMAPG2CX(reg))); 449 return VINF_SUCCESS; 442 450 } 443 451 else … … 448 456 uint32_t u32, unsigned cb) 449 457 { 458 DMAControl *dc = (DMAControl *)pvUser; 459 int reg; 460 461 Assert(!(u32 & ~0xff)); /* Check for garbage in high bits. */ 450 462 if (cb == 1) 451 463 { 452 DMAControl *dc = (DMAControl *)pvUser;453 int reg;454 455 Assert(!(u32 & ~0xff)); /* Check for garbage in high bits. */456 464 reg = port & 7; 457 465 dc->au8Page[reg] = u32; … … 459 467 Log2(("Wrote %#x to page register %#x (channel %d)\n", 460 468 u32, port, DMAPG2CX(reg))); 469 } 470 else if (cb == 2) 471 { 472 reg = port & 7; 473 dc->au8Page[reg] = u32; 474 dc->au8PageHi[reg] = 0; /* Corresponding high page cleared. */ 475 reg = (port + 1) & 7; 476 dc->au8Page[reg] = u32 >> 8; 477 dc->au8PageHi[reg] = 0; /* Corresponding high page cleared. */ 461 478 } 462 479 else
Note:
See TracChangeset
for help on using the changeset viewer.