Changeset 291c9264 in rtems for cpukit/libblock


Ignore:
Timestamp:
Mar 5, 2012, 1:39:53 PM (8 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
0121172
Parents:
3ee7b84
git-author:
Sebastian Huber <sebastian.huber@…> (03/05/12 13:39:53)
git-committer:
Sebastian Huber <sebastian.huber@…> (03/13/12 11:24:18)
Message:

libblock: Split file and simplify

Location:
cpukit/libblock
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • cpukit/libblock/Makefile.am

    r3ee7b84 r291c9264  
    99libblock_a_SOURCES = src/bdbuf.c \
    1010    src/blkdev.c \
     11    src/blkdev-ioctl.c \
    1112    src/blkdev-ops.c \
    1213    src/diskdevs.c \
  • cpukit/libblock/src/blkdev.c

    r3ee7b84 r291c9264  
    181181    rtems_libio_t *iop = args->iop;
    182182    rtems_disk_device *dd = iop->data1;
    183     int rc;
    184 
    185     switch (args->command)
    186     {
    187         case RTEMS_BLKIO_GETMEDIABLKSIZE:
    188             *((uint32_t *) args->buffer) = dd->media_block_size;
    189             args->ioctl_return = 0;
    190             break;
    191 
    192         case RTEMS_BLKIO_GETBLKSIZE:
    193             *((uint32_t *) args->buffer) = dd->block_size;
    194             args->ioctl_return = 0;
    195             break;
    196 
    197         case RTEMS_BLKIO_SETBLKSIZE:
    198             dd->block_size = *((uint32_t *) args->buffer);
    199             args->ioctl_return = 0;
    200             break;
    201 
    202         case RTEMS_BLKIO_GETSIZE:
    203             *((rtems_blkdev_bnum *) args->buffer) = dd->size;
    204             args->ioctl_return = 0;
    205             break;
    206 
    207         case RTEMS_BLKIO_SYNCDEV:
    208             rc = rtems_bdbuf_syncdev(dd);
    209             args->ioctl_return = (uint32_t) (rc == RTEMS_SUCCESSFUL ? 0 : -1);
    210             break;
    211 
    212         case RTEMS_BLKIO_GETDISKDEV:
    213             *((rtems_disk_device **) args->buffer) = dd;
    214             args->ioctl_return = 0;
    215             break;
    216 
    217         case RTEMS_BLKIO_REQUEST:
    218             /*
    219              * It is not allowed to directly access the driver circumventing
    220              * the cache.
    221              */
    222             args->ioctl_return = (uint32_t) -1;
    223             break;
    224 
    225         default:
    226             args->ioctl_return = (uint32_t) dd->ioctl(dd->phys_dev,
    227                                                       args->command,
    228                                                       args->buffer);
    229             break;
     183
     184    if (args->command != RTEMS_BLKIO_REQUEST)
     185    {
     186        args->ioctl_return = (uint32_t) dd->ioctl(dd,
     187                                                  args->command,
     188                                                  args->buffer);
     189    }
     190    else
     191    {
     192        /*
     193         * It is not allowed to directly access the driver circumventing the
     194         * cache.
     195         */
     196        args->ioctl_return = (uint32_t) -1;
    230197    }
    231198
    232199    return RTEMS_SUCCESSFUL;
    233200}
    234 
    235 int
    236 rtems_blkdev_ioctl(rtems_disk_device *dd, uint32_t req, void *argp)
    237 {
    238     size_t            *arg_size = argp;
    239     int                rc = 0;
    240 
    241     switch (req)
    242     {
    243         case RTEMS_BLKIO_GETMEDIABLKSIZE:
    244             *arg_size = dd->media_block_size;
    245             break;
    246 
    247         case RTEMS_BLKIO_GETBLKSIZE:
    248             *arg_size = dd->block_size;
    249             break;
    250 
    251         case RTEMS_BLKIO_SETBLKSIZE:
    252             dd->block_size = *arg_size;
    253             break;
    254 
    255         case RTEMS_BLKIO_GETSIZE:
    256             *arg_size = dd->size;
    257             break;
    258 
    259         default:
    260             errno = EINVAL;
    261             rc = -1;
    262             break;
    263     }
    264 
    265     return rc;
    266 }
Note: See TracChangeset for help on using the changeset viewer.