1.1 --- a/pkg/devices/fb/include/fb-server.h Sat Jun 10 23:59:44 2023 +0200
1.2 +++ b/pkg/devices/fb/include/fb-server.h Sun Jun 11 15:42:11 2023 +0200
1.3 @@ -1,7 +1,7 @@
1.4 /*
1.5 * Common framebuffer server functionality.
1.6 *
1.7 - * Copyright (C) 2018 Paul Boddie <paul@boddie.org.uk>
1.8 + * Copyright (C) 2018, 2023 Paul Boddie <paul@boddie.org.uk>
1.9 *
1.10 * This program is free software; you can redistribute it and/or
1.11 * modify it under the terms of the GNU General Public License as
1.12 @@ -23,32 +23,36 @@
1.13
1.14 #ifdef __cplusplus
1.15
1.16 -#include <l4/cxx/ipc_server>
1.17 -#include <l4/re/dataspace>
1.18 -#include <l4/re/env>
1.19 -#include <l4/re/c/video/view.h>
1.20 +#include <l4/re/c/dataspace.h>
1.21 #include <l4/sys/types.h>
1.22
1.23 +#include "framebuffer_interface.h"
1.24 +
1.25 /* Server object to provide framebuffer data access. */
1.26
1.27 -class Framebuffer_server : public L4::Server_object_t<L4::Kobject>
1.28 +class Framebuffer_server : public Framebuffer
1.29 {
1.30 private:
1.31 - L4::Cap<L4Re::Dataspace> _mem;
1.32 + l4re_ds_t _mem;
1.33 +
1.34 +protected:
1.35 + /* Specialised methods for overriding. */
1.36 +
1.37 + virtual l4_size_t _get_framebuffer_size() = 0;
1.38 + virtual void _get_view_info(l4re_video_view_info_t *view_info) = 0;
1.39
1.40 public:
1.41 /* Initialise the server with a capability referencing the exported memory. */
1.42
1.43 - explicit Framebuffer_server(L4::Cap<L4Re::Dataspace> mem)
1.44 + explicit Framebuffer_server(l4re_ds_t mem)
1.45 : _mem(mem)
1.46 {}
1.47
1.48 - int dispatch(l4_umword_t obj, L4::Ipc::Iostream &ios);
1.49 -
1.50 /* Operation methods. */
1.51
1.52 - virtual l4_size_t get_framebuffer_size() = 0;
1.53 - virtual void get_view_info(l4re_video_view_info_t *view_info) = 0;
1.54 + virtual long get_framebuffer(l4_cap_idx_t *mem);
1.55 + virtual long get_framebuffer_size(l4_size_t *size);
1.56 + virtual long get_view_info(l4re_video_view_info_t *view_info);
1.57 };
1.58
1.59 #endif