summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugene Teo <eteo@redhat.com>2009-04-03 23:46:43 +0800
committerEugene Teo <eteo@redhat.com>2009-04-03 23:46:43 +0800
commit8e6c3aa3d61109b0276e96cdbc9ffdde60a5ac0a (patch)
tree4e2b40ebf341e27089535b3388512d96d62033c5
parent8c1b9e271c944f64fc11fa9679c653b84ceaa77c (diff)
downloadsystemtap-steved-8e6c3aa3d61109b0276e96cdbc9ffdde60a5ac0a.tar.gz
systemtap-steved-8e6c3aa3d61109b0276e96cdbc9ffdde60a5ac0a.tar.xz
systemtap-steved-8e6c3aa3d61109b0276e96cdbc9ffdde60a5ac0a.zip
New ANSI escape sequences tapset
This adds a new tapset for ANSI escape sequences. It is based on an existing tapset that was written by Masami Hiramatsu for the stapgames project. This also adds a version of ansi_color.stp script that displays other attributes other than the bold effect.
-rw-r--r--tapset/ansi.stp70
-rw-r--r--testsuite/systemtap.examples/general/ansi_colors2.stp31
2 files changed, 101 insertions, 0 deletions
diff --git a/tapset/ansi.stp b/tapset/ansi.stp
new file mode 100644
index 00000000..0152fb37
--- /dev/null
+++ b/tapset/ansi.stp
@@ -0,0 +1,70 @@
+# ANSI escape sequences tapset
+# Copyright (C) 2009 Red Hat, Inc., Eugene Teo <eteo@redhat.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# Based on some previous work done by Masami Hiramatsu for stapgames.
+# Reference: http://en.wikipedia.org/wiki/ANSI_escape_code
+#
+
+function ansi_clear_screen() {
+ print("\033[1;1H\033[J")
+}
+
+# Foreground colors | Background colors
+# Black 30 | Black 40
+# Blue 34 | Red 41
+# Green 32 | Green 42
+# Cyan 36 | Yellow 43
+# Red 31 | Blue 44
+# Purple 35 | Magenta 45
+# Brown 33 | Cyan 46
+# Light Gray 37 | White 47
+function ansi_set_color(fg:long) {
+ printf("\033[%dm", fg)
+}
+
+function ansi_set_color2(fg:long, bg:long) {
+ printf("\033[%d;%dm", bg, fg)
+}
+
+# All attributes off 0
+# Intensity: Bold 1
+# Underline: Single 4
+# Blink: Slow 5
+# Blink: Rapid 6
+# Image: Negative 7
+function ansi_set_color3(fg:long, bg:long, attr:long) {
+ attr_str = attr ? sprintf(";%dm", attr) : "m"
+ printf("\033[%d;%d%s", bg, fg, attr_str)
+}
+
+function ansi_reset_color() {
+ ansi_set_color3(0, 0, 0)
+}
+
+function ansi_new_line() {
+ printf("\12")
+}
+
+function ansi_cursor_move(x:long, y:long) {
+ printf("\033[%d;%dH", y, x)
+}
+
+function ansi_cursor_hide() {
+ print("\033[>5I")
+}
+
+function ansi_cursor_save() {
+ print("\033[s")
+}
+
+function ansi_cursor_restore() {
+ print("\033[u")
+}
+
+function ansi_cursor_show() {
+ print("\033[>5h")
+}
diff --git a/testsuite/systemtap.examples/general/ansi_colors2.stp b/testsuite/systemtap.examples/general/ansi_colors2.stp
new file mode 100644
index 00000000..5f1b102e
--- /dev/null
+++ b/testsuite/systemtap.examples/general/ansi_colors2.stp
@@ -0,0 +1,31 @@
+#!/usr/bin/env stap
+# ansi_colors2.stp
+# Copyright (C) 2009 Red Hat, Inc., Eugene Teo <eteo@redhat.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+
+probe begin {
+ printf("a \\ b |");
+ for (c = 40; c < 48; c++)
+ printf(" %d ", c);
+ ansi_new_line()
+ for (l = 0; l < 71; l++)
+ printf("-");
+ ansi_new_line()
+
+ for (r = 30; r < 38; r++)
+ # this displays more attributes
+ for (t = 0; t < 8; !t ? ++t : t+=3) {
+ printf("%d |", r);
+ for (c = 40; c < 48; c++) {
+ ansi_set_color3(r, c, t)
+ printf(" Colors ")
+ ansi_reset_color()
+ }
+ ansi_new_line()
+ }
+ exit();
+}