Changeset f031251c in rtems for c/src/libchip
- Timestamp:
- Aug 2, 2008, 6:26:29 AM (11 years ago)
- Branches:
- 4.10, 4.11, 4.9, master
- Children:
- c0cc985
- Parents:
- 2eb89ad
- Location:
- c/src/libchip
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/libchip/i2c/spi-sd-card.c
r2eb89ad rf031251c 563 563 rtems_status_code sc = RTEMS_SUCCESSFUL; 564 564 int rv = 0; 565 uint32_t start_address = r->start<< e->block_size_shift;565 uint32_t start_address = RTEMS_BLKDEV_START_BLOCK (r) << e->block_size_shift; 566 566 uint32_t i = 0; 567 567 568 DEBUG_PRINT( "start = %u, count = %u, bufnum = %u\n", r->start, r->count, r->bufnum);568 DEBUG_PRINT( "start = %u, bufnum = %u\n", r->start, r->bufnum); 569 569 570 570 #ifdef DEBUG 571 571 /* Check request */ 572 if (r->count != r->bufnum) { 573 SYSLOG_ERROR( "Block count and buffer number are not equal"); 574 return -RTEMS_INTERNAL_ERROR; 575 } else if (r->start >= e->block_number) { 572 if (r->bufs[0].block >= e->block_number) { 576 573 SYSLOG_ERROR( "Start block number out of range"); 577 574 return -RTEMS_INTERNAL_ERROR; 578 } else if (r-> count > e->block_number - r->start) {575 } else if (r->bufnum > e->block_number - RTEMS_BLKDEV_START_BLOCK (r)) { 579 576 SYSLOG_ERROR( "Block count out of range"); 580 577 return -RTEMS_INTERNAL_ERROR; … … 586 583 CLEANUP_SCRV( sc, rv, sd_card_disk_block_read_cleanup, "Start"); 587 584 588 if (r-> count== 1) {585 if (r->bufnum == 1) { 589 586 #ifdef DEBUG 590 587 /* Check buffer */ … … 606 603 607 604 /* Multiple block read */ 608 for (i = 0; i < r-> count; ++i) {605 for (i = 0; i < r->bufnum; ++i) { 609 606 #ifdef DEBUG 610 607 /* Check buffer */ … … 653 650 rtems_status_code sc = RTEMS_SUCCESSFUL; 654 651 int rv = 0; 655 uint32_t start_address = r->start<< e->block_size_shift;652 uint32_t start_address = RTEMS_BLKDEV_START_BLOCK (r) << e->block_size_shift; 656 653 uint32_t i = 0; 657 654 … … 660 657 #ifdef DEBUG 661 658 /* Check request */ 662 if (r->count != r->bufnum) { 663 SYSLOG_ERROR( "Block count and buffer number are not equal"); 664 return -RTEMS_INTERNAL_ERROR; 665 } else if (r->start >= e->block_number) { 659 if (r->bufs[0].block >= e->block_number) { 666 660 SYSLOG_ERROR( "Start block number out of range"); 667 661 return -RTEMS_INTERNAL_ERROR; 668 } else if (r-> count > e->block_number - r->start) {662 } else if (r->bufnum > e->block_number - RTEMS_BLKDEV_START_BLOCK (r)) { 669 663 SYSLOG_ERROR( "Block count out of range"); 670 664 return -RTEMS_INTERNAL_ERROR; … … 676 670 CLEANUP_SCRV( sc, rv, sd_card_disk_block_write_cleanup, "Start"); 677 671 678 if (r-> count== 1) {672 if (r->bufnum == 1) { 679 673 #ifdef DEBUG 680 674 /* Check buffer */ … … 696 690 697 691 /* Multiple block write */ 698 for (i = 0; i < r-> count; ++i) {692 for (i = 0; i < r->bufnum; ++i) { 699 693 #ifdef DEBUG 700 694 /* Check buffer */ … … 759 753 case RTEMS_BLKDEV_REQ_WRITE: 760 754 return sd_card_disk_block_write( e, r); 755 case RTEMS_BLKDEV_CAPABILITIES: 756 *((uint32_t*) arg) = RTEMS_BLKDEV_CAP_MULTISECTOR_CONT; 757 return 0; 761 758 default: 762 759 errno = EBADRQC; -
c/src/libchip/ide/ata.c
r2eb89ad rf031251c 27 27 #include "ata_internal.h" 28 28 #include <libchip/ata.h> 29 / /#define DEBUG29 /* #define DEBUG */ 30 30 31 31 #ifdef DEBUG … … 212 212 213 213 areq->breq = req; 214 areq->cnt = req-> count;214 areq->cnt = req->bufnum; 215 215 areq->cbuf = 0; 216 216 areq->pos = 0; … … 240 240 #ifdef DEBUG 241 241 printf("ata_io_data_request: type: READ: %d, %d\n", 242 req->bufs[0].block, req-> count);242 req->bufs[0].block, req->bufnum); 243 243 #endif 244 244 areq->type = ATA_COMMAND_TYPE_PIO_IN; … … 252 252 areq->regs.regs[IDE_REGISTER_COMMAND] = 253 253 ((ATA_DEV_INFO(ctrl_minor, dev).max_multiple) && 254 (req-> count> 1) &&254 (req->bufnum > 1) && 255 255 (ATA_DEV_INFO(ctrl_minor, dev).current_multiple > 1)) ? 256 256 ATA_COMMAND_READ_MULTIPLE : … … 261 261 #ifdef DEBUG 262 262 printf("ata_io_data_request: type: WRITE: %d, %d\n", 263 req->bufs[0].block, req-> count);263 req->bufs[0].block, req->bufnum); 264 264 #endif 265 265 areq->type = ATA_COMMAND_TYPE_PIO_OUT; … … 273 273 areq->regs.regs[IDE_REGISTER_COMMAND] = 274 274 ((ATA_DEV_INFO(ctrl_minor, dev).max_multiple) && 275 (req-> count> 1) &&275 (req->bufnum > 1) && 276 276 (ATA_DEV_INFO(ctrl_minor, dev).current_multiple > 1)) ? 277 277 ATA_COMMAND_WRITE_MULTIPLE : … … 313 313 314 314 /* fill sector count register */ 315 areq->regs.regs[IDE_REGISTER_SECTOR_COUNT] = areq->breq-> count;315 areq->regs.regs[IDE_REGISTER_SECTOR_COUNT] = areq->breq->bufnum; 316 316 317 317 /* add request to the queue of awaiting requests to the controller */ … … 1197 1197 breq.req.done_arg = &breq; 1198 1198 breq.req.bufnum = 1; 1199 breq.req.count = 1;1200 1199 breq.req.bufs[0].length = ATA_SECTOR_SIZE; 1201 1200 breq.req.bufs[0].buffer = buffer; … … 1366 1365 areq.breq = (rtems_blkdev_request *)&breq; 1367 1366 1368 areq.cnt = breq.req. count;1367 areq.cnt = breq.req.bufnum; 1369 1368 1370 1369 areq.regs.regs[IDE_REGISTER_DEVICE_HEAD] |=
Note: See TracChangeset
for help on using the changeset viewer.