git: e34fd722cafe - main - kboot: Add our own lua bindings
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 16 Feb 2024 04:00:33 UTC
The branch main has been updated by imp:
URL: https://cgit.FreeBSD.org/src/commit/?id=e34fd722cafe8639214c72997f08b5f5faa9c21f
commit e34fd722cafe8639214c72997f08b5f5faa9c21f
Author: Warner Losh <imp@FreeBSD.org>
AuthorDate: 2024-02-16 03:54:55 +0000
Commit: Warner Losh <imp@FreeBSD.org>
CommitDate: 2024-02-16 03:59:23 +0000
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
---
stand/defs.mk | 1 +
stand/i386/loader/Makefile | 2 +-
stand/kboot/kboot/Makefile | 7 +++++++
stand/kboot/kboot/lua_bindings.c | 19 +++++++++++++++++++
stand/liblua/Makefile | 3 +++
5 files changed, 31 insertions(+), 1 deletion(-)
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