Пример #1
0
static void efi_cons_cursor(struct vis_conscursor *cc)
{
	switch (cc->action) {
	case VIS_HIDE_CURSOR:
		if (plat_stdout_is_framebuffer())
			gfx_fb_display_cursor(cc);
		else
			plat_tem_hide_prom_cursor();
		break;
	case VIS_DISPLAY_CURSOR:
		if (plat_stdout_is_framebuffer())
			gfx_fb_display_cursor(cc);
		else
			plat_tem_display_prom_cursor(cc->row, cc->col);
		break;
	case VIS_GET_CURSOR: {	/* only used at startup */
		uint32_t row, col;

		plat_tem_get_prom_pos(&row, &col);
		cc->row = row;
		cc->col = col;
		}
		break;
	}
}
Пример #2
0
void
plat_cons_update_mode(int mode __unused)
{
	struct vis_devinit devinit;

	if (tem == NULL)	/* tem is not set up */
		return;

	if (plat_stdout_is_framebuffer()) {
		devinit.version = VIS_CONS_REV;
		devinit.width = gfx_fb.framebuffer_common.framebuffer_width;
		devinit.height = gfx_fb.framebuffer_common.framebuffer_height;
		devinit.depth = gfx_fb.framebuffer_common.framebuffer_bpp;
		devinit.linebytes = gfx_fb.framebuffer_common.framebuffer_pitch;
		devinit.color_map = gfx_fb_color_map;
		devinit.mode = VIS_PIXEL;
		text.c_private = &fb_ops;
	} else {
		devinit.version = VIS_CONS_REV;
		devinit.width = TEXT_COLS;
		devinit.height = TEXT_ROWS;
		devinit.depth = 4;
		devinit.linebytes = TEXT_COLS;
		devinit.color_map = NULL;
		devinit.mode = VIS_TEXT;
		text.c_private = &text_ops;
	}

	modechg_cb(modechg_arg, &devinit);
}
Пример #3
0
/*
 * plat_tem_get_prom_size() is supposed to return screen size
 * in chars. Return real data for text mode and TEM defaults for graphical
 * mode, so the tem can compute values based on default and font.
 */
void
plat_tem_get_prom_size(size_t *height, size_t *width)
{
	if (plat_stdout_is_framebuffer()) {
		*height = TEM_DEFAULT_ROWS;
		*width = TEM_DEFAULT_COLS;
	} else {
		*height = TEXT_ROWS;
		*width = TEXT_COLS;
	}
}
Пример #4
0
void
plat_tem_get_prom_pos(uint32_t *row, uint32_t *col)
{
	screen_pos_t x, y;

	if (plat_stdout_is_framebuffer()) {
		*row = 0;
		*col = 0;
	} else {
		vidc_text_get_cursor(&y, &x);
		*row = (uint32_t) y;
		*col = (uint32_t) x;
	}
}
Пример #5
0
static int
vidc_text_devinit(struct vis_devinit *devinit)
{
	if (plat_stdout_is_framebuffer())
		return (1);

	devinit->version = VIS_CONS_REV;
	devinit->width = TEXT_COLS;
	devinit->height = TEXT_ROWS;
	devinit->depth = 4;
	devinit->linebytes = TEXT_COLS;
	devinit->color_map = NULL;
	devinit->mode = VIS_TEXT;

	modechg_cb = devinit->modechg_cb;
	modechg_arg = devinit->modechg_arg;

	return (0);
}
Пример #6
0
static int
vidc_vbe_devinit(struct vis_devinit *devinit)
{
	if (plat_stdout_is_framebuffer() == 0)
		return (1);

	devinit->version = VIS_CONS_REV;
	devinit->width = gfx_fb.framebuffer_common.framebuffer_width;
	devinit->height = gfx_fb.framebuffer_common.framebuffer_height;
	devinit->depth = gfx_fb.framebuffer_common.framebuffer_bpp;
	devinit->linebytes = gfx_fb.framebuffer_common.framebuffer_pitch;
	devinit->color_map = gfx_fb_color_map;
	devinit->mode = VIS_PIXEL;

	modechg_cb = devinit->modechg_cb;
	modechg_arg = devinit->modechg_arg;

	return (0);
}