/*
+ * SPDX-License-Identifier: MIT
+ *
+ * Copyright (c) 2016 wonder-mice
+ *
* This is zf_log.c, modified with Babeltrace prefixes.
* See <https://github.com/wonder-mice/zf_log/>.
- * See LICENSE.
*/
#include "common/macros.h"
#include <sys/time.h>
#if defined(__linux__)
#include <linux/limits.h>
- #elif (defined(__sun__) || defined(__CYGWIN__))
- /* Solaris and Cygwin have no sys/syslimits.h */
+ #elif (defined(__sun__) || defined(__CYGWIN__) || defined(__GNU__))
+ /* Solaris, Cygwin and Hurd have no sys/syslimits.h */
#else
#include <sys/syslimits.h>
#endif
#if defined(__MACH__)
#include <pthread.h>
#endif
+#if defined(__GNU__)
+ #include <mach.h>
+#endif
#define INLINE _BT_LOG_INLINE
#define VAR_UNUSED(var) (void)var
*tid = gettid();
#elif defined(__linux__)
*tid = syscall(SYS_gettid);
- #elif defined(__MACH__)
+ #elif defined(__APPLE__) && defined(__MACH__)
*tid = (int)pthread_mach_thread_np(pthread_self());
+ #elif defined(__GNU__)
+ mach_port_t mach_port = mach_thread_self();
+ mach_port_deallocate(mach_task_self(), mach_port);
+ *tid = (int)mach_port;
#else
#define Platform not supported
#endif