diff options
author | Ales Kozumplik <akozumpl@redhat.com> | 2012-03-27 14:06:42 +0200 |
---|---|---|
committer | Ales Kozumplik <akozumpl@redhat.com> | 2012-03-27 14:13:00 +0200 |
commit | fd144ef57517b9cff624d5c8ca11d2bc3f461ed2 (patch) | |
tree | 582902cbe70251de23bdd54c394c50780397f8f0 | |
parent | 28d0d857fec4cc719d7418f94e250b570228ae84 (diff) | |
download | libsolv-fd144ef57517b9cff624d5c8ca11d2bc3f461ed2.tar.gz libsolv-fd144ef57517b9cff624d5c8ca11d2bc3f461ed2.tar.bz2 libsolv-fd144ef57517b9cff624d5c8ca11d2bc3f461ed2.zip |
bitmap: implement map_and_not.
-rw-r--r-- | src/bitmap.c | 12 | ||||
-rw-r--r-- | src/bitmap.h | 1 | ||||
-rw-r--r-- | src/libsolv.ver | 1 |
3 files changed, 14 insertions, 0 deletions
diff --git a/src/bitmap.c b/src/bitmap.c index 94a88ca..5a8dcd8 100644 --- a/src/bitmap.c +++ b/src/bitmap.c @@ -71,4 +71,16 @@ map_and(Map *t, Map *s) *ti++ &= *si++; } +/* like map_and but negates value in s first, i.e. t & ~s */ +void +map_and_not(Map *t, Map *s) +{ + unsigned char *ti, *si, *end; + ti = t->map; + si = s->map; + end = ti + t->size; + while (ti < end) + *ti++ &= ~*si++; +} + /* EOF */ diff --git a/src/bitmap.h b/src/bitmap.h index 12257ff..b098b26 100644 --- a/src/bitmap.h +++ b/src/bitmap.h @@ -35,6 +35,7 @@ extern void map_init_clone(Map *t, Map *s); extern void map_grow(Map *m, int n); extern void map_free(Map *m); extern void map_and(Map *t, Map *s); +extern void map_and_not(Map *t, Map *s); static inline void map_empty(Map *m) { diff --git a/src/libsolv.ver b/src/libsolv.ver index 5204e29..3902354 100644 --- a/src/libsolv.ver +++ b/src/libsolv.ver @@ -27,6 +27,7 @@ SOLV_1.0 { dirpool_init; dirpool_make_dirtraverse; map_and; + map_and_not; map_free; map_grow; map_init; |