mirror of
https://github.com/bol-van/zapret2.git
synced 2026-03-14 06:13:09 +00:00
nfqws2: swap24
This commit is contained in:
@@ -1752,6 +1752,7 @@ function bu48(u48)
|
||||
|
||||
```
|
||||
function swap16(u16)
|
||||
function swap24(u24)
|
||||
function swap32(u32)
|
||||
function swap48(u48)
|
||||
```
|
||||
|
||||
@@ -401,6 +401,10 @@ uint16_t swap16(uint16_t u)
|
||||
// __builtin_bswap16 is absent in ancient lexra gcc 4.6
|
||||
return (u>>8) | ((u&0xFF)<<8);
|
||||
}
|
||||
uint32_t swap24(uint32_t u)
|
||||
{
|
||||
return (u>>16) & 0xFF | u & 0xFF00 | (u<<16) & 0xFF0000;
|
||||
}
|
||||
uint64_t swap48(uint64_t u)
|
||||
{
|
||||
return ((u & 0xFF0000000000) >> 40) | ((u & 0xFF00000000) >> 24) | ((u & 0xFF000000) >> 8) | ((u & 0xFF0000) << 8) | ((u & 0xFF00) << 24) | ((u & 0xFF) << 40);
|
||||
|
||||
@@ -67,6 +67,7 @@ uint64_t pntoh64(const uint8_t *p);
|
||||
void phton64(uint8_t *p, uint64_t v);
|
||||
|
||||
uint16_t swap16(uint16_t u);
|
||||
uint32_t swap24(uint32_t u);
|
||||
uint64_t swap48(uint64_t u);
|
||||
|
||||
bool parse_hex_str(const char *s, uint8_t *pbuf, size_t *size);
|
||||
|
||||
11
nfq2/lua.c
11
nfq2/lua.c
@@ -281,6 +281,16 @@ static int luacall_swap16(lua_State *L)
|
||||
lua_pushinteger(L,swap16(u));
|
||||
return 1;
|
||||
}
|
||||
static int luacall_swap24(lua_State *L)
|
||||
{
|
||||
lua_check_argc(L,"swap24",1);
|
||||
|
||||
int64_t i =(int64_t)luaL_checklint(L,1);
|
||||
if (i>0xFFFFFF || i<-(int64_t)0xFFFFFF) luaL_error(L, "out of range");
|
||||
uint32_t u = (uint32_t)i;
|
||||
lua_pushlint(L,swap24(u));
|
||||
return 1;
|
||||
}
|
||||
static int luacall_swap32(lua_State *L)
|
||||
{
|
||||
lua_check_argc(L,"swap32",1);
|
||||
@@ -3186,6 +3196,7 @@ static void lua_init_functions(void)
|
||||
{"bu48",luacall_bu48},
|
||||
// swap byte order
|
||||
{"swap16",luacall_swap16},
|
||||
{"swap24",luacall_swap24},
|
||||
{"swap32",luacall_swap32},
|
||||
{"swap48",luacall_swap48},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user