More contributed BSD enhancements

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@919 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Spencer
2003-04-27 21:34:27 +00:00
parent 493cba1f80
commit f6764f4722
19 changed files with 70 additions and 48 deletions

View File

@@ -708,6 +708,17 @@ static inline int ast_select(int nfds, fd_set *rfds, fd_set *wfds, fd_set *efds,
#endif
}
#if !defined(ast_strdupa) && defined(__GNUC__)
# define ast_strdupa(s) \
(__extension__ \
({ \
__const char *__old = (s); \
size_t __len = strlen (__old) + 1; \
char *__new = (char *) __builtin_alloca (__len); \
(char *) memcpy (__new, __old, __len); \
}))
#endif
#ifdef DO_CRASH
#define CRASH do { fprintf(stderr, "!! Forcing immediate crash a-la abort !!\n"); *((int *)0) = 0; } while(0)
#else

View File

@@ -29,10 +29,17 @@
// #define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE_NP
#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
#define AST_MUTEX_INITIALIZER PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
#else
#ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
#define AST_MUTEX_INITIALIZER PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
#else
#define AST_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
#endif
#endif
#ifdef PTHREAD_MUTEX_ERRORCHECK_NP
#define AST_MUTEX_KIND PTHREAD_MUTEX_ERRORCHECK_NP
#else
#define AST_MUTEX_INITIALIZER PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
#define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE_NP
#define AST_MUTEX_KIND PTHREAD_MUTEX_ERRORCHECK
#endif
struct mutex_info {
@@ -96,7 +103,11 @@ static inline int __ast_pthread_mutex_unlock(char *filename, int lineno, char *f
#else
#define AST_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
#ifdef PTHREAD_MUTEX_FAST_NP
#define AST_MUTEX_KIND PTHREAD_MUTEX_FAST_NP
#else
#define AST_MUTEX_KIND PTHREAD_NORMAL
#endif
#define ast_pthread_mutex_init(mutex) pthread_mutex_init(mutex, NULL)
#define ast_pthread_mutex_lock pthread_mutex_lock