Index: mozilla/security/nss/lib/ckfw/mutex.c |
=================================================================== |
--- mozilla/security/nss/lib/ckfw/mutex.c (revision 191424) |
+++ mozilla/security/nss/lib/ckfw/mutex.c (working copy) |
@@ -1,273 +0,0 @@ |
-/* This Source Code Form is subject to the terms of the Mozilla Public |
- * License, v. 2.0. If a copy of the MPL was not distributed with this |
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
- |
-#ifdef DEBUG |
-static const char CVS_ID[] = "@(#) $RCSfile: mutex.c,v $ $Revision: 1.10 $ $Date: 2012/04/25 14:49:28 $"; |
-#endif /* DEBUG */ |
- |
-/* |
- * mutex.c |
- * |
- * This file implements a mutual-exclusion locking facility for Modules |
- * using the NSS Cryptoki Framework. |
- */ |
- |
-#ifndef CK_T |
-#include "ck.h" |
-#endif /* CK_T */ |
- |
-/* |
- * NSSCKFWMutex |
- * |
- * NSSCKFWMutex_Destroy |
- * NSSCKFWMutex_Lock |
- * NSSCKFWMutex_Unlock |
- * |
- * nssCKFWMutex_Create |
- * nssCKFWMutex_Destroy |
- * nssCKFWMutex_Lock |
- * nssCKFWMutex_Unlock |
- * |
- * -- debugging versions only -- |
- * nssCKFWMutex_verifyPointer |
- * |
- */ |
- |
-struct NSSCKFWMutexStr { |
- PRLock *lock; |
-}; |
- |
-#ifdef DEBUG |
-/* |
- * But first, the pointer-tracking stuff. |
- * |
- * NOTE: the pointer-tracking support in NSS/base currently relies |
- * upon NSPR's CallOnce support. That, however, relies upon NSPR's |
- * locking, which is tied into the runtime. We need a pointer-tracker |
- * implementation that uses the locks supplied through C_Initialize. |
- * That support, however, can be filled in later. So for now, I'll |
- * just do this routines as no-ops. |
- */ |
- |
-static CK_RV |
-mutex_add_pointer |
-( |
- const NSSCKFWMutex *fwMutex |
-) |
-{ |
- return CKR_OK; |
-} |
- |
-static CK_RV |
-mutex_remove_pointer |
-( |
- const NSSCKFWMutex *fwMutex |
-) |
-{ |
- return CKR_OK; |
-} |
- |
-NSS_IMPLEMENT CK_RV |
-nssCKFWMutex_verifyPointer |
-( |
- const NSSCKFWMutex *fwMutex |
-) |
-{ |
- return CKR_OK; |
-} |
- |
-#endif /* DEBUG */ |
- |
-/* |
- * nssCKFWMutex_Create |
- * |
- */ |
-NSS_EXTERN NSSCKFWMutex * |
-nssCKFWMutex_Create |
-( |
- CK_C_INITIALIZE_ARGS_PTR pInitArgs, |
- CryptokiLockingState LockingState, |
- NSSArena *arena, |
- CK_RV *pError |
-) |
-{ |
- NSSCKFWMutex *mutex; |
- |
- mutex = nss_ZNEW(arena, NSSCKFWMutex); |
- if (!mutex) { |
- *pError = CKR_HOST_MEMORY; |
- return (NSSCKFWMutex *)NULL; |
- } |
- *pError = CKR_OK; |
- mutex->lock = NULL; |
- if (LockingState == MultiThreaded) { |
- mutex->lock = PR_NewLock(); |
- if (!mutex->lock) { |
- *pError = CKR_HOST_MEMORY; /* we couldn't get the resource */ |
- } |
- } |
- |
- if( CKR_OK != *pError ) { |
- (void)nss_ZFreeIf(mutex); |
- return (NSSCKFWMutex *)NULL; |
- } |
- |
-#ifdef DEBUG |
- *pError = mutex_add_pointer(mutex); |
- if( CKR_OK != *pError ) { |
- if (mutex->lock) { |
- PR_DestroyLock(mutex->lock); |
- } |
- (void)nss_ZFreeIf(mutex); |
- return (NSSCKFWMutex *)NULL; |
- } |
-#endif /* DEBUG */ |
- |
- return mutex; |
-} |
- |
-/* |
- * nssCKFWMutex_Destroy |
- * |
- */ |
-NSS_EXTERN CK_RV |
-nssCKFWMutex_Destroy |
-( |
- NSSCKFWMutex *mutex |
-) |
-{ |
- CK_RV rv = CKR_OK; |
- |
-#ifdef NSSDEBUG |
- rv = nssCKFWMutex_verifyPointer(mutex); |
- if( CKR_OK != rv ) { |
- return rv; |
- } |
-#endif /* NSSDEBUG */ |
- |
- if (mutex->lock) { |
- PR_DestroyLock(mutex->lock); |
- } |
- |
-#ifdef DEBUG |
- (void)mutex_remove_pointer(mutex); |
-#endif /* DEBUG */ |
- |
- (void)nss_ZFreeIf(mutex); |
- return rv; |
-} |
- |
-/* |
- * nssCKFWMutex_Lock |
- * |
- */ |
-NSS_EXTERN CK_RV |
-nssCKFWMutex_Lock |
-( |
- NSSCKFWMutex *mutex |
-) |
-{ |
-#ifdef NSSDEBUG |
- CK_RV rv = nssCKFWMutex_verifyPointer(mutex); |
- if( CKR_OK != rv ) { |
- return rv; |
- } |
-#endif /* NSSDEBUG */ |
- if (mutex->lock) { |
- PR_Lock(mutex->lock); |
- } |
- |
- return CKR_OK; |
-} |
- |
-/* |
- * nssCKFWMutex_Unlock |
- * |
- */ |
-NSS_EXTERN CK_RV |
-nssCKFWMutex_Unlock |
-( |
- NSSCKFWMutex *mutex |
-) |
-{ |
- PRStatus nrv; |
-#ifdef NSSDEBUG |
- CK_RV rv = nssCKFWMutex_verifyPointer(mutex); |
- |
- if( CKR_OK != rv ) { |
- return rv; |
- } |
-#endif /* NSSDEBUG */ |
- |
- if (!mutex->lock) |
- return CKR_OK; |
- |
- nrv = PR_Unlock(mutex->lock); |
- |
- /* if unlock fails, either we have a programming error, or we have |
- * some sort of hardware failure... in either case return CKR_DEVICE_ERROR. |
- */ |
- return nrv == PR_SUCCESS ? CKR_OK : CKR_DEVICE_ERROR; |
-} |
- |
-/* |
- * NSSCKFWMutex_Destroy |
- * |
- */ |
-NSS_EXTERN CK_RV |
-NSSCKFWMutex_Destroy |
-( |
- NSSCKFWMutex *mutex |
-) |
-{ |
-#ifdef DEBUG |
- CK_RV rv = nssCKFWMutex_verifyPointer(mutex); |
- if( CKR_OK != rv ) { |
- return rv; |
- } |
-#endif /* DEBUG */ |
- |
- return nssCKFWMutex_Destroy(mutex); |
-} |
- |
-/* |
- * NSSCKFWMutex_Lock |
- * |
- */ |
-NSS_EXTERN CK_RV |
-NSSCKFWMutex_Lock |
-( |
- NSSCKFWMutex *mutex |
-) |
-{ |
-#ifdef DEBUG |
- CK_RV rv = nssCKFWMutex_verifyPointer(mutex); |
- if( CKR_OK != rv ) { |
- return rv; |
- } |
-#endif /* DEBUG */ |
- |
- return nssCKFWMutex_Lock(mutex); |
-} |
- |
-/* |
- * NSSCKFWMutex_Unlock |
- * |
- */ |
-NSS_EXTERN CK_RV |
-NSSCKFWMutex_Unlock |
-( |
- NSSCKFWMutex *mutex |
-) |
-{ |
-#ifdef DEBUG |
- CK_RV rv = nssCKFWMutex_verifyPointer(mutex); |
- if( CKR_OK != rv ) { |
- return rv; |
- } |
-#endif /* DEBUG */ |
- |
- return nssCKFWMutex_Unlock(mutex); |
-} |
- |