Changeset 4c18d8c in rtems for c/src/libchip


Ignore:
Timestamp:
Jan 21, 2009, 6:08:32 PM (11 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, master
Children:
e026b963
Parents:
f29aa73
Message:

2009-01-21 Sebastian Huber <sebastian.huber@…>

  • libchip/i2c/spi-sd-card.h, libchip/i2c/spi-sd-card.c: Fixed RTEMS_BLKDEV_CAPABILITIES ioctl which caused invalid multiple block writes. Fixed integer type in device structure.
Location:
c/src/libchip/i2c
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/libchip/i2c/spi-sd-card.c

    rf29aa73 r4c18d8c  
    888888{
    889889        RTEMS_DEBUG_PRINT( "dev = %u, req = %u, arg = 0x08%x\n", dev, req, arg);
    890         if (req == RTEMS_BLKIO_REQUEST) {
    891                 rtems_device_minor_number minor = rtems_filesystem_dev_minor_t( dev);
     890        if (req == RTEMS_BLKIO_REQUEST) {
     891                rtems_device_minor_number minor = rtems_filesystem_dev_minor_t( dev);
    892892                sd_card_driver_entry *e = &sd_card_driver_table [minor];
    893                 rtems_blkdev_request *r = (rtems_blkdev_request *) arg;
    894                 switch (r->req) {
    895                         case RTEMS_BLKDEV_REQ_READ:
    896                                 return sd_card_disk_block_read( e, r);
    897                         case RTEMS_BLKDEV_REQ_WRITE:
    898                                 return sd_card_disk_block_write( e, r);
    899                         case RTEMS_BLKDEV_CAPABILITIES:
    900                                 *((uint32_t*) arg)  = RTEMS_BLKDEV_CAP_MULTISECTOR_CONT;
    901                                 return 0;
    902                         default:
    903                                 errno = EBADRQC;
    904                                 return -1;
    905                 }
    906         } else {
    907                 errno = EBADRQC;
    908                 return -1;
    909         }
     893                rtems_blkdev_request *r = (rtems_blkdev_request *) arg;
     894                switch (r->req) {
     895                        case RTEMS_BLKDEV_REQ_READ:
     896                                return sd_card_disk_block_read( e, r);
     897                        case RTEMS_BLKDEV_REQ_WRITE:
     898                                return sd_card_disk_block_write( e, r);
     899                        default:
     900                                errno = EBADRQC;
     901                                return -1;
     902                }
     903        } else if (req == RTEMS_BLKDEV_CAPABILITIES) {
     904                *(uint32_t*) arg = RTEMS_BLKDEV_CAP_MULTISECTOR_CONT;
     905                return 0;
     906        } else {
     907                errno = EBADRQC;
     908                return -1;
     909        }
    910910}
    911911
  • c/src/libchip/i2c/spi-sd-card.h

    rf29aa73 r4c18d8c  
    5757typedef struct {
    5858        const char *device_name;
    59         int bus;
     59        rtems_device_minor_number bus;
    6060        rtems_libi2c_tfr_mode_t transfer_mode;
    6161        uint8_t command [SD_CARD_COMMAND_SIZE];
Note: See TracChangeset for help on using the changeset viewer.