xref: /haiku/src/add-ons/kernel/drivers/graphics/vesa/vesa_private.h (revision bea66afaeb8d038d8918106a430a56b6e9fb3109)
1 /*
2  * Copyright 2005-2009, Axel Dörfler, axeld@pinc-software.de.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef VESA_PRIVATE_H
6 #define VESA_PRIVATE_H
7 
8 
9 #include <Drivers.h>
10 #include <Accelerant.h>
11 #include <PCI.h>
12 
13 
14 #define DEVICE_NAME				"vesa"
15 #define VESA_ACCELERANT_NAME	"vesa.accelerant"
16 
17 
18 struct vesa_get_supported_modes;
19 struct vesa_mode;
20 
21 struct vesa_info {
22 	uint32			cookie_magic;
23 	int32			open_count;
24 	int32			id;
25 	pci_info*		pci;
26 	struct vesa_shared_info* shared_info;
27 	area_id			shared_area;
28 	vesa_mode*		modes;
29 	uint32			vbe_dpms_capabilities;
30 	uint8			vbe_capabilities;
31 	uint8			bits_per_gun;
32 
33 	addr_t			frame_buffer;
34 	addr_t			physical_frame_buffer;
35 	size_t			physical_frame_buffer_size;
36 	bool			complete_frame_buffer_mapped;
37 };
38 
39 extern status_t vesa_init(vesa_info& info);
40 extern void vesa_uninit(vesa_info& info);
41 extern status_t vesa_set_display_mode(vesa_info& info, uint32 mode);
42 extern status_t vesa_get_dpms_mode(vesa_info& info, uint32& mode);
43 extern status_t vesa_set_dpms_mode(vesa_info& info, uint32 mode);
44 extern status_t vesa_set_indexed_colors(vesa_info& info, uint8 first,
45 	uint8* colors, uint16 count);
46 
47 #endif	/* VESA_PRIVATE_H */
48