+#define vi_clear() vi->tty.clear(vi->tty_cls)
+#define vi_clear_line() vi->tty.clear_line(vi->tty_cls)
+#define vi_clear_line_at(y) vi->tty.clear_line_at(y, vi->tty_cls)
+#define vi_setcursor(x, y) vi->tty.setcursor(x, y, vi->tty_cls)
+#define vi_putchar(c) vi->tty.putchar(c, vi->tty_cls)
+#define vi_putchar_at(x, y, c) v->tty.putchar_at(x, y, c, vi->tty_cls)
+#define vi_scroll(n) vi->tty.scroll(n, vi->tty_cls)
+#define vi_del_back() vi->tty.del_back(vi->tty_cls)
+#define vi_del_fwd() vi->tty.del_fwd(vi->tty_cls)
+#define vi_status(s) vi->tty.status(s, vi->tty_cls)
+
+static int remove_buf(struct visor *vi, struct vi_buffer *vb);
+static int add_span(struct vi_buffer *vb, vi_addr at, int src, vi_addr start, unsigned long size);
+