]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/fb-drv/server/src/dummy.cc
Inital import
[l4.git] / l4 / pkg / fb-drv / server / src / dummy.cc
1 /*
2  * (c) 2010 Technische Universität Dresden
3  * This file is part of TUD:OS and distributed under the terms of the
4  * GNU General Public License 2.
5  * Please see the COPYING-GPL-2 file for details.
6  */
7
8 #include <sys/mman.h>
9 #include <cstdio>
10 #include <getopt.h>
11 #include <cstdlib>
12
13 #include "fb.h"
14
15 bool
16 Dummy_fb::setup_drv(Prog_args *pa)
17 {
18   if (!pa->do_dummy)
19     return false;
20
21   _screen_info.width      = 1024;
22   _screen_info.height     = 768;
23   _screen_info.flags      = L4Re::Video::Goos::F_auto_refresh;
24   _screen_info.pixel_info = L4Re::Video::Pixel_info(2, 5, 11, 6, 5, 5, 0);
25
26   _vidmem_size = _screen_info.width * _screen_info.height
27                  * _screen_info.pixel_info.bytes_per_pixel();
28   _vidmem_size = l4_round_page(_vidmem_size);
29
30   void *v = mmap(0, _vidmem_size, PROT_WRITE,
31                  MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
32
33   if (v == MAP_FAILED)
34     return false;
35
36   _vidmem_start = (unsigned long)v;
37   _vidmem_end   = _vidmem_start + _vidmem_size;
38
39   _view_info.buffer_offset = 0;
40   _view_info.bytes_per_line
41      = _screen_info.width * _screen_info.pixel_info.bytes_per_pixel();
42
43   init_infos();
44
45   return true;
46 }