diff options
-rw-r--r-- | libs/nixio/docsrc/nixio.bit.lua | 12 | ||||
-rw-r--r-- | libs/nixio/nixio-0.3-1.rockspec | 37 | ||||
-rw-r--r-- | libs/nixio/src/bit.c | 9 |
3 files changed, 55 insertions, 3 deletions
diff --git a/libs/nixio/docsrc/nixio.bit.lua b/libs/nixio/docsrc/nixio.bit.lua index 3bdad51f2f..6951dd5321 100644 --- a/libs/nixio/docsrc/nixio.bit.lua +++ b/libs/nixio/docsrc/nixio.bit.lua @@ -10,6 +10,12 @@ module "nixio.bit" -- @param ... More Operands -- @return number +--- Invert given number. +-- @class function +-- @name bnot +-- @param oper Operand +-- @return number + --- Bitwise AND several numbers. -- @class function -- @name band @@ -28,21 +34,21 @@ module "nixio.bit" --- Left shift a number. -- @class function --- @name shl +-- @name lshift -- @param oper number -- @param shift bits to shift -- @return number --- Right shift a number. -- @class function --- @name shr +-- @name rshift -- @param oper number -- @param shift bits to shift -- @return number --- Arithmetically right shift a number. -- @class function --- @name ashr +-- @name arshift -- @param oper number -- @param shift bits to shift -- @return number diff --git a/libs/nixio/nixio-0.3-1.rockspec b/libs/nixio/nixio-0.3-1.rockspec new file mode 100644 index 0000000000..755cf815d2 --- /dev/null +++ b/libs/nixio/nixio-0.3-1.rockspec @@ -0,0 +1,37 @@ +package = "nixio" +version = "0.3-1" +source = { + url = "http://dev.luci.freifunk-halle.net/nixio/nixio-0.3.tar.bz2" +} +description = { + summary = "System, Networking and I/O library for Lua", + detailed = [[ + Nixio is a multi-platform library offering a wide variety + of features such as IPv4, IPv6 and UNIX networking, large file I/O, file + system operations, system and process control, POSIX user/group management, + basic cryptographical hashing, hmac and TLS support, bit operations and + binary conversion. + ]], + homepage = "http://luci.subsignal.org", + license = "Apache 2.0", + maintainer = "Steven Barth", +} +dependencies = { + "lua >= 5.1" +} +external_dependencies = { + OPENSSL = { + header = "openssl/ssl.h", + } +} +build = { + type = "make", + build_variables = { + NIXIO_LDFLAGS = "-lcrypt -L$(OPENSSL_LIBDIR) -I$(OPENSSL_INCDIR)", + LUA_CFLAGS = "$(CFLAGS) -I$(LUA_INCDIR)", + }, + install_variables = { + LUA_MODULEDIR = "$(LUADIR)", + LUA_LIBRARYDIR = "$(LIBDIR)", + }, +} diff --git a/libs/nixio/src/bit.c b/libs/nixio/src/bit.c index 14fdecab13..9991a7ca41 100644 --- a/libs/nixio/src/bit.c +++ b/libs/nixio/src/bit.c @@ -97,6 +97,13 @@ static int nixio_bit_cast(lua_State *L) { return 1; } +static int nixio_bit_swap(lua_State *L) { + uint64_t op = luaL_checknumber(L, 1); + op = (op >> 24) | ((op >> 8) & 0xff00) | ((op & 0xff00) << 8) | (op << 24); + lua_pushnumber(L, op); + return 1; +} + /* module table */ static const luaL_reg R[] = { {"bor", nixio_bit_or}, @@ -111,6 +118,8 @@ static const luaL_reg R[] = { {"div", nixio_bit_div}, {"check", nixio_bit_check}, {"cast", nixio_bit_cast}, + {"tobit", nixio_bit_cast}, + {"bswap", nixio_bit_swap}, {NULL, NULL} }; |