2009-08-17 Michal Suchanek <hramrach@centrum.cz>

Remove duplicate grub_video_fb_get_video_ptr.

	* include/grub/fbutil.h (get_data_ptr): Rename to ...
	(grub_video_fb_get_video_ptr): ... this.
	* include/grub/video_fb.h (grub_video_fb_get_video_ptr): Removed.
	* video/fb/fbutil.c: Add comment about addressing.
	(get_data_ptr): Rename to ...
	(grub_video_fb_get_video_ptr): ... this. All users updated.
	* video/fb/video_fb.c (grub_video_fb_get_video_ptr): Remove.
This commit is contained in:
phcoder 2009-08-17 13:34:24 +00:00
parent cc8c6fafe9
commit 6025fcd7f9
6 changed files with 61 additions and 79 deletions

View file

@ -1,3 +1,15 @@
2009-08-17 Michal Suchanek <hramrach@centrum.cz>
Remove duplicate grub_video_fb_get_video_ptr.
* include/grub/fbutil.h (get_data_ptr): Rename to ...
(grub_video_fb_get_video_ptr): ... this.
* include/grub/video_fb.h (grub_video_fb_get_video_ptr): Removed.
* video/fb/fbutil.c: Add comment about addressing.
(get_data_ptr): Rename to ...
(grub_video_fb_get_video_ptr): ... this. All users updated.
* video/fb/video_fb.c (grub_video_fb_get_video_ptr): Remove.
2009-08-17 Robert Millan <rmh.grub@aybabtu.com> 2009-08-17 Robert Millan <rmh.grub@aybabtu.com>
* fs/fat.c (grub_fat_read_data): Remove `#if 0' braces around the * fs/fat.c (grub_fat_read_data): Remove `#if 0' braces around the

View file

