[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pokelet debugging stuff
From: |
Jose E. Marchesi |
Subject: |
pokelet debugging stuff |
Date: |
Wed, 16 Mar 2022 00:26:27 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
$ socat - UNIX-CONNECT:/tmp/poked.ipc | ~/dumpvu.pk > out.dat
plet.pk:
var PLET_VU_CMD_CLEAR = 1UB;
var PLET_VU_CMD_APPEND = 2UB;
var PLET_VU_CMD_HIGHLIGHT = 3UB;
var PLET_VU_CMD_FILTER = 4UB;
var PLET_VU_CMD_FINISH = 5UB;
type Plet_Vu_Msg =
struct
{
little offset<uint<16>,B> length : length >= 2#B;
byte cmd : cmd in [PLET_VU_CMD_CLEAR, PLET_VU_CMD_APPEND,
PLET_VU_CMD_HIGHLIGHT, PLET_VU_CMD_FILTER,
PLET_VU_CMD_FINISH];
union
{
string filter : cmd == PLET_VU_CMD_FILTER;
string append : cmd == PLET_VU_CMD_APPEND;
byte empty : empty == 0UB;
} data : data'size == length - 1#B;
};
dumpvu.pk:
#!/usr/local/bin/poke -L
!#
var PLET_VU_CMD_CLEAR = 1UB;
var PLET_VU_CMD_APPEND = 2UB;
var PLET_VU_CMD_HIGHLIGHT = 3UB;
var PLET_VU_CMD_FILTER = 4UB;
var PLET_VU_CMD_FINISH = 5UB;
vm_set_obase (16);
set_endian (ENDIAN_LITTLE);
type Plet_Vu_Msg =
struct
{
little offset<uint<16>,B> length : length >= 2#B;
byte cmd : cmd in [PLET_VU_CMD_CLEAR, PLET_VU_CMD_APPEND,
PLET_VU_CMD_HIGHLIGHT, PLET_VU_CMD_FILTER,
PLET_VU_CMD_FINISH];
union
{
string filter : cmd == PLET_VU_CMD_FILTER;
string append : cmd == PLET_VU_CMD_APPEND;
byte empty : empty == 0UB;
} data : data'size == length - 1#B;
};
var stdin = open ("<stdin>");
var stdout = open ("<stdout>");
var stderr = open ("<stderr>");
var offset = 0#B;
try
{
flush (stdin, offset);
var msg = Plet_Vu_Msg @ stdin : offset;
var text = format ("%Tv\n", msg);
var bytes = byte[text'length]();
stoca (text, bytes);
byte[] @ stderr : iosize (stderr) = bytes;
Plet_Vu_Msg @ stdout : iosize (stdout) = msg;
offset += msg'size;
}
until E_eof;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- pokelet debugging stuff,
Jose E. Marchesi <=