dat.h (raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
#include <u.h> #include <libc.h> #include <stdio.h> #include <fcall.h> #include <thread.h> #include <9p.h> #include <draw.h> #include <cursor.h> #include <mouse.h> #include <keyboard.h> typedef enum { CTL = 1 } FileType; typedef enum { KURO_RUNS = 0, KURO_QUITS } WindowStatus; typedef enum { PORT_MOUSE, PORT_RESIZE, PORT_KBD, PORT_STATUS, TOTAL_PORTS } Port; typedef enum { INIT, OPEN_FILE, SAVE_FILE, MOUSE, KEYBOARD, SCROLL, CURSOR, SELECT, INSERT, DELETE, CUT, COPY, PASTE, EXEC, PLUMB, INDICATE, SPLIT, PARTITION, TOTAL_OPCODES } Opcode; typedef enum { TAGF, BODYF, SHELLF, TOTAL_SUBF } SubFrame; typedef struct Aux { FileType type; char* data; int count; } Aux; typedef struct { Opcode opcode; void* data; } Instruction; typedef void (*Handler)(void*, void*); typedef struct { uvlong id; WindowStatus status; Image* img; Screen* screen; char filepath[512]; Rune* tag; uint tag_len; Rune* body; uint body_len; } KuroMemory; typedef struct { uvlong id; int fd; Channel* cpu; /* chan(Instruction) */ Handler* handlers; KuroMemory* memory; Channel* status; /* chan(WidowStatus) */ } Node; typedef struct NodeRef NodeRef; struct NodeRef { int fd[2]; uvlong id; NodeRef* next; }; typedef struct { NodeRef* data[256]; } NodeTable; |