From 7e0976edae15e199ce81f0327026d8a02dc99013 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sun, 27 Dec 2015 14:49:06 +0100 Subject: [PATCH] lua-platform-info: use libplatforminfo --- libs/lua-platform-info/Makefile | 13 ++-- .../files/ar71xx/generic/platform_info.lua | 37 --------- .../files/ar71xx/nand/platform_info.lua | 37 --------- .../files/brcm2708/bcm2708/platform_info.lua | 37 --------- .../files/brcm2708/bcm2709/platform_info.lua | 37 --------- .../files/mpc85xx/generic/platform_info.lua | 37 --------- .../files/ramips/rt305x/platform_info.lua | 32 -------- .../files/sunxi/platform_info.lua | 37 --------- .../files/x86/64/platform_info.lua | 36 --------- .../files/x86/generic/platform_info.lua | 36 --------- .../files/x86/kvm_guest/platform_info.lua | 37 --------- .../files/x86/xen_domu/platform_info.lua | 36 --------- libs/lua-platform-info/src/Makefile | 6 ++ libs/lua-platform-info/src/platform_info.c | 77 +++++++++++++++++++ 14 files changed, 89 insertions(+), 406 deletions(-) delete mode 100644 libs/lua-platform-info/files/ar71xx/generic/platform_info.lua delete mode 100644 libs/lua-platform-info/files/ar71xx/nand/platform_info.lua delete mode 100644 libs/lua-platform-info/files/brcm2708/bcm2708/platform_info.lua delete mode 100644 libs/lua-platform-info/files/brcm2708/bcm2709/platform_info.lua delete mode 100644 libs/lua-platform-info/files/mpc85xx/generic/platform_info.lua delete mode 100644 libs/lua-platform-info/files/ramips/rt305x/platform_info.lua delete mode 100644 libs/lua-platform-info/files/sunxi/platform_info.lua delete mode 100644 libs/lua-platform-info/files/x86/64/platform_info.lua delete mode 100644 libs/lua-platform-info/files/x86/generic/platform_info.lua delete mode 100644 libs/lua-platform-info/files/x86/kvm_guest/platform_info.lua delete mode 100644 libs/lua-platform-info/files/x86/xen_domu/platform_info.lua create mode 100644 libs/lua-platform-info/src/Makefile create mode 100644 libs/lua-platform-info/src/platform_info.c diff --git a/libs/lua-platform-info/Makefile b/libs/lua-platform-info/Makefile index f0dd94c..42e6675 100644 --- a/libs/lua-platform-info/Makefile +++ b/libs/lua-platform-info/Makefile @@ -1,5 +1,4 @@ include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/target.mk PKG_NAME:=lua-platform-info PKG_VERSION:=1 @@ -12,26 +11,26 @@ define Package/lua-platform-info SECTION:=libs CATEGORY:=Libraries TITLE:=Lua hardware platform information library - DEPENDS:=+lua @(TARGET_ar71xx_generic||TARGET_ar71xx_nand||TARGET_mpc85xx_generic||TARGET_x86_generic||TARGET_x86_kvm_guest||TARGET_x86_64||TARGET_x86_xen_domu||TARGET_ramips_rt305x||TARGET_brcm2708_bcm2708||TARGET_brcm2708_bcm2709||TARGET_sunxi) -endef - -define Package/lua-platform-info/description - Lua library to obtain some generic information about the runtime platform + DEPENDS:=+lua +libplatforminfo endef define Build/Prepare mkdir -p $(PKG_BUILD_DIR) + $(CP) ./src/* $(PKG_BUILD_DIR)/ endef define Build/Configure endef define Build/Compile + CFLAGS="$(TARGET_CFLAGS)" \ + CPPFLAGS="$(TARGET_CPPFLAGS)" \ + $(MAKE) -C $(PKG_BUILD_DIR) $(TARGET_CONFIGURE_OPTS) endef define Package/lua-platform-info/install $(INSTALL_DIR) $(1)/usr/lib/lua - $(INSTALL_DATA) ./files/$(BOARD)$(if $(SUBTARGET),/$(SUBTARGET))/platform_info.lua $(1)/usr/lib/lua/ + $(CP) $(PKG_BUILD_DIR)/platform_info.so $(1)/usr/lib/lua/ endef $(eval $(call BuildPackage,lua-platform-info)) diff --git a/libs/lua-platform-info/files/ar71xx/generic/platform_info.lua b/libs/lua-platform-info/files/ar71xx/generic/platform_info.lua deleted file mode 100644 index 750d563..0000000 --- a/libs/lua-platform-info/files/ar71xx/generic/platform_info.lua +++ /dev/null @@ -1,37 +0,0 @@ -local function read_line(file) - local f = io.open(file) - local ret = f:read('*line') - f:close() - return ret -end - -local board_name = read_line('/tmp/sysinfo/board_name') -local model = read_line('/tmp/sysinfo/model') - -module 'platform_info' - - --- The OpenWrt target -function get_target() - return 'ar71xx' -end - --- The OpenWrt subtarget or nil -function get_subtarget() - return 'generic' -end - --- The board name -function get_board_name() - return board_name -end - --- The model name -function get_model() - return model -end - --- The image name for sysupgrades -function get_image_name() - return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', '')) -end diff --git a/libs/lua-platform-info/files/ar71xx/nand/platform_info.lua b/libs/lua-platform-info/files/ar71xx/nand/platform_info.lua deleted file mode 100644 index 5a6b23e..0000000 --- a/libs/lua-platform-info/files/ar71xx/nand/platform_info.lua +++ /dev/null @@ -1,37 +0,0 @@ -local function read_line(file) - local f = io.open(file) - local ret = f:read('*line') - f:close() - return ret -end - -local board_name = read_line('/tmp/sysinfo/board_name') -local model = read_line('/tmp/sysinfo/model') - -module 'platform_info' - - --- The OpenWrt target -function get_target() - return 'ar71xx' -end - --- The OpenWrt subtarget or nil -function get_subtarget() - return 'nand' -end - --- The board name -function get_board_name() - return board_name -end - --- The model name -function get_model() - return model -end - --- The image name for sysupgrades -function get_image_name() - return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', '')) -end diff --git a/libs/lua-platform-info/files/brcm2708/bcm2708/platform_info.lua b/libs/lua-platform-info/files/brcm2708/bcm2708/platform_info.lua deleted file mode 100644 index 7e6f3f8..0000000 --- a/libs/lua-platform-info/files/brcm2708/bcm2708/platform_info.lua +++ /dev/null @@ -1,37 +0,0 @@ -local function read_line(file) - local f = io.open(file) - local ret = f:read('*line') - f:close() - return ret -end - -local board_name = read_line('/tmp/sysinfo/board_name') -local model = read_line('/tmp/sysinfo/model') - -module 'platform_info' - - --- The OpenWrt target -function get_target() - return 'brcm2708' -end - --- The OpenWrt subtarget or nil -function get_subtarget() - return 'bcm2708' -end - --- The board name -function get_board_name() - return board_name -end - --- The model name -function get_model() - return model -end - --- The image name for sysupgrades -function get_image_name() - return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', '')) -end diff --git a/libs/lua-platform-info/files/brcm2708/bcm2709/platform_info.lua b/libs/lua-platform-info/files/brcm2708/bcm2709/platform_info.lua deleted file mode 100644 index 09e0212..0000000 --- a/libs/lua-platform-info/files/brcm2708/bcm2709/platform_info.lua +++ /dev/null @@ -1,37 +0,0 @@ -local function read_line(file) - local f = io.open(file) - local ret = f:read('*line') - f:close() - return ret -end - -local board_name = read_line('/tmp/sysinfo/board_name') -local model = read_line('/tmp/sysinfo/model') - -module 'platform_info' - - --- The OpenWrt target -function get_target() - return 'brcm2708' -end - --- The OpenWrt subtarget or nil -function get_subtarget() - return 'bcm2709' -end - --- The board name -function get_board_name() - return board_name -end - --- The model name -function get_model() - return model -end - --- The image name for sysupgrades -function get_image_name() - return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', '')) -end diff --git a/libs/lua-platform-info/files/mpc85xx/generic/platform_info.lua b/libs/lua-platform-info/files/mpc85xx/generic/platform_info.lua deleted file mode 100644 index 3e63c80..0000000 --- a/libs/lua-platform-info/files/mpc85xx/generic/platform_info.lua +++ /dev/null @@ -1,37 +0,0 @@ -local function read_line(file) - local f = io.open(file) - local ret = f:read('*line') - f:close() - return ret -end - -local board_name = read_line('/tmp/sysinfo/board_name') -local model = read_line('/tmp/sysinfo/model') - -module 'platform_info' - - --- The OpenWrt target -function get_target() - return 'mpc85xx' -end - --- The OpenWrt subtarget or nil -function get_subtarget() - return 'generic' -end - --- The board name -function get_board_name() - return board_name -end - --- The model name -function get_model() - return model -end - --- The image name for sysupgrades -function get_image_name() - return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', '')) -end diff --git a/libs/lua-platform-info/files/ramips/rt305x/platform_info.lua b/libs/lua-platform-info/files/ramips/rt305x/platform_info.lua deleted file mode 100644 index b23385d..0000000 --- a/libs/lua-platform-info/files/ramips/rt305x/platform_info.lua +++ /dev/null @@ -1,32 +0,0 @@ -local f = io.popen('. /lib/functions.sh; . /lib/ramips.sh; ramips_board_detect; echo "$RAMIPS_BOARD_NAME"; echo "$RAMIPS_MODEL"') -local board_name, model = f:read("*a"):match('([^\n]+)\n([^\n]+)') -f:close() - - -module 'platform_info' - - --- The OpenWrt target -function get_target() - return 'ramips' -end - --- The OpenWrt subtarget or nil -function get_subtarget() - return 'rt305x' -end - --- The board name -function get_board_name() - return board_name -end - --- The model name -function get_model() - return model -end - --- The image name for sysupgrades -function get_image_name() - return (model:lower():gsub('[^%w]+', '-'):gsub('%-+$', '')) -end diff --git a/libs/lua-platform-info/files/sunxi/platform_info.lua b/libs/lua-platform-info/files/sunxi/platform_info.lua deleted file mode 100644 index 30314b0..0000000 --- a/libs/lua-platform-info/files/sunxi/platform_info.lua +++ /dev/null @@ -1,37 +0,0 @@ -local function read_line(file) - local f = io.open(file) - local ret = f:read('*line') - f:close() - return ret -end - -local board_name = read_line('/tmp/sysinfo/board_name') -local model = read_line('/tmp/sysinfo/model') - -module 'platform_info' - - --- The OpenWrt target -function get_target() - return 'sunxi' -end - --- The OpenWrt subtarget or nil -function get_subtarget() - return nil -end - --- The board name -function get_board_name() - return board_name -end - --- The model name -function get_model() - return model -end - --- The image name for sysupgrades -function get_image_name() - return (model:lower():gsub('[^%w%.%+]+', '-'):gsub('%.+', '.'):gsub('[%-%.]*%-[%-%.]*', '-'):gsub('%-+$', '')) -end diff --git a/libs/lua-platform-info/files/x86/64/platform_info.lua b/libs/lua-platform-info/files/x86/64/platform_info.lua deleted file mode 100644 index 68e645e..0000000 --- a/libs/lua-platform-info/files/x86/64/platform_info.lua +++ /dev/null @@ -1,36 +0,0 @@ -local model - -for line in io.lines('/proc/cpuinfo') do - model = line:match('^model name%s*:%s*(.+)$') - if model then - break - end -end - - -module 'platform_info' - --- The OpenWrt target -function get_target() - return 'x86' -end - --- The OpenWrt subtarget or nil -function get_subtarget() - return '64' -end - --- The board name -function get_board_name() - return nil -end - --- The model name -function get_model() - return model -end - --- The image name for sysupgrades -function get_image_name() - return 'x86-64' -end diff --git a/libs/lua-platform-info/files/x86/generic/platform_info.lua b/libs/lua-platform-info/files/x86/generic/platform_info.lua deleted file mode 100644 index 34e3fde..0000000 --- a/libs/lua-platform-info/files/x86/generic/platform_info.lua +++ /dev/null @@ -1,36 +0,0 @@ -local model - -for line in io.lines('/proc/cpuinfo') do - model = line:match('^model name%s*:%s*(.+)$') - if model then - break - end -end - - -module 'platform_info' - --- The OpenWrt target -function get_target() - return 'x86' -end - --- The OpenWrt subtarget or nil -function get_subtarget() - return 'generic' -end - --- The board name -function get_board_name() - return nil -end - --- The model name -function get_model() - return model -end - --- The image name for sysupgrades -function get_image_name() - return 'x86-generic' -end diff --git a/libs/lua-platform-info/files/x86/kvm_guest/platform_info.lua b/libs/lua-platform-info/files/x86/kvm_guest/platform_info.lua deleted file mode 100644 index 594a783..0000000 --- a/libs/lua-platform-info/files/x86/kvm_guest/platform_info.lua +++ /dev/null @@ -1,37 +0,0 @@ -local model - -for line in io.lines('/proc/cpuinfo') do - model = line:match('^model name%s*:%s*(.+)$') - if model then - break - end -end - - -module 'platform_info' - - --- The OpenWrt target -function get_target() - return 'x86' -end - --- The OpenWrt subtarget or nil -function get_subtarget() - return 'kvm_guest' -end - --- The board name -function get_board_name() - return nil -end - --- The model name -function get_model() - return model -end - --- The image name for sysupgrades -function get_image_name() - return 'x86-kvm' -end diff --git a/libs/lua-platform-info/files/x86/xen_domu/platform_info.lua b/libs/lua-platform-info/files/x86/xen_domu/platform_info.lua deleted file mode 100644 index b47bafd..0000000 --- a/libs/lua-platform-info/files/x86/xen_domu/platform_info.lua +++ /dev/null @@ -1,36 +0,0 @@ -local model - -for line in io.lines('/proc/cpuinfo') do - model = line:match('^model name%s*:%s*(.+)$') - if model then - break - end -end - - -module 'platform_info' - --- The OpenWrt target -function get_target() - return 'x86' -end - --- The OpenWrt subtarget or nil -function get_subtarget() - return 'xen_domu' -end - --- The board name -function get_board_name() - return nil -end - --- The model name -function get_model() - return model -end - --- The image name for sysupgrades -function get_image_name() - return 'x86-xen' -end diff --git a/libs/lua-platform-info/src/Makefile b/libs/lua-platform-info/src/Makefile new file mode 100644 index 0000000..d8b68a6 --- /dev/null +++ b/libs/lua-platform-info/src/Makefile @@ -0,0 +1,6 @@ +all: platform_info.so + +CFLAGS += -Wall + +platform_info.so: platform_info.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -shared -fPIC -o $@ $^ $(LDLIBS) -lplatforminfo diff --git a/libs/lua-platform-info/src/platform_info.c b/libs/lua-platform-info/src/platform_info.c new file mode 100644 index 0000000..e2937ec --- /dev/null +++ b/libs/lua-platform-info/src/platform_info.c @@ -0,0 +1,77 @@ +/* + Copyright (c) 2015, Matthias Schiffer + 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. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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. +*/ + + +#include + +#include +#include +#include + + +static int push_string(lua_State *L, const char *value) { + if (value) + lua_pushstring(L, value); + else + lua_pushnil(L); + + return 1; +} + + +static int get_target(lua_State *L) { + return push_string(L, platforminfo_get_target()); +} + +static int get_subtarget(lua_State *L) { + return push_string(L, platforminfo_get_subtarget()); +} + +static int get_board_name(lua_State *L) { + return push_string(L, platforminfo_get_board_name()); +} + +static int get_model(lua_State *L) { + return push_string(L, platforminfo_get_model()); +} + +static int get_image_name(lua_State *L) { + return push_string(L, platforminfo_get_image_name()); +} + + +static const luaL_reg R[] = { + {"get_target", get_target}, + {"get_subtarget", get_subtarget}, + {"get_board_name", get_board_name}, + {"get_model", get_model}, + {"get_image_name", get_image_name}, + {NULL, NULL }, +}; + +LUALIB_API int luaopen_platform_info(lua_State *L) { + luaL_register(L, "platform_info", R); + return 1; +}