commit c7564c9bdf15397e0cf80f15902700194c9d4f0e
parent f01e55c92973ecdc19da58b7f79e9243d74c27b4
Author: Roberto E. Vargas Caballero <roberto.vargas@midokura.com>
Date: Fri, 11 Nov 2022 17:33:54 +0100
dlang: Add PREFIX2 to dlang output
This makes easier to differentiate between output from the kernel
and output generated at the debug language.
Diffstat:
1 file changed, 26 insertions(+), 15 deletions(-)
diff --git a/src/os9/dlang.c b/src/os9/dlang.c
@@ -10,6 +10,7 @@
#include <string.h>
#define PREFIX "> "
+#define PREFIX2 "# "
#define NR_ARGC_MAX 5
struct args {
@@ -76,7 +77,7 @@ do_help(const struct cmd *cmd, struct args *args)
{
for (cmd = cmds; cmd->name; cmd++) {
char *s = cmd->helpmsg;
- kprint("%s\n", s);
+ kprint(PREFIX2 "%s\n", s);
}
return 0;
}
@@ -84,15 +85,25 @@ do_help(const struct cmd *cmd, struct args *args)
static int
do_cat(const struct cmd *cmd, struct args *args)
{
- int n;
+ int n, ch;
Chan *c;
- char buf[100];
+ char buf[100], *bp;
if ((c = devopen(args->argv[1], O_READ)) == NULL)
goto err;
- while ((n = devread(c, buf, sizeof(buf))) > 0)
- devwrite(console, buf, n);
+ ch = -1;
+ kprint(PREFIX2);
+ while ((n = devread(c, buf, sizeof(buf))) > 0) {
+ for (bp = buf; bp < &buf[n]; bp++) {
+ if (ch == '\n')
+ kprint(PREFIX2);
+ ch = *bp;
+ kprint("%c", ch);
+ }
+ }
+ if (ch != '\n')
+ kprint("\n");
if (devclose(c) < 0 || n < 0)
goto err;
@@ -118,7 +129,7 @@ do_ls(const struct cmd *cmd, struct args *args)
while ((n = devread(c, buf, DIRLEN)) > 0) {
if (p9todir(&dentry, buf, n) < 0)
goto err;
- kprint("%s\n", dentry.name);
+ kprint(PREFIX2 "%s\n", dentry.name);
}
devclose(c);
@@ -172,12 +183,12 @@ do_stat(const struct cmd *cmd, struct args *args)
if (dirstat(args->argv[1], &dir) < 0)
goto err;
- kprint("name: %s\n"
- "length: %ld\n"
- "mode: %x\n"
- "type: %d\n"
- "dev: %d\n"
- "qid: %x,%lx,%llx\n",
+ kprint(PREFIX2 "name: %s\n"
+ PREFIX2 "length: %ld\n"
+ PREFIX2 "mode: %x\n"
+ PREFIX2 "type: %d\n"
+ PREFIX2 "dev: %d\n"
+ PREFIX2 "qid: %x,%lx,%llx\n",
dir.name,
dir.length,
dir.mode,
@@ -218,17 +229,17 @@ do_x(const struct cmd *cmd, struct args *args)
case 'x':
u16 = addr;
while (n-- > 0)
- kprint("%x\n", (int) *u16++);
+ kprint(PREFIX2 "%x\n", (int) *u16++);
return 0;
case 'X':
u32 = addr;
while (n-- > 0)
- kprint("%lx\n", (long) *u32++);
+ kprint(PREFIX2 "%lx\n", (long) *u32++);
return 0;
case 'Y':
u64 = addr;
while (n-- > 0)
- kprint("%x\n", (long long) *u64++);
+ kprint(PREFIX2 "%x\n", (long long) *u64++);
return 0;
default:
goto badfmt;