Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/sys header file needed for lua(4)



details:   https://anonhg.NetBSD.org/src/rev/c88b34083901
branches:  trunk
changeset: 790536:c88b34083901
user:      mbalmer <mbalmer%NetBSD.org@localhost>
date:      Wed Oct 16 19:40:45 2013 +0000

description:
header file needed for lua(4)

diffstat:

 sys/sys/lua.h |  97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 97 insertions(+), 0 deletions(-)

diffs (101 lines):

diff -r 816208d74d2f -r c88b34083901 sys/sys/lua.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/sys/lua.h     Wed Oct 16 19:40:45 2013 +0000
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2011, 2013 Marc Balmer <mbalmer%NetBSD.org@localhost>.
+ * 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_ */



Home | Main Index | Thread Index | Old Index