*** empty log message ***
[openwrt.git] / target / default / target_skeleton / etc / functions.sh
index 75500a2..60d6231 100755 (executable)
@@ -12,7 +12,7 @@ nvram () {
 . /etc/nvram.overrides
 
 # valid interface?
-if_valid () {
+if_valid () (
   ifconfig "$1" >&- 2>&- ||
   [ "${1%%[0-9]}" = "br" ] ||
   {
@@ -29,5 +29,29 @@ if_valid () {
       $DEBUG vconfig add $vif $i 2>&-
     )
   } ||
-  { echo -e "# $1 ignored: can't find/create"; false; }
+  { debug "# missing interface '$1' ignored"; false; }
+)
+
+bitcount () {
+  local c=$1
+  echo $((
+  c=((c>> 1)&0x55555555)+(c&0x55555555),
+  c=((c>> 2)&0x33333333)+(c&0x33333333),
+  c=((c>> 4)&0x0f0f0f0f)+(c&0x0f0f0f0f),
+  c=((c>> 8)&0x00ff00ff)+(c&0x00ff00ff),
+  c=((c>>16)&0x0000ffff)+(c&0x0000ffff)
+  ))
+}
+
+valid_netmask () {
+  return $((-($1)&~$1))
+}
+
+ip2int () (
+  set $(echo $1 | tr '\.' ' ')
+  echo $(($1<<24|$2<<16|$3<<8|$4))
+)
+
+int2ip () {
+  echo $(($1>>24&255)).$(($1>>16&255)).$(($1>>8&255)).$(($1&255))
 }
This page took 0.020728 seconds and 4 git commands to generate.