diff options
author | Felix Fietkau <nbd@nbd.name> | 2016-07-29 11:58:55 +0300 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2016-07-29 11:58:55 +0300 |
commit | 72613ca2c8f9b9905c6372c1b19ecbcd7cace007 (patch) | |
tree | e34fa4a5c6870ba0dc30dc2d1c5500d10a756e3a | |
parent | d3fa561e5abcc88e02eb289c24d0b1d4d05adb54 (diff) |
avl: add blob comparator function
Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r-- | avl-cmp.c | 13 | ||||
-rw-r--r-- | avl-cmp.h | 1 |
2 files changed, 14 insertions, 0 deletions
@@ -15,6 +15,12 @@ */ #include <string.h> #include "avl-cmp.h" +#include "blob.h" + +static inline int _min(int v1, int v2) +{ + return v1 < v2 ? v1 : v2; +} int avl_strcmp(const void *k1, const void *k2, void *ptr) @@ -22,3 +28,10 @@ avl_strcmp(const void *k1, const void *k2, void *ptr) return strcmp(k1, k2); } +int +avl_blobcmp(const void *k1, const void *k2, void *ptr) +{ + int len = _min(blob_raw_len(k1), blob_raw_len(k2)); + + return memcmp(k1, k2, len); +} @@ -17,5 +17,6 @@ #define __AVL_CMP_H int avl_strcmp(const void *k1, const void *k2, void *ptr); +int avl_blobcmp(const void *k1, const void *k2, void *ptr); #endif |