diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-04-27 21:34:27 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-04-27 21:34:27 +0000 |
commit | 246797b309ef964e7bd9ac2082d0ef42944c0e9d (patch) | |
tree | 4f1a556ee7a811109d8fb9674e218052955e0083 /include/asterisk | |
parent | dccdbdeeb39de2990741e60c9d85013c807f3e93 (diff) |
More contributed BSD enhancements
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@919 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk')
-rwxr-xr-x | include/asterisk/channel.h | 11 | ||||
-rwxr-xr-x | include/asterisk/lock.h | 15 |
2 files changed, 24 insertions, 2 deletions
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index befc13bc5..c67dd58c4 100755 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -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 diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h index bde1e6ada..d27e295b4 100755 --- a/include/asterisk/lock.h +++ b/include/asterisk/lock.h @@ -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 |