diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-08-23 15:00:29 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-08-23 15:00:29 +0000 |
commit | 2b86087062256541306212e0d8fc91bd13a19048 (patch) | |
tree | 35d50f9a187d698381c3d51c4edac2c13cce9e15 /doc | |
parent | 2009-08-22 Roxana Leontie <roxana.leontie@gmail.com> (diff) | |
download | rtems-2b86087062256541306212e0d8fc91bd13a19048.tar.bz2 |
2009-08-22 Roxana Leontie <roxana.leontie@gmail.com>
* bsp_howto/framebuffer.t: documented the improvements made to
read/write
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ChangeLog | 5 | ||||
-rw-r--r-- | doc/bsp_howto/framebuffer.t | 50 |
2 files changed, 12 insertions, 43 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index bc58556600..145f5e574d 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,8 @@ +2009-08-22 Roxana Leontie <roxana.leontie@gmail.com> + + * bsp_howto/framebuffer.t: documented the improvements made to + read/write + 2009-08-21 Roxana Leontie <roxana.leontie@gmail.com> * bsp_howto/framebuffer.t: Updated the frame buffer documentation. diff --git a/doc/bsp_howto/framebuffer.t b/doc/bsp_howto/framebuffer.t index f4c2a22a30..a470eef7cf 100644 --- a/doc/bsp_howto/framebuffer.t +++ b/doc/bsp_howto/framebuffer.t @@ -150,9 +150,7 @@ rtems_device_driver frame_buffer_close( The @code{frame_buffer_read()} is invoked from a @code{read()} operation on the frame buffer device. -Read functions should allow normal and partial reading at the end of frame buffer memory, -returning RTEMS_UNSATISFIED if trying to read beyond the frame buffer -memory or a negative number of bytes. +Read functions should allow normal and partial reading at the end of frame buffer memory. This method returns RTEMS_SUCCESSFUL when the device is successfully read from: @example @@ -163,27 +161,10 @@ rtems_device_driver frame_buffer_read( void *arg ) @{ - /*printk( "FBVGA read called.\n" );*/ rtems_libio_rw_args_t *rw_args = (rtems_libio_rw_args_t *)arg; - if ( (rw_args->offset >= fb_fix.smem_len) || (rw_args->count < 0) )@{ - return RTEMS_UNSATISFIED; - @} - else - @{ - /*partial reading*/ - if ( (rw_args->offset + rw_args->count) > fb_fix.smem_len )@{ - rw_args->count = fb_fix.smem_len - rw_args->offset; - memcpy(rw_args->buffer, (const void *) (rw_args->offset + fb_fix.smem_start), rw_args->count); - rw_args->bytes_moved = rw_args->count; - return RTEMS_SUCCESSFUL; - @} - /*best reading case*/ - else@{ - memcpy(rw_args->buffer, (const void *) (rw_args->offset + fb_fix.smem_start), rw_args->count); - rw_args->bytes_moved = rw_args->count; - return RTEMS_SUCCESSFUL; - @} - @} + rw_args->bytes_moved = ((rw_args->offset + rw_args->count) > fb_fix.smem_len ) ? (fb_fix.smem_len - rw_args->offset) : rw_args->count; + memcpy(rw_args->buffer, (const void *) (fb_fix.smem_start + rw_args->offset), rw_args->bytes_moved); + return RTEMS_SUCCESSFUL; @} @end group @end example @@ -206,27 +187,10 @@ rtems_device_driver frame_buffer_write( void *arg ) @{ - /*printk( "FBVGA write called.\n" );*/ rtems_libio_rw_args_t *rw_args = (rtems_libio_rw_args_t *)arg; - if ( (rw_args->offset >= fb_fix.smem_len) || (rw_args->count < 0) )@{ - return RTEMS_UNSATISFIED; - @} - else - @{ - /*partial writing*/ - if ( (rw_args->offset + rw_args->count) > fb_fix.smem_len )@{ - rw_args->count = fb_fix.smem_len - rw_args->offset; - memcpy( (void *) (rw_args->offset + fb_fix.smem_start), rw_args->buffer, rw_args->count); - rw_args->bytes_moved = rw_args->count; - return RTEMS_SUCCESSFUL; - @} - /* best writing case*/ - else@{ - memcpy( (void *) (rw_args->offset + fb_fix.smem_start), rw_args->buffer, rw_args->count); - rw_args->bytes_moved = rw_args->count; - return RTEMS_SUCCESSFUL; - @} - @} + rw_args->bytes_moved = ((rw_args->offset + rw_args->count) > fb_fix.smem_len ) ? (fb_fix.smem_len - rw_args->offset) : rw_args->count; + memcpy( (void *) (fb_fix.smem_start + rw_args->offset), rw_args->buffer, rw_args->bytes_moved); + return RTEMS_SUCCESSFUL; @} @end group @end example |