hw/display/bcm2835_fb: Abstract out calculation of pitch, size

Abstract out the calculation of the pitch and size of the
framebuffer into functions that operate on the BCM2835FBConfig
struct -- these are about to get a little more complicated
when we add support for virtual and physical sizes differing.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20180814144436.679-6-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2018-08-24 13:17:49 +01:00
parent 9e2938a0fd
commit 9a1f03f4ee
3 changed files with 27 additions and 5 deletions

View file

@ -52,4 +52,26 @@ typedef struct {
void bcm2835_fb_reconfigure(BCM2835FBState *s, BCM2835FBConfig *newconfig);
/**
* bcm2835_fb_get_pitch: return number of bytes per line of the framebuffer
* @config: configuration info for the framebuffer
*
* Return the number of bytes per line of the framebuffer, ie the number
* that must be added to a pixel address to get the address of the pixel
* directly below it on screen.
*/
static inline uint32_t bcm2835_fb_get_pitch(BCM2835FBConfig *config)
{
return config->xres * (config->bpp >> 3);
}
/**
* bcm2835_fb_get_size: return total size of framebuffer in bytes
* @config: configuration info for the framebuffer
*/
static inline uint32_t bcm2835_fb_get_size(BCM2835FBConfig *config)
{
return config->yres * bcm2835_fb_get_pitch(config);
}
#endif