From c28461197b8d8800e3dee1c3be428f7b3acccad8 Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" Date: Wed, 4 Oct 2006 21:10:36 +0000 Subject: Merged revisions 44390 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r44390 | kpfleming | 2006-10-04 16:04:21 -0500 (Wed, 04 Oct 2006) | 2 lines make LOW_MEMORY builds actually work ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44391 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk.h | 54 +++++++++++++++++++++++++++++------------------------- main/utils.c | 7 +++++++ 2 files changed, 36 insertions(+), 25 deletions(-) diff --git a/include/asterisk.h b/include/asterisk.h index a2fee3e57..3c91f3430 100644 --- a/include/asterisk.h +++ b/include/asterisk.h @@ -101,6 +101,7 @@ int ast_register_atexit(void (*func)(void)); */ void ast_unregister_atexit(void (*func)(void)); +#if !defined(LOW_MEMORY) /*! * \brief Register the version of a source code file with the core. * \param file the source file name @@ -123,25 +124,6 @@ void ast_register_file_version(const char *file, const char *version); */ void ast_unregister_file_version(const char *file); -/*! - * \brief support for event profiling - * - * (note, this must be documented a lot more) - * ast_add_profile allocates a generic 'counter' with a given name, - * which can be shown with the command 'show profile ' - * - * The counter accumulates positive or negative values supplied by - * ast_add_profile(), dividing them by the 'scale' value passed in the - * create call, and also counts the number of 'events'. - * Values can also be taked by the TSC counter on ia32 architectures, - * in which case you can mark the start of an event calling ast_mark(id, 1) - * and then the end of the event with ast_mark(id, 0). - * For non-i386 architectures, these two calls return 0. - */ -int ast_add_profile(const char *, uint64_t scale); -int64_t ast_profile(int, int64_t); -int64_t ast_mark(int, int start1_stop0); - /*! * \brief Register/unregister a source code file with the core. * \param file the source file name @@ -163,7 +145,6 @@ int64_t ast_mark(int, int start1_stop0); * not be present and CVS would expand the Revision keyword into the file's * revision number. */ -#if defined(__GNUC__) && !defined(LOW_MEMORY) #ifdef MTX_PROFILE #define HAVE_MTX_PROFILE /* used in lock.h */ #define ASTERISK_FILE_VERSION(file, version) \ @@ -177,7 +158,7 @@ int64_t ast_mark(int, int start1_stop0); { \ ast_unregister_file_version(file); \ } -#else +#else /* !MTX_PROFILE */ #define ASTERISK_FILE_VERSION(file, version) \ static void __attribute__((constructor)) __register_file_version(void) \ { \ @@ -187,11 +168,34 @@ int64_t ast_mark(int, int start1_stop0); { \ ast_unregister_file_version(file); \ } -#endif -#elif !defined(LOW_MEMORY) /* ! __GNUC__ && ! LOW_MEMORY*/ -#define ASTERISK_FILE_VERSION(file, x) static const char __file_version[] = x; +#endif /* !MTX_PROFILE */ #else /* LOW_MEMORY */ #define ASTERISK_FILE_VERSION(file, x) -#endif /* __GNUC__ */ +#endif /* LOW_MEMORY */ + +#if !defined(LOW_MEMORY) +/*! + * \brief support for event profiling + * + * (note, this must be documented a lot more) + * ast_add_profile allocates a generic 'counter' with a given name, + * which can be shown with the command 'show profile ' + * + * The counter accumulates positive or negative values supplied by + * ast_add_profile(), dividing them by the 'scale' value passed in the + * create call, and also counts the number of 'events'. + * Values can also be taked by the TSC counter on ia32 architectures, + * in which case you can mark the start of an event calling ast_mark(id, 1) + * and then the end of the event with ast_mark(id, 0). + * For non-i386 architectures, these two calls return 0. + */ +int ast_add_profile(const char *, uint64_t scale); +int64_t ast_profile(int, int64_t); +int64_t ast_mark(int, int start1_stop0); +#else /* LOW_MEMORY */ +#define ast_add_profile(a, b) 0 +#define ast_profile(a, b) do { } while (0) +#define ast_mark(a, b) do { } while (0) +#endif /* LOW_MEMORY */ #endif /* _ASTERISK_H */ diff --git a/main/utils.c b/main/utils.c index 3f44fe777..6ba136ed6 100644 --- a/main/utils.c +++ b/main/utils.c @@ -509,6 +509,7 @@ int ast_utils_init(void) #undef pthread_create /* For ast_pthread_create function only */ #endif /* !__linux__ */ +#if !defined(LOW_MEMORY) /* * support for 'show threads'. The start routine is wrapped by * dummy_start(), so that ast_register_thread() and @@ -546,11 +547,15 @@ static void *dummy_start(void *data) return ret; } +#endif /* !LOW_MEMORY */ + int ast_pthread_create_stack(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *data, size_t stacksize, const char *file, const char *caller, int line, const char *start_fn) { +#if !defined(LOW_MEMORY) struct thr_arg *a; +#endif if (!attr) { attr = alloca(sizeof(*attr)); @@ -575,6 +580,7 @@ int ast_pthread_create_stack(pthread_t *thread, pthread_attr_t *attr, void *(*st if ((errno = pthread_attr_setstacksize(attr, stacksize ? stacksize : AST_STACKSIZE))) ast_log(LOG_WARNING, "pthread_attr_setstacksize: %s\n", strerror(errno)); +#if !defined(LOW_MEMORY) if ((a = ast_malloc(sizeof(*a)))) { a->start_routine = start_routine; a->data = data; @@ -583,6 +589,7 @@ int ast_pthread_create_stack(pthread_t *thread, pthread_attr_t *attr, void *(*st start_fn, line, file, caller); data = a; } +#endif /* !LOW_MEMORY */ return pthread_create(thread, attr, start_routine, data); /* We're in ast_pthread_create, so it's okay */ } -- cgit v1.2.3