2 * (c) 2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
3 * Alexander Warg <warg@os.inf.tu-dresden.de>
4 * economic rights: Technische Universität Dresden (Germany)
6 * This file is part of TUD:OS and distributed under the terms of the
7 * GNU General Public License 2.
8 * Please see the COPYING-GPL-2 file for details.
12 #include <l4/re/util/video/goos_svr>
13 #include <l4/re/util/cap_alloc>
14 #include <l4/re/util/object_registry>
15 #include <l4/re/util/dataspace_svr>
20 Prog_args(int argc, char *argv[]);
28 class Phys_fb : public L4Re::Util::Video::Goos_svr,
29 public L4Re::Util::Dataspace_svr,
30 public L4::Server_object
33 Phys_fb() : _vidmem_start(0), _map_done(0) {}
36 virtual bool setup_drv(Prog_args *pa) = 0;
37 void setup_ds(char const *name);
38 int dispatch(l4_umword_t obj, L4::Ipc_iostream &ios);
39 int map_hook(l4_addr_t offs, unsigned long flags,
40 l4_addr_t min, l4_addr_t max);
42 bool running() { return _vidmem_start; };
45 l4_addr_t _vidmem_start;
46 l4_addr_t _vidmem_end;
47 l4_addr_t _vidmem_size;
54 class Vesa_fb : public Phys_fb
57 bool setup_drv(Prog_args *pa);
61 class Lcd_drv_fb : public Phys_fb
64 bool setup_drv(Prog_args *pa);
67 class Dummy_fb : public Phys_fb
70 bool setup_drv(Prog_args *pa);