diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
| commit | 5cb84ec742fd33f78c8022863fadaa8d0d93e176 (patch) | |
| tree | 1a81ca3665e6153923e40db7b0d988f8573ab59c /static/netbsd/man4/lua.4 | |
| parent | a59214f344567c037d5776879bcfc5fcc1d4d5f6 (diff) | |
feat: Added NetBSD man pages
Diffstat (limited to 'static/netbsd/man4/lua.4')
| -rw-r--r-- | static/netbsd/man4/lua.4 | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/static/netbsd/man4/lua.4 b/static/netbsd/man4/lua.4 new file mode 100644 index 00000000..2b0bd5e3 --- /dev/null +++ b/static/netbsd/man4/lua.4 @@ -0,0 +1,198 @@ +.\" $NetBSD: lua.4,v 1.5 2014/07/26 20:04:05 wiz Exp $ +.\" +.\" Copyright (c) 2013 Marc Balmer <marc@msys.ch> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd July 25, 2014 +.Dt LUA 4 +.Os +.Sh NAME +.Nm lua +.Nd control in-kernel Lua states +.Sh SYNOPSIS +.Cd "lua*" +.Pp +.In sys/types.h +.In sys/lua.h +.Sh DESCRIPTION +The +.Nm +device allows to create, control, and delete Lua states in the kernel +through an +.Xr ioctl 2 +interface. +Moreover, +.Nm +can be used to load Lua scripts into a Lua state and to assign modules to an +existing state, i.e. perform the equivalent of the Lua command +.Em require . +.Nm +is also used to retrieve information about currently active Lua states. +.Sh LUA MODULES +Lua modules are used to provide functionality to Lua scripts not available +in the language itself, e.g. to access core kernel functionality like +printing text on the console. +Unlike in user space Lua, where Lua modules are files in the filesystem, +modules must be provided to +.Nm +in the form of loadable kernel modules that register their +functionality with +.Nm . +Modules are loaded using the +.Ic require +Lua command; whether this command +is available or not is controlled by a +.Xr sysctl 8 +variable. +.Nm +by default tries to load a kernel module named +.Em luafoo.kmod +when it encounters the Lua command +.Em require 'foo' . +.Sh SYSCTL VARIABLES +The operation of +.Nm +can be controlled by means of the following +.Xr sysctl 8 +variables: +.Bl -tag -width XXXX +.It Dv kern.lua.autoload +When set to 1, +.Nm +tries to autoload kernel modules. +.Pp +The default value is 1. +.It Dv kern.lua.bytecode +When set to 1, loading of Lua bytecode is allowed. +.Pp +The default value is 0. +.It Dv kern.lua.maxcount +When set to a value > 0, +.Nm +limits the number of instructions executed +to this number. +.Pp +The default value is 0. +.It Dv kern.lua.require +When set to 1, enables the +.Em require +command in Lua. +.Pp +The default value is 1. +.It Dv kern.lua.verbose +When set to a value > 0, verbosity is increased. +.Pp +The default value is 0. +.El +.Sh IOCTL INTERFACE +The following structures and constants are defined in the +.In sys/lua.h +header file: +.Pp +.Bl -tag -width XXXX -compact +.It Dv LUAINFO(struct lua_info) +Returns information about the +.Nm +states in the +.Fa lua_info +structure: +.Bd -literal +#define MAX_LUA_NAME 16 +#define MAX_LUA_DESC 64 + +struct lua_state_info { + char name[MAX_LUA_NAME]; + char desc[MAX_LUA_DESC]; + bool user; +}; + +struct lua_info { + int num_states; /* total number of Lua states */ + struct lua_state_info *states; +}; +.Ed +.Pp +.It Dv LUACREATE(struct lua_create) +Create a new named Lua state with name and description in the +.Fa lua_create +structure: +.Bd -literal +struct lua_create { + char name[MAX_LUA_NAME]; + char desc[MAX_LUA_DESC]; +}; +.Ed +.Pp +.It Dv LUADESTROY(struct lua_create) +Destroy a named Lua state. +.Pp +.It Dv LUAREQUIRE(struct lua_require) +Perform the equivalent of the Lua command +.Em require +in a named state. +The name of the state and of the module name is passed in the +.Fa lua_require +structure: +.Bd -literal +#define LUA_MAX_MODNAME 32 + +struct lua_require { + char state[MAX_LUA_NAME]; + char module[LUA_MAX_MODNAME]; +}; +.Ed +.Pp +.It Dv LUALOAD(struct lua_load) +Load Lua code from the filesystem into a named Lua state. +The name of the state and the path to the Lua code are passed in the +.Fa lua_load +structure: +.Bd -literal +struct lua_load { + char state[MAX_LUA_NAME]; + char path[MAXPATHLEN]; +}; +.Ed +.Pp +The path element of the +.Fa lua_load +structure must contain at least one +.Sq / +character. +.Pp +.El +.Sh FILES +.Bl -tag -width "/dev/lua" -compact +.It /dev/lua +Lua device file. +.El +.Sh SEE ALSO +.Xr ioctl 2 , +.Xr luactl 8 +.Sh HISTORY +The +.Nm +device first appeared in +.Nx 7.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written by +.An Marc Balmer Aq Mt mbalmer@NetBSD.org . +.Sh CAVEATS +The +.Nm +device is experimental. +Incompatible changes might be made in the future. |
