1/*
2 * Copyright 2005-2009, Axel Dörfler, axeld@pinc-software.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef KERNEL_FRAME_BUFFER_CONSOLE_H
6#define KERNEL_FRAME_BUFFER_CONSOLE_H
7
8
9#include <console.h>
10
11
12struct kernel_args;
13
14
15#define FRAME_BUFFER_CONSOLE_MODULE_NAME "console/frame_buffer/v1"
16#define FRAME_BUFFER_BOOT_INFO "frame_buffer/v1"
17
18struct frame_buffer_boot_info {
19	area_id	area;
20	addr_t	physical_frame_buffer;
21	addr_t	frame_buffer;
22	int32	width;
23	int32	height;
24	int32	depth;
25	int32	bytes_per_row;
26	uint8	vesa_capabilities;
27};
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33bool		frame_buffer_console_available(void);
34status_t	frame_buffer_update(addr_t baseAddress, int32 width, int32 height,
35				int32 depth, int32 bytesPerRow);
36status_t	frame_buffer_console_init(struct kernel_args* args);
37status_t	frame_buffer_console_init_post_modules(struct kernel_args* args);
38
39status_t	_user_frame_buffer_update(addr_t baseAddress, int32 width,
40				int32 height, int32 depth, int32 bytesPerRow);
41
42#ifdef __cplusplus
43}
44#endif
45
46#endif	/* KERNEL_FRAME_BUFFER_CONSOLE_H */
47