From 02416c882d81807c07625ab8666ffc61aa33ba3d Mon Sep 17 00:00:00 2001 From: Ezra Peisach Date: Mon, 1 Dec 2008 12:16:33 +0000 Subject: Move cc_mutex code from k5-int.h - where it is globally available to cc-int.h where it is declared and used. The functions are not exported by the library - nor are they used outside lib/krb5/ccache... For cc_file.h - include cc-int.h. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@21205 dc483132-0cff-0310-8789-dd5450dbe970 --- src/lib/krb5/ccache/cc-int.h | 30 ++++++++++++++++++++++++++++++ src/lib/krb5/ccache/cc_file.c | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) (limited to 'src/lib') diff --git a/src/lib/krb5/ccache/cc-int.h b/src/lib/krb5/ccache/cc-int.h index 4c0db959d..84b100286 100644 --- a/src/lib/krb5/ccache/cc-int.h +++ b/src/lib/krb5/ccache/cc-int.h @@ -64,6 +64,36 @@ krb5int_cc_typecursor_free( krb5_context context, krb5_cc_typecursor *cursor); +/* reentrant mutex used by krb5_cc_* functions */ +typedef struct _k5_cc_mutex { + k5_mutex_t lock; + krb5_context owner; + krb5_int32 refcount; +} k5_cc_mutex; + +#define K5_CC_MUTEX_PARTIAL_INITIALIZER \ + { K5_MUTEX_PARTIAL_INITIALIZER, NULL, 0 } + +krb5_error_code +k5_cc_mutex_init(k5_cc_mutex *m); + +krb5_error_code +k5_cc_mutex_finish_init(k5_cc_mutex *m); + +#define k5_cc_mutex_destroy(M) \ +k5_mutex_destroy(&(M)->lock); + +void +k5_cc_mutex_assert_locked(krb5_context context, k5_cc_mutex *m); + +void +k5_cc_mutex_assert_unlocked(krb5_context context, k5_cc_mutex *m); + +krb5_error_code +k5_cc_mutex_lock(krb5_context context, k5_cc_mutex *m); + +krb5_error_code +k5_cc_mutex_unlock(krb5_context context, k5_cc_mutex *m); extern k5_cc_mutex krb5int_mcc_mutex; extern k5_cc_mutex krb5int_krcc_mutex; diff --git a/src/lib/krb5/ccache/cc_file.c b/src/lib/krb5/ccache/cc_file.c index b5a099059..71476d778 100644 --- a/src/lib/krb5/ccache/cc_file.c +++ b/src/lib/krb5/ccache/cc_file.c @@ -76,7 +76,7 @@ etc. fcc_nseq.c and fcc_read don't check return values a lot. */ #include "k5-int.h" - +#include "cc-int.h" #include #include -- cgit