Browse Source

IP4.h: add netmask operators / and % (net and host parts)

H. Peter Anvin 1 year ago
parent
commit
ae34c39bc1
5 changed files with 6 additions and 0 deletions
  1. 6 0
      esp32/max80/IP4.h
  2. BIN
      esp32/output/max80.ino.bin
  3. BIN
      fpga/output/max80.fw
  4. BIN
      fpga/output/v1.fw
  5. BIN
      fpga/output/v2.fw

+ 6 - 0
esp32/max80/IP4.h

@@ -52,6 +52,12 @@ public:
     constexpr IP4 operator | (const IP4 &b) const { return IP4(l | b.l); }
     constexpr IP4 operator ^ (const IP4 &b) const { return IP4(l ^ b.l); }
     constexpr IP4 operator ~ () const { return IP4(~l); }
+    constexpr IP4 operator / (unsigned int n) const {
+	return IP4(n >= 32 ? l : l & ~(((uint32_t)1 << n)-1));
+    }
+    constexpr IP4 operator % (unsigned int n) const {
+	return IP4(n >= 32 ? 0 : l & (((uint32_t)1 << n)-1));
+    }
     constexpr uint8_t operator [] (size_t n) const { return b[n]; }
     uint8_t & operator [] (size_t n) { return b[n]; }
 

BIN
esp32/output/max80.ino.bin


BIN
fpga/output/max80.fw


BIN
fpga/output/v1.fw


BIN
fpga/output/v2.fw