aboutsummaryrefslogtreecommitdiff
path: root/stand
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2024-02-16 03:54:55 +0000
committerWarner Losh <imp@FreeBSD.org>2024-02-16 03:59:23 +0000
commite34fd722cafe8639214c72997f08b5f5faa9c21f (patch)
tree01ba00f856bbfd5a1a55d6f814904b148b588d47 /stand
parentf7781d030ccd18b1d4c864ecfade122ea19dafb1 (diff)
downloadsrc-e34fd722cafe8639214c72997f08b5f5faa9c21f.tar.gz
src-e34fd722cafe8639214c72997f08b5f5faa9c21f.zip
kboot: Add our own lua bindings
Create a small wrapper around the new flua hash module so we can use it here too. There's no 4th bindings, nor will they be created. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D43874
Diffstat (limited to 'stand')
-rw-r--r--stand/defs.mk1
-rw-r--r--stand/i386/loader/Makefile2
-rw-r--r--stand/kboot/kboot/Makefile7
-rw-r--r--stand/kboot/kboot/lua_bindings.c19
-rw-r--r--stand/liblua/Makefile3
5 files changed, 31 insertions, 1 deletions
diff --git a/stand/defs.mk b/stand/defs.mk
index e8480a8c2b1e..3624b9311161 100644
--- a/stand/defs.mk
+++ b/stand/defs.mk
@@ -62,6 +62,7 @@ BINDIR?= /boot
# LUAPATH is where we search for and install lua scripts.
LUAPATH?= /boot/lua
FLUASRC?= ${SRCTOP}/libexec/flua
+FLUALIB?= ${SRCTOP}/lib/flua
LIBSA= ${BOOTOBJ}/libsa/libsa.a
.if ${MACHINE} == "i386"
diff --git a/stand/i386/loader/Makefile b/stand/i386/loader/Makefile
index de96e1329b2f..57191b3c8f78 100644
--- a/stand/i386/loader/Makefile
+++ b/stand/i386/loader/Makefile
@@ -33,7 +33,7 @@ VERSION_FILE= ${.CURDIR}/../loader/version
#
# will tell you how many kiB of lomem are available.
#
-LOADERSIZE?= 550000 # Largest known safe size for loader.bin
+LOADERSIZE?= 570000 # Largest known safe size for loader.bin
.PATH: ${BOOTSRC}/i386/loader
diff --git a/stand/kboot/kboot/Makefile b/stand/kboot/kboot/Makefile
index 2e68a9ba9214..b571c3acada1 100644
--- a/stand/kboot/kboot/Makefile
+++ b/stand/kboot/kboot/Makefile
@@ -60,4 +60,11 @@ CFLAGS+= -Wall
DPADD= ${LDR_INTERP} ${LIBOFW} ${LIBSAFDT} ${LIBSA} ${LIBKBOOT}
LDADD= ${LDR_INTERP} ${LIBOFW} ${LIBSAFDT} ${LIBSA} ${LIBKBOOT}
+# Add our own lua bindings until they are universal
+.if ${LOADER_INTERP} == "lua"
+SRCS+= \
+ lua_bindings.c
+CFLAGS.lua_bindings.c+= -I${FLUALIB}/libhash
+.endif
+
.include <bsd.prog.mk>
diff --git a/stand/kboot/kboot/lua_bindings.c b/stand/kboot/kboot/lua_bindings.c
new file mode 100644
index 000000000000..ca5d0253c21f
--- /dev/null
+++ b/stand/kboot/kboot/lua_bindings.c
@@ -0,0 +1,19 @@
+/*
+ * Copyright (c) 2024 Netflix, Inc.
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#include "lua.h"
+#include "lauxlib.h"
+#include "lutils.h"
+#include "lhash.h"
+
+static void
+lua_hash_bindings(lua_State *L)
+{
+ luaL_requiref(L, "hash", luaopen_hash, 1);
+ lua_pop(L, 1); /* Remove lib */
+}
+
+LUA_COMPILE_SET(lua_hash_bindings);
diff --git a/stand/liblua/Makefile b/stand/liblua/Makefile
index bbfa21e07f53..b0d89bec4f02 100644
--- a/stand/liblua/Makefile
+++ b/stand/liblua/Makefile
@@ -27,6 +27,8 @@ SRCS+= gfx_utils.c
.PATH: ${FLUASRC}/modules
SRCS+= lfs.c
+.PATH: ${FLUALIB}/libhash
+SRCS+= lhash.c
WARNS?= 3
@@ -36,6 +38,7 @@ CFLAGS+= -fno-stack-protector -D__BSD_VISIBLE
CFLAGS+= -I${BOOTSRC}/include -I${LIBLUASRC} -I${LUASRC} -I${LDRSRC}
CFLAGS.gfx_utils.c+= -I${SRCTOP}/sys/teken -I${SRCTOP}/contrib/pnglite
+CFLAGS.lhash.c+= -I${FLUALIB}/libhash -I${SRCTOP}/sys/crypto/sha2
.if ${MACHINE_CPUARCH} == "amd64" && ${DO32:U0} == 0
CFLAGS+= -fPIC