summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-09-30 13:53:11 -0400
committerIan Moffett <ian@osmora.org>2025-09-30 13:53:11 -0400
commitb267bb8b2e047ebe786124566c15eeacf04ef504 (patch)
tree5e5bbee41cd3f66d3b2e81a1f6fd8e038430799c /src/lib
parent32f94c626dbe70ae8cd3385f7c898068ab09031d (diff)
libwidget: Initialize vram/fbdev pointer
Signed-off-by: Ian Moffett <ian@osmora.org>
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