about summary refs log tree commit diff stats
path: root/baremetal/shell/trace.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-02-22 19:46:23 -0800
committerKartik K. Agaram <vc@akkartik.com>2021-02-22 19:46:23 -0800
commit421ed4651f0f9ceb23f07f8d00797e61d63a29ad (patch)
tree89e193027a98f490c58813a7ec54babb1451f3a9 /baremetal/shell/trace.mu
parent5ddc9dfd9cfc7eedfbdcb5e5dbf2cf1f2f8bf6b5 (diff)
downloadmu-421ed4651f0f9ceb23f07f8d00797e61d63a29ad.tar.gz
7784 - baremetal/shell: start of trace
Diffstat (limited to 'baremetal/shell/trace.mu')
-rw-r--r--baremetal/shell/trace.mu32
1 files changed, 32 insertions, 0 deletions
diff --git a/baremetal/shell/trace.mu b/baremetal/shell/trace.mu
new file mode 100644
index 00000000..88ee0860
--- /dev/null
+++ b/baremetal/shell/trace.mu
@@ -0,0 +1,32 @@
+# A trace records the evolution of a computation.
+# An integral part of the Mu Shell is facilities for browsing traces.
+
+type trace {
+  curr-depth: int
+  data: (handle stream trace-line)
+}
+
+type trace-line {
+  depth: int
+  label: (handle array byte)
+  data: (handle array byte)
+}
+
+fn has-errors? _self: (addr trace) -> _/eax: boolean {
+  return 0/false
+}
+
+fn trace _self: (addr trace), label: (addr array byte), data: (array stream byte) {
+}
+
+fn new-trace-line depth: int, label: (addr array byte), data: (array stream byte), out: (addr trace-line) {
+}
+
+fn trace-lower _self: (addr trace) {
+}
+
+fn trace-higher _self: (addr trace) {
+}
+
+fn render-trace screen: (addr screen), _self: (addr trace), _x: int, _y: int {
+}