From 1874938c0d35990f95e494a7fef066bf97001d8f Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Tue, 29 Jun 2010 21:17:39 -0600 Subject: Move platform-specific stuff in libdimension into platform.c. --- libdimension/platform.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'libdimension/platform.c') diff --git a/libdimension/platform.c b/libdimension/platform.c index 6ac15c0..be7e7a8 100644 --- a/libdimension/platform.c +++ b/libdimension/platform.c @@ -19,8 +19,37 @@ *************************************************************************/ #include "dimension_impl.h" -#include /* For sysconf() */ -#include /* For sched_getaffinity() */ +#include /* For sysconf() */ +#include /* For htonl() */ +#include /* For backtrace() etc. */ +#include /* For gettid() where supported */ +#include /* For sched_getaffinity() */ + +void +dmnsn_backtrace(FILE *file) +{ + const size_t size = 128; + void *buffer[size]; + + int nptrs = backtrace(buffer, size); + backtrace_symbols_fd(buffer, nptrs, fileno(file)); +} + +bool +dmnsn_is_main_thread() +{ +#ifdef SYS_gettid + return getpid() == syscall(SYS_gettid); +#else + return true; +#endif +} + +bool +dmnsn_is_little_endian() +{ + return htonl(1) != 1; +} size_t dmnsn_ncpus() -- cgit v1.2.3