فهرست منبع

IP4.h: add masking operations to the IP4 class

Basic netmask type stuff...
H. Peter Anvin 1 سال پیش
والد
کامیت
471fa4e74f
5فایلهای تغییر یافته به همراه13 افزوده شده و 9 حذف شده
  1. 13 9
      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

+ 13 - 9
esp32/max80/IP4.h

@@ -30,25 +30,29 @@ public:
 	l{ip.type == IPADDR_TYPE_V4 ? ip.u_addr.ip4.addr : 0} { }
     IP4(const char *str);
 
-    constexpr operator uint32_t () { return l; }
-    operator IPAddress () { return IPAddress(l); }
-    constexpr operator ip_addr_t () {
+    operator uint32_t () const { return l; }
+    operator IPAddress () const { return IPAddress(l); }
+    constexpr operator ip_addr_t () const {
 	return ip_addr_t {
 	    .u_addr = {.ip4 = {.addr = l}},
 	    .type = IPADDR_TYPE_V4
 	};
     }
-    constexpr operator esp_ip_addr_t () {
+    constexpr operator esp_ip_addr_t () const {
 	return esp_ip_addr_t {
 	    .u_addr = {.ip4 = {.addr = l}},
 	    .type = IPADDR_TYPE_V4
 	};
     }
-    constexpr operator bool () { return l != 0; }
-    constexpr bool operator ! () { return l == 0; }
-    constexpr bool operator == (const IP4 &b) { return l == b.l; }
-    constexpr bool operator != (const IP4 &b) { return l != b.l; }
-    constexpr uint8_t operator [] (size_t n) { return b[n]; }
+    constexpr operator bool () const { return l != 0; }
+    constexpr bool operator ! () const { return l == 0; }
+    constexpr bool operator == (const IP4 &b) const { return l == b.l; }
+    constexpr bool operator != (const IP4 &b) const { return l != b.l; }
+    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 IP4 &b) const { return IP4(l ^ b.l); }
+    constexpr IP4 operator ~ () const { return IP4(~l); }
+    constexpr uint8_t operator [] (size_t n) const { return b[n]; }
     uint8_t & operator [] (size_t n) { return b[n]; }
 
     const char *cstr();

BIN
esp32/output/max80.ino.bin


BIN
fpga/output/max80.fw


BIN
fpga/output/v1.fw


BIN
fpga/output/v2.fw