|
@@ -12,6 +12,9 @@
|
|
|
#define TRACE_FUNC() os_printf("undefined %s\n", __FUNCTION__)
|
|
#define TRACE_FUNC() os_printf("undefined %s\n", __FUNCTION__)
|
|
|
#define TRACE_OCALL_FAIL() os_printf("ocall %s failed!\n", __FUNCTION__)
|
|
#define TRACE_OCALL_FAIL() os_printf("ocall %s failed!\n", __FUNCTION__)
|
|
|
|
|
|
|
|
|
|
+#ifndef SGX_THREAD_LOCK_INITIALIZER /* defined since sgxsdk-2.11 */
|
|
|
|
|
+/* sgxsdk doesn't support pthread_rwlock related APIs until
|
|
|
|
|
+ version 2.11, we implement them by ourselves. */
|
|
|
int ocall_pthread_rwlock_init(int *p_ret, void **rwlock, void *attr);
|
|
int ocall_pthread_rwlock_init(int *p_ret, void **rwlock, void *attr);
|
|
|
|
|
|
|
|
int ocall_pthread_rwlock_destroy(int *p_ret, void **rwlock);
|
|
int ocall_pthread_rwlock_destroy(int *p_ret, void **rwlock);
|
|
@@ -74,6 +77,7 @@ int pthread_rwlock_unlock(pthread_rwlock_t *rwlock)
|
|
|
}
|
|
}
|
|
|
return ret;
|
|
return ret;
|
|
|
}
|
|
}
|
|
|
|
|
+#endif /* end of SGX_THREAD_LOCK_INITIALIZER */
|
|
|
|
|
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|