2 * iwinfo - Wireless Information Library - Lua Headers
4 * Copyright (C) 2009 Jo-Philipp Wich <xm@subsignal.org>
6 * The iwinfo library is free software: you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License version 2
8 * as published by the Free Software Foundation.
10 * The iwinfo library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 * See the GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with the iwinfo library. If not, see http://www.gnu.org/licenses/.
19 #ifndef __IWINFO_LUALUB_H_
20 #define __IWINFO_LUALIB_H_
29 #define IWINFO_META "iwinfo"
30 #define IWINFO_WL_META "iwinfo.wl"
31 #define IWINFO_MADWIFI_META "iwinfo.madwifi"
32 #define IWINFO_WEXT_META "iwinfo.wext"
34 #define LUA_REG(type,op) \
35 { #op, iwinfo_L_##type##_##op }
37 #define LUA_WRAP_INT(type,op) \
38 static int iwinfo_L_##type##_##op(lua_State *L) \
40 const char *ifname = luaL_checkstring(L, 1); \
42 if( !type##_get_##op(ifname, &rv) ) \
43 lua_pushnumber(L, rv); \
49 #define LUA_WRAP_STRING(type,op) \
50 static int iwinfo_L_##type##_##op(lua_State *L) \
52 const char *ifname = luaL_checkstring(L, 1); \
53 char rv[IWINFO_BUFSIZE]; \
54 memset(rv, 0, IWINFO_BUFSIZE); \
55 if( !type##_get_##op(ifname, rv) ) \
56 lua_pushstring(L, rv); \
62 #define LUA_WRAP_ASSOCLIST(type) \
63 static int iwinfo_L_##type##_assoclist(lua_State *L)\
65 return iwinfo_L_assoclist(L, \
66 type##_get_assoclist); \
69 #define LUA_WRAP_TXPWRLIST(type) \
70 static int iwinfo_L_##type##_txpwrlist(lua_State *L)\
72 return iwinfo_L_txpwrlist(L, \
73 type##_get_txpwrlist); \