+2010-02-25 Vladimir Serbinenko <phcoder@gmail.com>
+
+ Don't compile video modules on yeeloong since video subsystem is part
+ of kernel.
+
+ * conf/common.rmk (pkglib_MODULES) [yeeloong]: Remove video.mod,
+ video_fb.mod, bitmap.mod, font.mod, gfxterm.mod and bufio.mod
+ * conf/mips-yeeloong.rmk (kernel_img_HEADERS): Add bitmap.h,
+ video.h, gfxterm.h, font.h, bitmap_scale.h and bufio.h.
+ * conf/mips.rmk (kernel_img_HEADERS): Add values instead of overwriting.
+ * include/grub/bitmap.h: Add EXPORT_FUNC and EXPORT_VAR.
+ * include/grub/bitmap_scale.h: Likewise.
+ * include/grub/bufio.h: Likewise.
+ * include/grub/font.h: Likewise.
+ * include/grub/gfxterm.h: Likewise.
+ * include/grub/video.h: Likewise.
+ * include/grub/vbe.h: Don't include video_fb.h.
+ * video/i386/pc/vbe.c: Include video_fb.h.
+ * commands/i386/pc/vbetest.c: Include video.h.
+
2010-02-25 Jordan Uggla <jordan.uggla@gmail.com>
* util/grub-mkconfig.in (GRUB_SAVEDEFAULT): Export new variable.
#include <grub/term.h>
#include <grub/machine/init.h>
#include <grub/machine/vbe.h>
+#include <grub/video.h>
#include <grub/err.h>
#include <grub/i18n.h>
sh_mod_CFLAGS = $(COMMON_CFLAGS)
sh_mod_LDFLAGS = $(COMMON_LDFLAGS)
+ifneq (, $(FONT_SOURCE))
+font/font.c_DEPENDENCIES = ascii.h
+endif
+
# Common Video Subsystem specific modules.
-pkglib_MODULES += video.mod videotest.mod bitmap.mod tga.mod jpeg.mod \
- png.mod gfxterm.mod video_fb.mod
+# On Yeeloong it's part of kernel
+ifneq ($(platform), yeeloong)
# For video.mod.
+pkglib_MODULES += video.mod
video_mod_SOURCES = video/video.c
video_mod_CFLAGS = $(COMMON_CFLAGS)
video_mod_LDFLAGS = $(COMMON_LDFLAGS)
+pkglib_MODULES += video_fb.mod
video_fb_mod_SOURCES = video/fb/video_fb.c video/fb/fbblit.c \
video/fb/fbfill.c video/fb/fbutil.c
video_fb_mod_CFLAGS = $(COMMON_CFLAGS)
video_fb_mod_LDFLAGS = $(COMMON_LDFLAGS)
-# For videotest.mod.
-videotest_mod_SOURCES = commands/videotest.c
-videotest_mod_CFLAGS = $(COMMON_CFLAGS)
-videotest_mod_LDFLAGS = $(COMMON_LDFLAGS)
-
# For bitmap.mod
+pkglib_MODULES += bitmap.mod
bitmap_mod_SOURCES = video/bitmap.c
bitmap_mod_CFLAGS = $(COMMON_CFLAGS)
bitmap_mod_LDFLAGS = $(COMMON_LDFLAGS)
bitmap_scale_mod_CFLAGS = $(COMMON_CFLAGS)
bitmap_scale_mod_LDFLAGS = $(COMMON_LDFLAGS)
+pkglib_MODULES += font.mod
+font_mod_SOURCES = font/font_cmd.c font/font.c
+font_mod_CFLAGS = $(COMMON_CFLAGS)
+font_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For gfxterm.mod.
+pkglib_MODULES += gfxterm.mod
+gfxterm_mod_SOURCES = term/gfxterm.c
+gfxterm_mod_CFLAGS = $(COMMON_CFLAGS)
+gfxterm_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+endif
+
+# For videotest.mod.
+pkglib_MODULES += videotest.mod
+videotest_mod_SOURCES = commands/videotest.c
+videotest_mod_CFLAGS = $(COMMON_CFLAGS)
+videotest_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
# For tga.mod
+pkglib_MODULES += tga.mod
tga_mod_SOURCES = video/readers/tga.c
tga_mod_CFLAGS = $(COMMON_CFLAGS)
tga_mod_LDFLAGS = $(COMMON_LDFLAGS)
# For jpeg.mod.
+pkglib_MODULES += jpeg.mod
jpeg_mod_SOURCES = video/readers/jpeg.c
jpeg_mod_CFLAGS = $(COMMON_CFLAGS)
jpeg_mod_LDFLAGS = $(COMMON_LDFLAGS)
# For png.mod.
+pkglib_MODULES += png.mod
png_mod_SOURCES = video/readers/png.c
png_mod_CFLAGS = $(COMMON_CFLAGS)
png_mod_LDFLAGS = $(COMMON_LDFLAGS)
-pkglib_MODULES += font.mod
-ifneq (, $(FONT_SOURCE))
-font/font.c_DEPENDENCIES = ascii.h
-endif
-font_mod_SOURCES = font/font_cmd.c font/font.c
-font_mod_CFLAGS = $(COMMON_CFLAGS)
-font_mod_LDFLAGS = $(COMMON_LDFLAGS)
-
-# For gfxterm.mod.
-gfxterm_mod_SOURCES = term/gfxterm.c
-gfxterm_mod_CFLAGS = $(COMMON_CFLAGS)
-gfxterm_mod_LDFLAGS = $(COMMON_LDFLAGS)
# Misc.
-pkglib_MODULES += gzio.mod bufio.mod elf.mod
+pkglib_MODULES += gzio.mod elf.mod
# For elf.mod.
elf_mod_SOURCES = kern/elf.c
gzio_mod_CFLAGS = $(COMMON_CFLAGS)
gzio_mod_LDFLAGS = $(COMMON_LDFLAGS)
+# On Yeeloong it's part of kernel
+ifneq ($(platform), yeeloong)
# For bufio.mod.
+pkglib_MODULES += bufio.mod
bufio_mod_SOURCES = io/bufio.c
bufio_mod_CFLAGS = $(COMMON_CFLAGS)
bufio_mod_LDFLAGS = $(COMMON_LDFLAGS)
+endif
# For gettext.mod.
pkglib_MODULES += gettext.mod
target_machine=yeeloong
COMMON_CFLAGS += -march=mips3
COMMON_ASFLAGS += -march=mips3
+
+kernel_img_HEADERS += bitmap.h video.h gfxterm.h font.h bitmap_scale.h bufio.h
+
include $(srcdir)/conf/mips.mk
pkglib_IMAGES = kernel.img
MOSTLYCLEANFILES += symlist.c kernel_syms.lst
DEFSYMFILES += kernel_syms.lst
-kernel_img_HEADERS = boot.h cache.h device.h disk.h dl.h elf.h elfload.h \
+kernel_img_HEADERS += boot.h cache.h device.h disk.h dl.h elf.h elfload.h \
env.h err.h file.h fs.h kernel.h misc.h mm.h net.h parser.h reader.h \
symbol.h term.h time.h types.h loader.h partition.h \
msdos_partition.h machine/kernel.h handler.h list.h \
};
typedef struct grub_video_bitmap_reader *grub_video_bitmap_reader_t;
-void grub_video_bitmap_reader_register (grub_video_bitmap_reader_t reader);
-void grub_video_bitmap_reader_unregister (grub_video_bitmap_reader_t reader);
+void EXPORT_FUNC (grub_video_bitmap_reader_register) (grub_video_bitmap_reader_t reader);
+void EXPORT_FUNC (grub_video_bitmap_reader_unregister) (grub_video_bitmap_reader_t reader);
-grub_err_t grub_video_bitmap_create (struct grub_video_bitmap **bitmap,
- unsigned int width, unsigned int height,
- enum grub_video_blit_format blit_format);
+grub_err_t EXPORT_FUNC (grub_video_bitmap_create) (struct grub_video_bitmap **bitmap,
+ unsigned int width, unsigned int height,
+ enum grub_video_blit_format blit_format);
-grub_err_t grub_video_bitmap_destroy (struct grub_video_bitmap *bitmap);
+grub_err_t EXPORT_FUNC (grub_video_bitmap_destroy) (struct grub_video_bitmap *bitmap);
-grub_err_t grub_video_bitmap_load (struct grub_video_bitmap **bitmap,
- const char *filename);
+grub_err_t EXPORT_FUNC (grub_video_bitmap_load) (struct grub_video_bitmap **bitmap,
+ const char *filename);
-unsigned int grub_video_bitmap_get_width (struct grub_video_bitmap *bitmap);
-unsigned int grub_video_bitmap_get_height (struct grub_video_bitmap *bitmap);
+unsigned int EXPORT_FUNC (grub_video_bitmap_get_width) (struct grub_video_bitmap *bitmap);
+unsigned int EXPORT_FUNC (grub_video_bitmap_get_height) (struct grub_video_bitmap *bitmap);
-void grub_video_bitmap_get_mode_info (struct grub_video_bitmap *bitmap,
- struct grub_video_mode_info *mode_info);
+void EXPORT_FUNC (grub_video_bitmap_get_mode_info) (struct grub_video_bitmap *bitmap,
+ struct grub_video_mode_info *mode_info);
-void *grub_video_bitmap_get_data (struct grub_video_bitmap *bitmap);
+void *EXPORT_FUNC (grub_video_bitmap_get_data) (struct grub_video_bitmap *bitmap);
#endif /* ! GRUB_BITMAP_HEADER */
};
grub_err_t
-grub_video_bitmap_create_scaled (struct grub_video_bitmap **dst,
- int dst_width, int dst_height,
- struct grub_video_bitmap *src,
- enum
- grub_video_bitmap_scale_method scale_method);
+EXPORT_FUNC (grub_video_bitmap_create_scaled) (struct grub_video_bitmap **dst,
+ int dst_width, int dst_height,
+ struct grub_video_bitmap *src,
+ enum
+ grub_video_bitmap_scale_method
+ scale_method);
#endif /* ! GRUB_BITMAP_SCALE_HEADER */
#include <grub/file.h>
-grub_file_t grub_bufio_open (grub_file_t io, int size);
-grub_file_t grub_buffile_open (const char *name, int size);
+grub_file_t EXPORT_FUNC (grub_bufio_open) (grub_file_t io, int size);
+grub_file_t EXPORT_FUNC (grub_buffile_open) (const char *name, int size);
#endif /* ! GRUB_BUFIO_H */
"Family Name Bold Italic 14", where Bold and Italic are optional.
If no font matches the name specified, the most recently loaded font
is returned as a fallback. */
-grub_font_t grub_font_get (const char *font_name);
+grub_font_t EXPORT_FUNC (grub_font_get) (const char *font_name);
-const char *grub_font_get_name (grub_font_t font);
+const char *EXPORT_FUNC (grub_font_get_name) (grub_font_t font);
-int grub_font_get_max_char_width (grub_font_t font);
+int EXPORT_FUNC (grub_font_get_max_char_width) (grub_font_t font);
-int grub_font_get_max_char_height (grub_font_t font);
+int EXPORT_FUNC (grub_font_get_max_char_height) (grub_font_t font);
-int grub_font_get_ascent (grub_font_t font);
+int EXPORT_FUNC (grub_font_get_ascent) (grub_font_t font);
-int grub_font_get_descent (grub_font_t font);
+int EXPORT_FUNC (grub_font_get_descent) (grub_font_t font);
-int grub_font_get_leading (grub_font_t font);
+int EXPORT_FUNC (grub_font_get_leading) (grub_font_t font);
-int grub_font_get_height (grub_font_t font);
+int EXPORT_FUNC (grub_font_get_height) (grub_font_t font);
-int grub_font_get_string_width (grub_font_t font, const char *str);
+int EXPORT_FUNC (grub_font_get_string_width) (grub_font_t font,
+ const char *str);
-struct grub_font_glyph *grub_font_get_glyph (grub_font_t font,
- grub_uint32_t code);
+struct grub_font_glyph *EXPORT_FUNC (grub_font_get_glyph) (grub_font_t font,
+ grub_uint32_t code);
-struct grub_font_glyph *grub_font_get_glyph_with_fallback (grub_font_t font,
- grub_uint32_t code);
+struct grub_font_glyph *EXPORT_FUNC (grub_font_get_glyph_with_fallback) (grub_font_t font,
+ grub_uint32_t code);
-grub_err_t grub_font_draw_glyph (struct grub_font_glyph *glyph,
- grub_video_color_t color,
- int left_x, int baseline_y);
+grub_err_t EXPORT_FUNC (grub_font_draw_glyph) (struct grub_font_glyph *glyph,
+ grub_video_color_t color,
+ int left_x, int baseline_y);
-grub_err_t grub_font_draw_string (const char *str, grub_font_t font,
- grub_video_color_t color,
- int left_x, int baseline_y);
+grub_err_t EXPORT_FUNC (grub_font_draw_string) (const char *str,
+ grub_font_t font,
+ grub_video_color_t color,
+ int left_x, int baseline_y);
#endif /* ! GRUB_FONT_HEADER */
#include <grub/video.h>
grub_err_t
-grub_gfxterm_set_window (struct grub_video_render_target *target,
- int x, int y, int width, int height,
- int double_repaint,
- const char *font_name, int border_width);
+EXPORT_FUNC (grub_gfxterm_set_window) (struct grub_video_render_target *target,
+ int x, int y, int width, int height,
+ int double_repaint,
+ const char *font_name, int border_width);
typedef void (*grub_gfxterm_repaint_callback_t)(int x, int y,
int width, int height);
void grub_gfxterm_set_repaint_callback (grub_gfxterm_repaint_callback_t func);
-void grub_gfxterm_schedule_repaint (void);
+void EXPORT_FUNC (grub_gfxterm_schedule_repaint) (void);
-grub_err_t grub_gfxterm_fullscreen (void);
+grub_err_t EXPORT_FUNC (grub_gfxterm_fullscreen) (void);
-extern void (*grub_gfxterm_decorator_hook) (void);
+extern void (*EXPORT_VAR (grub_gfxterm_decorator_hook)) (void);
#endif /* ! GRUB_GFXTERM_HEADER */
#ifndef GRUB_VBE_MACHINE_HEADER
#define GRUB_VBE_MACHINE_HEADER 1
-#include <grub/video_fb.h>
-
/* Default video mode to be used. */
#define GRUB_VBE_DEFAULT_VIDEO_MODE 0x101
};
typedef struct grub_video_adapter *grub_video_adapter_t;
-void grub_video_register (grub_video_adapter_t adapter);
+void EXPORT_FUNC (grub_video_register) (grub_video_adapter_t adapter);
void grub_video_unregister (grub_video_adapter_t adapter);
void grub_video_iterate (int (*hook) (grub_video_adapter_t adapter));
-grub_err_t grub_video_restore (void);
+grub_err_t EXPORT_FUNC (grub_video_restore) (void);
-grub_err_t grub_video_get_info (struct grub_video_mode_info *mode_info);
+grub_err_t EXPORT_FUNC (grub_video_get_info) (struct grub_video_mode_info *mode_info);
/* Framebuffer address may change as a part of normal operation
(e.g. double buffering). That's why you need to stop video subsystem to be
grub_err_t grub_video_get_palette (unsigned int start, unsigned int count,
struct grub_video_palette_data *palette_data);
-grub_err_t grub_video_set_viewport (unsigned int x, unsigned int y,
- unsigned int width, unsigned int height);
-
-grub_err_t grub_video_get_viewport (unsigned int *x, unsigned int *y,
- unsigned int *width, unsigned int *height);
-
-grub_video_color_t grub_video_map_color (grub_uint32_t color_name);
-
-grub_video_color_t grub_video_map_rgb (grub_uint8_t red, grub_uint8_t green,
- grub_uint8_t blue);
-
-grub_video_color_t grub_video_map_rgba (grub_uint8_t red, grub_uint8_t green,
- grub_uint8_t blue, grub_uint8_t alpha);
-
-grub_err_t grub_video_unmap_color (grub_video_color_t color,
- grub_uint8_t *red, grub_uint8_t *green,
- grub_uint8_t *blue, grub_uint8_t *alpha);
-
-grub_err_t grub_video_fill_rect (grub_video_color_t color, int x, int y,
- unsigned int width, unsigned int height);
-
-grub_err_t grub_video_blit_bitmap (struct grub_video_bitmap *bitmap,
- enum grub_video_blit_operators oper,
- int x, int y, int offset_x, int offset_y,
- unsigned int width, unsigned int height);
-
-grub_err_t grub_video_blit_render_target (struct grub_video_render_target *source,
- enum grub_video_blit_operators oper,
- int x, int y,
- int offset_x, int offset_y,
- unsigned int width,
- unsigned int height);
+grub_err_t EXPORT_FUNC (grub_video_set_viewport) (unsigned int x,
+ unsigned int y,
+ unsigned int width,
+ unsigned int height);
+
+grub_err_t EXPORT_FUNC (grub_video_get_viewport) (unsigned int *x,
+ unsigned int *y,
+ unsigned int *width,
+ unsigned int *height);
+
+grub_video_color_t EXPORT_FUNC (grub_video_map_color) (grub_uint32_t color_name);
+
+grub_video_color_t EXPORT_FUNC (grub_video_map_rgb) (grub_uint8_t red,
+ grub_uint8_t green,
+ grub_uint8_t blue);
+
+grub_video_color_t EXPORT_FUNC (grub_video_map_rgba) (grub_uint8_t red,
+ grub_uint8_t green,
+ grub_uint8_t blue,
+ grub_uint8_t alpha);
+
+grub_err_t EXPORT_FUNC (grub_video_unmap_color) (grub_video_color_t color,
+ grub_uint8_t *red,
+ grub_uint8_t *green,
+ grub_uint8_t *blue,
+ grub_uint8_t *alpha);
+
+grub_err_t EXPORT_FUNC (grub_video_fill_rect) (grub_video_color_t color,
+ int x, int y,
+ unsigned int width,
+ unsigned int height);
+
+grub_err_t EXPORT_FUNC (grub_video_blit_bitmap) (struct grub_video_bitmap *bitmap,
+ enum grub_video_blit_operators oper,
+ int x, int y,
+ int offset_x, int offset_y,
+ unsigned int width,
+ unsigned int height);
+
+grub_err_t EXPORT_FUNC (grub_video_blit_render_target) (struct grub_video_render_target *source,
+ enum grub_video_blit_operators oper,
+ int x, int y,
+ int offset_x,
+ int offset_y,
+ unsigned int width,
+ unsigned int height);
grub_err_t grub_video_scroll (grub_video_color_t color, int dx, int dy);
-grub_err_t grub_video_swap_buffers (void);
+grub_err_t EXPORT_FUNC (grub_video_swap_buffers) (void);
-grub_err_t grub_video_create_render_target (struct grub_video_render_target **result,
- unsigned int width,
- unsigned int height,
- unsigned int mode_type);
+grub_err_t EXPORT_FUNC (grub_video_create_render_target) (struct grub_video_render_target **result,
+ unsigned int width,
+ unsigned int height,
+ unsigned int mode_type);
-grub_err_t grub_video_delete_render_target (struct grub_video_render_target *target);
+grub_err_t EXPORT_FUNC (grub_video_delete_render_target) (struct grub_video_render_target *target);
-grub_err_t grub_video_set_active_render_target (struct grub_video_render_target *target);
+grub_err_t EXPORT_FUNC (grub_video_set_active_render_target) (struct grub_video_render_target *target);
grub_err_t grub_video_get_active_render_target (struct grub_video_render_target **target);
-grub_err_t grub_video_set_mode (const char *modestring,
- unsigned int modemask,
- unsigned int modevalue);
+grub_err_t EXPORT_FUNC (grub_video_set_mode) (const char *modestring,
+ unsigned int modemask,
+ unsigned int modevalue);
static inline int
grub_video_check_mode_flag (unsigned int flags, unsigned int mask,
#include <grub/machine/memory.h>
#include <grub/machine/vga.h>
#include <grub/machine/vbe.h>
+#include <grub/video_fb.h>
#include <grub/types.h>
#include <grub/dl.h>
#include <grub/misc.h>