summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libwidget/include/libwidget/core.h4
-rw-r--r--src/lib/libwidget/src/core/widget_core.c22
2 files changed, 26 insertions, 0 deletions
diff --git a/src/lib/libwidget/include/libwidget/core.h b/src/lib/libwidget/include/libwidget/core.h
index 5a5b891..85b33d4 100644
--- a/src/lib/libwidget/include/libwidget/core.h
+++ b/src/lib/libwidget/include/libwidget/core.h
@@ -35,6 +35,10 @@
/* Forward declarations */
struct widget;
+struct libwidget_state {
+ uint32_t *fbdev;
+};
+
typedef enum {
WIDGET_WINDOW,
MAX_WIDGETS
diff --git a/src/lib/libwidget/src/core/widget_core.c b/src/lib/libwidget/src/core/widget_core.c
index c36d88e..20857ba 100644
--- a/src/lib/libwidget/src/core/widget_core.c
+++ b/src/lib/libwidget/src/core/widget_core.c
@@ -31,12 +31,34 @@
#include <stdint.h>
#include <stddef.h>
#include <string.h>
+#include <sys/mac.h>
#include <libwidget/window.h>
#include <libwidget/core.h>
static struct widget backends[];
/*
+ * Initialize lib widget
+ */
+int
+libwidget_init(struct libwidget_state *lwsp)
+{
+ int error;
+
+ if (lwsp == NULL) {
+ return -EINVAL;
+ }
+
+ /* Grab the whole framebuffer, directly mapped */
+ error = cross(BORDER_FBDEV, -1, 0, 0, &lwsp->fbdev);
+ if (error < 0) {
+ return error;
+ }
+
+ return 0;
+}
+
+/*
* Put the widget into a known state
*/
int