@ -31,7 +31,7 @@ struct grub_video_fbblit_info
void *data; void *data;
}; };
grub_uint8_t *get_data_ptr (struct grub_video_fbblit_info *source, grub_uint8_t *grub_video_fb_get_video_ptr (struct grub_video_fbblit_info *source,
unsigned int x, unsigned int y); unsigned int x, unsigned int y);
grub_video_color_t get_pixel (struct grub_video_fbblit_info *source, grub_video_color_t get_pixel (struct grub_video_fbblit_info *source,

View file

@ -33,9 +33,6 @@ struct grub_video_fbrender_target;
#define GRUB_VIDEO_FBSTD_NUMCOLORS 16 #define GRUB_VIDEO_FBSTD_NUMCOLORS 16
extern struct grub_video_palette_data grub_video_fbstd_colors[GRUB_VIDEO_FBSTD_NUMCOLORS]; extern struct grub_video_palette_data grub_video_fbstd_colors[GRUB_VIDEO_FBSTD_NUMCOLORS];
grub_uint8_t * grub_video_fb_get_video_ptr (struct grub_video_fbblit_info *source,
grub_uint32_t x, grub_uint32_t y);
grub_err_t grub_err_t
grub_video_fb_init (void); grub_video_fb_init (void);

View file

@ -83,8 +83,8 @@ grub_video_fbblit_replace_directN (struct grub_video_fbblit_info *dst,
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
srcptr = (grub_uint32_t *)get_data_ptr (src, offset_x, j + offset_y); srcptr = (grub_uint32_t *)grub_video_fb_get_video_ptr (src, offset_x, j + offset_y);
dstptr = (grub_uint32_t *)get_data_ptr (dst, x, y + j); dstptr = (grub_uint32_t *)grub_video_fb_get_video_ptr (dst, x, y + j);
grub_memmove (dstptr, srcptr, width * bpp); grub_memmove (dstptr, srcptr, width * bpp);
} }
@ -110,8 +110,8 @@ grub_video_fbblit_replace_BGRX8888_RGBX8888 (struct grub_video_fbblit_info *dst,
srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width; srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width;
dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
srcptr = (grub_uint8_t *) get_data_ptr (src, offset_x, offset_y); srcptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (src, offset_x, offset_y);
dstptr = (grub_uint8_t *) get_data_ptr (dst, x, y); dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
@ -153,8 +153,8 @@ grub_video_fbblit_replace_BGRX8888_RGB888 (struct grub_video_fbblit_info *dst,
srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width; srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width;
dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
srcptr = (grub_uint8_t *) get_data_ptr (src, offset_x, offset_y); srcptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (src, offset_x, offset_y);
dstptr = (grub_uint8_t *) get_data_ptr (dst, x, y); dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
@ -197,8 +197,8 @@ grub_video_fbblit_replace_BGR888_RGBX8888 (struct grub_video_fbblit_info *dst,
srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width; srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width;
dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
srcptr = (grub_uint32_t *) get_data_ptr (src, offset_x, offset_y); srcptr = (grub_uint32_t *) grub_video_fb_get_video_ptr (src, offset_x, offset_y);
dstptr = (grub_uint8_t *) get_data_ptr (dst, x, y); dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
@ -245,8 +245,8 @@ grub_video_fbblit_replace_BGR888_RGB888 (struct grub_video_fbblit_info *dst,
srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width; srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width;
dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
srcptr = (grub_uint8_t *) get_data_ptr (src, offset_x, offset_y); srcptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (src, offset_x, offset_y);
dstptr = (grub_uint8_t *) get_data_ptr (dst, x, y); dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
@ -285,8 +285,8 @@ grub_video_fbblit_replace_RGBX8888_RGB888 (struct grub_video_fbblit_info *dst,
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
srcptr = (grub_uint8_t *)get_data_ptr (src, offset_x, j + offset_y); srcptr = (grub_uint8_t *)grub_video_fb_get_video_ptr (src, offset_x, j + offset_y);
dstptr = (grub_uint32_t *)get_data_ptr (dst, x, y + j); dstptr = (grub_uint32_t *)grub_video_fb_get_video_ptr (dst, x, y + j);
for (i = 0; i < width; i++) for (i = 0; i < width; i++)
{ {
@ -321,8 +321,8 @@ grub_video_fbblit_replace_RGB888_RGBX8888 (struct grub_video_fbblit_info *dst,
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
srcptr = (grub_uint32_t *)get_data_ptr (src, offset_x, j + offset_y); srcptr = (grub_uint32_t *)grub_video_fb_get_video_ptr (src, offset_x, j + offset_y);
dstptr = (grub_uint8_t *)get_data_ptr (dst, x, y + j); dstptr = (grub_uint8_t *)grub_video_fb_get_video_ptr (dst, x, y + j);
for (i = 0; i < width; i++) for (i = 0; i < width; i++)
{ {
@ -358,8 +358,8 @@ grub_video_fbblit_replace_index_RGBX8888 (struct grub_video_fbblit_info *dst,
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
srcptr = (grub_uint32_t *)get_data_ptr (src, offset_x, j + offset_y); srcptr = (grub_uint32_t *)grub_video_fb_get_video_ptr (src, offset_x, j + offset_y);
dstptr = (grub_uint8_t *)get_data_ptr (dst, x, y + j); dstptr = (grub_uint8_t *)grub_video_fb_get_video_ptr (dst, x, y + j);
for (i = 0; i < width; i++) for (i = 0; i < width; i++)
{ {
@ -394,8 +394,8 @@ grub_video_fbblit_replace_index_RGB888 (struct grub_video_fbblit_info *dst,
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
srcptr = (grub_uint8_t *)get_data_ptr (src, offset_x, j + offset_y); srcptr = (grub_uint8_t *)grub_video_fb_get_video_ptr (src, offset_x, j + offset_y);
dstptr = (grub_uint8_t *)get_data_ptr (dst, x, y + j); dstptr = (grub_uint8_t *)grub_video_fb_get_video_ptr (dst, x, y + j);
for (i = 0; i < width; i++) for (i = 0; i < width; i++)
{ {
@ -491,8 +491,8 @@ grub_video_fbblit_blend_BGRA8888_RGBA8888 (struct grub_video_fbblit_info *dst,
srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width; srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width;
dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
srcptr = (grub_uint32_t *) get_data_ptr (src, offset_x, offset_y); srcptr = (grub_uint32_t *) grub_video_fb_get_video_ptr (src, offset_x, offset_y);
dstptr = (grub_uint32_t *) get_data_ptr (dst, x, y); dstptr = (grub_uint32_t *) grub_video_fb_get_video_ptr (dst, x, y);
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
@ -572,8 +572,8 @@ grub_video_fbblit_blend_BGR888_RGBA8888 (struct grub_video_fbblit_info *dst,
srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width; srcrowskip = src->mode_info->pitch - src->mode_info->bytes_per_pixel * width;
dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
srcptr = (grub_uint32_t *) get_data_ptr (src, offset_x, offset_y); srcptr = (grub_uint32_t *) grub_video_fb_get_video_ptr (src, offset_x, offset_y);
dstptr = (grub_uint8_t *) get_data_ptr (dst, x, y); dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
@ -656,8 +656,8 @@ grub_video_fbblit_blend_RGBA8888_RGBA8888 (struct grub_video_fbblit_info *dst,
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
srcptr = (grub_uint32_t *)get_data_ptr (src, offset_x, j + offset_y); srcptr = (grub_uint32_t *)grub_video_fb_get_video_ptr (src, offset_x, j + offset_y);
dstptr = (grub_uint32_t *)get_data_ptr (dst, x, y + j); dstptr = (grub_uint32_t *)grub_video_fb_get_video_ptr (dst, x, y + j);
for (i = 0; i < width; i++) for (i = 0; i < width; i++)
{ {
@ -721,8 +721,8 @@ grub_video_fbblit_blend_RGB888_RGBA8888 (struct grub_video_fbblit_info *dst,
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
srcptr = (grub_uint32_t *)get_data_ptr (src, offset_x, j + offset_y); srcptr = (grub_uint32_t *)grub_video_fb_get_video_ptr (src, offset_x, j + offset_y);
dstptr = (grub_uint8_t *)get_data_ptr (dst, x, y + j); dstptr = (grub_uint8_t *)grub_video_fb_get_video_ptr (dst, x, y + j);
for (i = 0; i < width; i++) for (i = 0; i < width; i++)
{ {
@ -788,8 +788,8 @@ grub_video_fbblit_blend_index_RGBA8888 (struct grub_video_fbblit_info *dst,
for (j = 0; j < height; j++) for (j = 0; j < height; j++)
{ {
srcptr = (grub_uint32_t *)get_data_ptr (src, offset_x, j + offset_y); srcptr = (grub_uint32_t *)grub_video_fb_get_video_ptr (src, offset_x, j + offset_y);
dstptr = (grub_uint8_t *)get_data_ptr (dst, x, y + j); dstptr = (grub_uint8_t *)grub_video_fb_get_video_ptr (dst, x, y + j);
for (i = 0; i < width; i++) for (i = 0; i < width; i++)
{ {

View file

@ -16,12 +16,23 @@
* along with GRUB. If not, see <http://www.gnu.org/licenses/>. * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
*/ */
/* SPECIAL NOTES!
Please note following when reading the code below:
- In this driver we assume that every memory can be accessed by same memory
bus. If there are different address spaces do not use this code as a base
code for other archs.
- Every function in this code assumes that bounds checking has been done in
previous phase and they are opted out in here. */
#include <grub/fbutil.h> #include <grub/fbutil.h>
#include <grub/types.h> #include <grub/types.h>
#include <grub/video.h> #include <grub/video.h>
grub_uint8_t * grub_uint8_t *
get_data_ptr (struct grub_video_fbblit_info *source, grub_video_fb_get_video_ptr (struct grub_video_fbblit_info *source,
unsigned int x, unsigned int y) unsigned int x, unsigned int y)
{ {
grub_uint8_t *ptr = 0; grub_uint8_t *ptr = 0;
@ -72,24 +83,24 @@ get_pixel (struct grub_video_fbblit_info *source,
switch (source->mode_info->bpp) switch (source->mode_info->bpp)
{ {
case 32: case 32:
color = *(grub_uint32_t *)get_data_ptr (source, x, y); color = *(grub_uint32_t *)grub_video_fb_get_video_ptr (source, x, y);
break; break;
case 24: case 24:
{ {
grub_uint8_t *ptr; grub_uint8_t *ptr;
ptr = get_data_ptr (source, x, y); ptr = grub_video_fb_get_video_ptr (source, x, y);
color = ptr[0] | (ptr[1] << 8) | (ptr[2] << 16); color = ptr[0] | (ptr[1] << 8) | (ptr[2] << 16);
} }
break; break;
case 16: case 16:
case 15: case 15:
color = *(grub_uint16_t *)get_data_ptr (source, x, y); color = *(grub_uint16_t *)grub_video_fb_get_video_ptr (source, x, y);
break; break;
case 8: case 8:
color = *(grub_uint8_t *)get_data_ptr (source, x, y); color = *(grub_uint8_t *)grub_video_fb_get_video_ptr (source, x, y);
break; break;
case 1: case 1:
@ -120,7 +131,7 @@ set_pixel (struct grub_video_fbblit_info *source,
{ {
grub_uint32_t *ptr; grub_uint32_t *ptr;
ptr = (grub_uint32_t *)get_data_ptr (source, x, y); ptr = (grub_uint32_t *)grub_video_fb_get_video_ptr (source, x, y);
*ptr = color; *ptr = color;
} }
@ -131,7 +142,7 @@ set_pixel (struct grub_video_fbblit_info *source,
grub_uint8_t *ptr; grub_uint8_t *ptr;
grub_uint8_t *colorptr = (grub_uint8_t *)&color; grub_uint8_t *colorptr = (grub_uint8_t *)&color;
ptr = get_data_ptr (source, x, y); ptr = grub_video_fb_get_video_ptr (source, x, y);
ptr[0] = colorptr[0]; ptr[0] = colorptr[0];
ptr[1] = colorptr[1]; ptr[1] = colorptr[1];
@ -144,7 +155,7 @@ set_pixel (struct grub_video_fbblit_info *source,
{ {
grub_uint16_t *ptr; grub_uint16_t *ptr;
ptr = (grub_uint16_t *)get_data_ptr (source, x, y); ptr = (grub_uint16_t *)grub_video_fb_get_video_ptr (source, x, y);
*ptr = (grub_uint16_t) (color & 0xFFFF); *ptr = (grub_uint16_t) (color & 0xFFFF);
} }
@ -154,7 +165,7 @@ set_pixel (struct grub_video_fbblit_info *source,
{ {
grub_uint8_t *ptr; grub_uint8_t *ptr;
ptr = (grub_uint8_t *)get_data_ptr (source, x, y); ptr = (grub_uint8_t *)grub_video_fb_get_video_ptr (source, x, y);
*ptr = (grub_uint8_t) (color & 0xFF); *ptr = (grub_uint8_t) (color & 0xFF);
} }

View file

@ -83,44 +83,6 @@ grub_video_fb_get_info (struct grub_video_mode_info *mode_info)
return GRUB_ERR_NONE; return GRUB_ERR_NONE;
} }
grub_uint8_t *
grub_video_fb_get_video_ptr (struct grub_video_fbblit_info *source,
grub_uint32_t x, grub_uint32_t y)
{
grub_uint8_t *ptr = 0;
switch (source->mode_info->bpp)
{
case 32:
ptr = (grub_uint8_t *)source->data
+ y * source->mode_info->pitch
+ x * 4;
break;
case 24:
ptr = (grub_uint8_t *)source->data
+ y * source->mode_info->pitch
+ x * 3;
break;
case 16:
case 15:
ptr = (grub_uint8_t *)source->data
+ y * source->mode_info->pitch
+ x * 2;
break;
case 8:
ptr = (grub_uint8_t *)source->data
+ y * source->mode_info->pitch
+ x;
break;
}
return ptr;
}
grub_err_t grub_err_t
grub_video_fb_get_palette (unsigned int start, unsigned int count, grub_video_fb_get_palette (unsigned int start, unsigned int count,
struct grub_video_palette_data *palette_data) struct grub_video_palette_data *palette_data)