Module Name:    src
Committed By:   mbalmer
Date:           Wed Oct 16 19:40:45 UTC 2013

Added Files:
        src/sys/sys: lua.h

Log Message:
header file needed for lua(4)


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/sys/sys/lua.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/sys/sys/lua.h
diff -u /dev/null src/sys/sys/lua.h:1.1
--- /dev/null	Wed Oct 16 19:40:45 2013
+++ src/sys/sys/lua.h	Wed Oct 16 19:40:45 2013
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2011, 2013 Marc Balmer <mbal...@netbsd.org>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the Author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _SYS_LUA_H_
+#define _SYS_LUA_H_
+
+#include <lua.h>		/* for lua_State */
+
+#define MAX_LUA_NAME		16
+#define MAX_LUA_DESC		64
+#define LUA_MAX_MODNAME		32
+
+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 created Lua states */
+	struct lua_state_info *states;
+};
+
+struct lua_create {
+	char	name[MAX_LUA_NAME];
+	char	desc[MAX_LUA_DESC];
+};
+
+struct lua_require {
+	char	state[MAX_LUA_NAME];
+	char	module[LUA_MAX_MODNAME];
+};
+
+struct lua_load {
+	char	state[MAX_LUA_NAME];
+	char	path[MAXPATHLEN];
+};
+
+#define LUAINFO		_IOWR('l', 0, struct lua_info)
+
+#define LUACREATE	_IOWR('l', 1, struct lua_create)
+#define LUADESTROY	_IOWR('l', 2, struct lua_create)
+
+/* 'require' a module in a state */
+#define LUAREQUIRE	_IOWR('l', 3, struct lua_require)
+
+/* loading Lua code into a Lua state */
+#define LUALOAD		_IOWR('l', 4, struct lua_load)
+
+#ifdef _KERNEL
+extern int lua_mod_register(const char *, int (*)(void *));
+extern int lua_mod_unregister(const char *);
+
+typedef struct _klua_State {
+	lua_State	*L;
+	kmutex_t	 ks_lock;
+	kcondvar_t	 ks_inuse_cv;
+	int		 ks_inuse;
+	bool		 ks_user;	/* state created by user (ioctl) */
+} klua_State;
+
+extern int klua_lock(klua_State *);
+extern void klua_unlock(klua_State *);
+
+extern void klua_close(klua_State *);
+extern klua_State *klua_newstate(lua_Alloc, void *, const char *, const char *);
+
+extern void *lua_alloc(void *, void *, size_t, size_t);
+
+#endif
+
+#endif /* _SYS_LUA_H_ */

Reply via email to