Move lua/moon to genode-world

Issue genodelabs/genode-world#282
Fixes #4414
This commit is contained in:
Christian Helmuth 2022-02-10 08:15:19 +01:00 committed by Norman Feske
parent 76dde9d0ec
commit a9b8b6e6c2
13 changed files with 0 additions and 276 deletions

View File

@ -1 +0,0 @@
INC_DIR += $(call select_from_ports,lua)/include/lua

View File

@ -1 +0,0 @@
INC_DIR += $(call select_from_ports,lua)/include/lua

View File

@ -1,17 +0,0 @@
LUA_DIR := $(call select_from_ports,lua)/src/lib/lua/src
LIBS += libc libm
INC_DIR += $(LUA_DIR)
CC_DEF = -DLUA_ANSI -DLUA_USE_MKSTEMP
# core objects
LUA_CORE_C = lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c \
lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c \
lundump.c lvm.c lzio.c
# library objects, e.g. string handling
LUA_LIB_C = lauxlib.c lbaselib.c ldblib.c liolib.c lmathlib.c loslib.c ltablib.c \
lstrlib.c loadlib.c linit.c
vpath %.c $(LUA_DIR)
# vi: set ft=make :

View File

@ -1,9 +0,0 @@
#
# Lua library (ANSI C variant)
#
include $(REP_DIR)/lib/mk/lua.inc
SRC_C = $(LUA_CORE_C) $(LUA_LIB_C)
CC_CXX_WARN_STRICT =

View File

@ -1,13 +0,0 @@
#
# Lua library (C++ variant)
#
include $(REP_DIR)/lib/mk/lua.inc
SRC_C = $(LUA_CORE_C) $(LUA_LIB_C)
# force compilation with C++ compiler
CUSTOM_CC = $(CXX)
CC_WARN += -Wno-sign-compare
CC_CXX_WARN_STRICT =

View File

@ -1 +0,0 @@
db8c61d08efef779e25ed3339b11f8230af43ccd

View File

@ -1,11 +0,0 @@
LICENSE := MIT
VERSION := 5.1.5
DOWNLOADS := lua.archive
URL(lua) := http://www.lua.org/ftp/lua-$(VERSION).tar.gz
SHA(lua) := 2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333
DIR(lua) := src/lib/lua
DIRS := include/lua
DIR_CONTENT(include/lua) := $(addprefix src/lib/lua/src/,\
lua.h lauxlib.h luaconf.h lualib.h)

View File

@ -1,50 +0,0 @@
if {[get_cmd_switch --autopilot] && [have_board riscv_qemu]} {
puts "Autopilot mode is not supported on this platform."
exit 0
}
#
# Lua C++ library test
#
build "core init timer test/moon"
create_boot_directory
install_config {
<config>
<parent-provides>
<service name="PD"/>
<service name="ROM"/>
<service name="LOG"/>
<service name="IO_PORT"/>
<service name="IO_MEM"/>
<service name="IRQ"/>
<service name="CPU"/>
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<default caps="100"/>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides> <service name="Timer"/> </provides>
</start>
<start name="test-moon">
<resource name="RAM" quantum="1G"/>
<config>
<vfs> <dir name="dev"> <log/> </dir> </vfs>
<libc stdout="/dev/log"/>
</config>
</start>
</config>
}
build_boot_image {
core init timer test-moon
ld.lib.so libc.lib.so vfs.lib.so libm.lib.so
}
append qemu_args " -nographic "
run_genode_until {.*test-moon.*Finished\..*} 40

View File

@ -1,7 +0,0 @@
TARGET = test-lua
LIBS = lua libc libm
SRC_CC = main.cc
vpath main.cc $(PRG_DIR)/..
CC_CXX_WARN_STRICT =

View File

@ -1,7 +0,0 @@
TARGET = test-luacxx
LIBS = luacxx libc libm
SRC_CC = main.cc
vpath main.cc $(PRG_DIR)/..
CC_CXX_WARN_STRICT =

View File

@ -1,153 +0,0 @@
/*
* \brief Lua C++ library test
* \author Christian Helmuth
* \date 2012-05-06
*/
/*
* Copyright (C) 2012-2017 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU Affero General Public License version 3.
*/
/* Genode includes */
#include <base/log.h>
#include <libc/component.h>
#include <timer_session/connection.h>
/* Lua includes */
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
namespace Moon {
struct Main;
struct Env
{
Timer::Session &timer;
Genode::Pd_session &pd;
};
Env *env;
}
/**
* Lua: Sleep for milliseconds
*/
static int l_msleep(lua_State *lua)
{
if (lua_gettop(lua) != 1) {
lua_pushstring(lua, "msleep: invalid number of arguments");
lua_error(lua);
return 0;
}
luaL_checknumber(lua, 1);
Moon::env->timer.msleep(lua_tonumber(lua, 1));
return 0;
}
/**
* Lua: Return RAM quota
*/
static int l_quota(lua_State *lua)
{
if ((lua_gettop(lua) != 0)) {
lua_pushstring(lua, "quota: invalid number of arguments");
lua_error(lua);
return 0;
}
lua_pushnumber(lua, Moon::env->pd.ram_quota().value);
return 1;
}
/**
* Lua: Log arguments
*/
static int l_log(lua_State *lua)
{
int n = lua_gettop(lua);
for (int i = 1; i <= n; ++i) {
if (lua_isstring(lua, i))
Genode::log(lua_tostring(lua, i));
else if (lua_isnil(lua, i))
Genode::log("nil");
else if (lua_isboolean(lua, i))
Genode::log(lua_toboolean(lua, i) ? "true" : "false");
else
Genode::log(luaL_typename(lua, i), ": ", lua_topointer(lua, i));
}
return 0;
}
/**
* Lua library for Genode functions
*/
static const struct luaL_reg l_genode[] = {
{ "log", l_log },
{ "msleep", l_msleep },
{ "quota", l_quota },
{ 0, 0 } /* end of list */
};
static char const *exec_string =
"local a = { }\n"
"Genode.log(a)\n"
"a.foo = \"foo\"\n"
"a.bar = \"bar\"\n"
"Genode.log(a.foo .. \" \" .. a.bar)\n"
"\n"
"print(\"Our RAM quota is \"..Genode.quota()..\" bytes.\")\n"
"\n"
"print(\"Going to sleep...\")\n"
"for i=1,4 do\n"
" Genode.msleep(i * 1000)\n"
" print(\"Slept well for \"..i..\" seconds.\")\n"
"end\n"
"print(\"Finished.\")\n"
;
struct Moon::Main
{
Libc::Env &_env;
Timer::Connection _timer { _env };
Moon::Env _moon_env { _timer, _env.pd() };
Main(Libc::Env &env) : _env(env)
{
Libc::with_libc([&] () {
Moon::env = &_moon_env;
lua_State *lua = lua_open();
/* initialize libs */
luaopen_base(lua);
/* register Genode Lua library */
luaL_register(lua, "Genode", l_genode);
if (luaL_dostring(lua, exec_string) != 0)
Genode::log(lua_tostring(lua, -1));
lua_close(lua);
});
}
};
void Libc::Component::construct(Libc::Env &env) { static Moon::Main instance(env); }

View File

@ -1,5 +0,0 @@
TARGET = test-moon
LIBS = luacxx libc base
SRC_CC = main.cc
CC_CXX_WARN_STRICT =

View File

@ -30,7 +30,6 @@ lx_hybrid_exception
lx_hybrid_pthread_ipc
microcode
migrate
moon
netperf_lwip
netperf_lwip_bridge
netperf_lwip_usb