X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;ds=sidebyside;f=ccan%2Fmem%2Fmem.c;h=5eb15070ed3c3f9f5bf8d2dd8b0d0f060ffa1766;hb=780297d2024c0892a43b9b1b8eabb9bf385c9c7b;hp=5b4b3508090dfb10dc7eea9236eb42ed54b92834;hpb=428d3b0217b32892c2fd309358619a4877113833;p=ccan diff --git a/ccan/mem/mem.c b/ccan/mem/mem.c index 5b4b3508..5eb15070 100644 --- a/ccan/mem/mem.c +++ b/ccan/mem/mem.c @@ -88,3 +88,22 @@ void memswap(void *a, void *b, size_t n) n -= m; } } + +bool memeqzero(const void *data, size_t length) +{ + const unsigned char *p = data; + size_t len; + + /* Check first 16 bytes manually */ + for (len = 0; len < 16; len++) { + if (!length) + return true; + if (*p) + return false; + p++; + length--; + } + + /* Now we know that's zero, memcmp with self. */ + return memcmp(data, p, length) == 0; +}