[apparmor] [PATCH v2 34/42] libapparmor: Temporarily duplicate the parser's atomic ops

Tyler Hicks tyhicks at canonical.com
Fri Mar 6 21:48:50 UTC 2015


The parser's copy of the two atomic operations will be removed once the
new API's (aa_features, aa_policy_cache, aa_kernel_interface) are moved
from the parser to libapparmor.

Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
Acked-by: Seth Arnold <seth.arnold at canonical.com>
---
 libraries/libapparmor/src/private.c | 10 ++++++++++
 libraries/libapparmor/src/private.h |  3 +++
 2 files changed, 13 insertions(+)

diff --git a/libraries/libapparmor/src/private.c b/libraries/libapparmor/src/private.c
index 6431270..f0ff941 100644
--- a/libraries/libapparmor/src/private.c
+++ b/libraries/libapparmor/src/private.c
@@ -84,6 +84,16 @@ void print_debug(const char *fmt, ...)
 	va_end(args);
 }
 
+void atomic_inc(unsigned int *v)
+{
+	__sync_add_and_fetch(v, 1);
+}
+
+bool atomic_dec_and_test(unsigned int *v)
+{
+	return __sync_sub_and_fetch(v, 1) == 0;
+}
+
 int _aa_is_blacklisted(const char *name, const char *path)
 {
 	int name_len;
diff --git a/libraries/libapparmor/src/private.h b/libraries/libapparmor/src/private.h
index d4dc0ef..3a8beac 100644
--- a/libraries/libapparmor/src/private.h
+++ b/libraries/libapparmor/src/private.h
@@ -38,4 +38,7 @@
 void print_error(bool honor_env_var, const char *ident, const char *fmt, ...);
 void print_debug(const char *fmt, ...);
 
+void atomic_inc(unsigned int *v);
+bool atomic_dec_and_test(unsigned int *v);
+
 #endif /* _AA_PRIVATE_H */
-- 
2.1.4




More information about the AppArmor mailing list