summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/sys/tslog.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-08-20 15:53:03 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-09-21 10:29:39 +0200
commit18fa92c2dcc6c52e0bf27d214d80f0c25a89b47d (patch)
treea3020ac5b1f366f2f0920941b589808e435dbcee /freebsd/sys/sys/tslog.h
parentUpdate to FreeBSD head 2017-12-01 (diff)
downloadrtems-libbsd-18fa92c2dcc6c52e0bf27d214d80f0c25a89b47d.tar.bz2
Update to FreeBSD head 2018-02-01
Git mirror commit d079ae0442af8fa3cfd6d7ede190d04e64a2c0d4. Update #3472.
Diffstat (limited to '')
-rw-r--r--freebsd/sys/sys/tslog.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/freebsd/sys/sys/tslog.h b/freebsd/sys/sys/tslog.h
new file mode 100644
index 00000000..4b2971e4
--- /dev/null
+++ b/freebsd/sys/sys/tslog.h
@@ -0,0 +1,62 @@
+/*-
+ * Copyright (c) 2017 Colin Percival
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _TSLOG_H_
+#define _TSLOG_H_
+
+#ifdef TSLOG
+#include <sys/_types.h>
+#include <sys/pcpu.h>
+#endif
+
+#define TS_ENTER 0
+#define TS_EXIT 1
+#define TS_THREAD 2
+#define TS_EVENT 3
+
+#define TSENTER() TSRAW(curthread, TS_ENTER, __func__, NULL)
+#define TSENTER2(x) TSRAW(curthread, TS_ENTER, __func__, x)
+#define TSEXIT() TSRAW(curthread, TS_EXIT, __func__, NULL)
+#define TSEXIT2(x) TSRAW(curthread, TS_EXIT, __func__, x)
+#define TSTHREAD(td, x) TSRAW(td, TS_THREAD, x, NULL)
+#define TSEVENT(x) TSRAW(curthread, TS_EVENT, x, NULL)
+#define TSEVENT2(x, y) TSRAW(curthread, TS_EVENT, x, y)
+#define TSLINE() TSEVENT2(__FILE__, __XSTRING(__LINE__))
+#define TSWAIT(x) TSEVENT2("WAIT", x);
+#define TSUNWAIT(x) TSEVENT2("UNWAIT", x);
+#define TSHOLD(x) TSEVENT2("HOLD", x);
+#define TSRELEASE(x) TSEVENT2("RELEASE", x);
+
+#ifdef TSLOG
+#define TSRAW(a, b, c, d) tslog(a, b, c, d)
+void tslog(void *, int, const char *, const char *);
+#else
+#define TSRAW(a, b, c, d) /* Timestamp logging disabled */
+#endif
+
+#endif /* _TSLOG_H_ */