471 lines · 12.1 KB · C
RawDownload
//// Dis VM// File: Sysmod.h// Author: arr// #ifndef _DISVM_SRC_VM_SYS_SYSMOD_H_#define _DISVM_SRC_VM_SYS_SYSMOD_H_ #include <vector>#include <disvm.h>#include <builtin_module.h> using disvm::vm_t; using disvm::runtime::byte_t;using disvm::runtime::word_t;using disvm::runtime::big_t;using disvm::runtime::real_t;using disvm::runtime::pointer_t;using disvm::runtime::vm_registers_t;using disvm::runtime::vm_frame_base_alloc_t; struct Sys_Qid{    big_t path;    word_t vers;    word_t qtype;};const byte_t Sys_Qid_map[] = { 0 };struct Sys_Dir{    /* vm_string_t */ pointer_t name;    /* vm_string_t */ pointer_t uid;    /* vm_string_t */ pointer_t gid;    /* vm_string_t */ pointer_t muid;    Sys_Qid qid;    word_t mode;    word_t atime;    word_t mtime;    byte_t _pad44[4];    big_t length;    word_t dtype;    word_t dev;};const byte_t Sys_Dir_map[] = { 0xf0, };struct Sys_FD{    word_t fd;};const byte_t Sys_FD_map[] = { 0 };struct Sys_Connection{    /* Sys_FD */ pointer_t dfd;    /* Sys_FD */ pointer_t cfd;    /* vm_string_t */ pointer_t dir;};const byte_t Sys_Connection_map[] = { 0xe0, };using Sys_Rread = struct { /* vm_array_t */ pointer_t t0; /* vm_string_t */ pointer_t t1; };const byte_t Sys_Rread_map = { 0xc0, };using Sys_Rwrite = struct { word_t t0; /* vm_string_t */ pointer_t t1; };const byte_t Sys_Rwrite_map = { 0x40, };struct Sys_FileIO{    /* vm_channel_t */ pointer_t read;    /* vm_channel_t */ pointer_t write;};using Sys_FileIO_read = struct { word_t t0; word_t t1; word_t t2; /* vm_channel_t */ pointer_t t3; };const byte_t Sys_FileIO_read_map = { 0x10, };using Sys_FileIO_write = struct { word_t t0; /* vm_array_t */ pointer_t t1; word_t t2; /* vm_channel_t */ pointer_t t3; };const byte_t Sys_FileIO_write_map = { 0x50, };const byte_t Sys_FileIO_map[] = { 0xc0, };void Sys_announce(vm_registers_t &, vm_t &);struct F_Sys_announce : public vm_frame_base_alloc_t{    struct { word_t t0; Sys_Connection t1; }*ret;    byte_t temps[12];    /* vm_string_t */ pointer_t addr;};void Sys_aprint(vm_registers_t &, vm_t &);struct F_Sys_aprint : public vm_frame_base_alloc_t{    /* vm_array_t */ pointer_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s;    byte_t vargs;};void Sys_bind(vm_registers_t &, vm_t &);struct F_Sys_bind : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s;    /* vm_string_t */ pointer_t on;    word_t flags;};void Sys_byte2char(vm_registers_t &, vm_t &);struct F_Sys_byte2char : public vm_frame_base_alloc_t{    struct { word_t t0; word_t t1; word_t t2; }*ret;    byte_t temps[12];    /* vm_array_t */ pointer_t buf;    word_t n;};void Sys_char2byte(vm_registers_t &, vm_t &);struct F_Sys_char2byte : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    word_t c;    /* vm_array_t */ pointer_t buf;    word_t n;};void Sys_chdir(vm_registers_t &, vm_t &);struct F_Sys_chdir : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t path;};void Sys_create(vm_registers_t &, vm_t &);struct F_Sys_create : public vm_frame_base_alloc_t{    /* Sys_FD */ pointer_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s;    word_t mode;    word_t perm;};void Sys_dial(vm_registers_t &, vm_t &);struct F_Sys_dial : public vm_frame_base_alloc_t{    struct { word_t t0; Sys_Connection t1; }*ret;    byte_t temps[12];    /* vm_string_t */ pointer_t addr;    /* vm_string_t */ pointer_t local;};void Sys_dirread(vm_registers_t &, vm_t &);struct F_Sys_dirread : public vm_frame_base_alloc_t{    struct { word_t t0; /* vm_array_t */ pointer_t t1; }*ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;};void Sys_dup(vm_registers_t &, vm_t &);struct F_Sys_dup : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    word_t old;    word_t new_;};void Sys_export(vm_registers_t &, vm_t &);struct F_Sys_export : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t c;    /* vm_string_t */ pointer_t dir;    word_t flag;};void Sys_fauth(vm_registers_t &, vm_t &);struct F_Sys_fauth : public vm_frame_base_alloc_t{    /* Sys_FD */ pointer_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;    /* vm_string_t */ pointer_t aname;};void Sys_fd2path(vm_registers_t &, vm_t &);struct F_Sys_fd2path : public vm_frame_base_alloc_t{    /* vm_string_t */ pointer_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;};void Sys_fildes(vm_registers_t &, vm_t &);struct F_Sys_fildes : public vm_frame_base_alloc_t{    /* Sys_FD */ pointer_t* ret;    byte_t temps[12];    word_t fd;};void Sys_file2chan(vm_registers_t &, vm_t &);struct F_Sys_file2chan : public vm_frame_base_alloc_t{    /* Sys_FileIO */ pointer_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t dir;    /* vm_string_t */ pointer_t file;};void Sys_fprint(vm_registers_t &, vm_t &);struct F_Sys_fprint : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;    /* vm_string_t */ pointer_t s;    byte_t vargs;};void Sys_fstat(vm_registers_t &, vm_t &);struct F_Sys_fstat : public vm_frame_base_alloc_t{    struct { word_t t0; byte_t _pad4[4]; Sys_Dir t1; }*ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;};void Sys_fversion(vm_registers_t &, vm_t &);struct F_Sys_fversion : public vm_frame_base_alloc_t{    struct { word_t t0; /* vm_string_t */ pointer_t t1; }*ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;    word_t msize;    /* vm_string_t */ pointer_t version;};void Sys_fwstat(vm_registers_t &, vm_t &);struct F_Sys_fwstat : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;    byte_t _pad36[4];    Sys_Dir d;};void Sys_iounit(vm_registers_t &, vm_t &);struct F_Sys_iounit : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;};void Sys_listen(vm_registers_t &, vm_t &);struct F_Sys_listen : public vm_frame_base_alloc_t{    struct { word_t t0; Sys_Connection t1; }*ret;    byte_t temps[12];    Sys_Connection c;};void Sys_millisec(vm_registers_t &, vm_t &);struct F_Sys_millisec : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];};void Sys_mount(vm_registers_t &, vm_t &);struct F_Sys_mount : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;    /* Sys_FD */ pointer_t afd;    /* vm_string_t */ pointer_t on;    word_t flags;    /* vm_string_t */ pointer_t spec;};void Sys_open(vm_registers_t &, vm_t &);struct F_Sys_open : public vm_frame_base_alloc_t{    /* Sys_FD */ pointer_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s;    word_t mode;};void Sys_pctl(vm_registers_t &, vm_t &);struct F_Sys_pctl : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    word_t flags;    /* vm_list_t */ pointer_t movefd;};void Sys_pipe(vm_registers_t &, vm_t &);struct F_Sys_pipe : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* vm_array_t */ pointer_t fds;};void Sys_pread(vm_registers_t &, vm_t &);struct F_Sys_pread : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;    /* vm_array_t */ pointer_t buf;    word_t n;    byte_t _pad44[4];    big_t off;};void Sys_print(vm_registers_t &, vm_t &);struct F_Sys_print : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s;    byte_t vargs;};void Sys_pwrite(vm_registers_t &, vm_t &);struct F_Sys_pwrite : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;    /* vm_array_t */ pointer_t buf;    word_t n;    byte_t _pad44[4];    big_t off;};void Sys_read(vm_registers_t &, vm_t &);struct F_Sys_read : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;    /* vm_array_t */ pointer_t buf;    word_t n;};void Sys_readn(vm_registers_t &, vm_t &);struct F_Sys_readn : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;    /* vm_array_t */ pointer_t buf;    word_t n;};void Sys_remove(vm_registers_t &, vm_t &);struct F_Sys_remove : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s;};void Sys_seek(vm_registers_t &, vm_t &);struct F_Sys_seek : public vm_frame_base_alloc_t{    big_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;    byte_t _pad36[4];    big_t off;    word_t start;};void Sys_sleep(vm_registers_t &, vm_t &);struct F_Sys_sleep : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    word_t period;};void Sys_sprint(vm_registers_t &, vm_t &);struct F_Sys_sprint : public vm_frame_base_alloc_t{    /* vm_string_t */ pointer_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s;    byte_t vargs;};void Sys_stat(vm_registers_t &, vm_t &);struct F_Sys_stat : public vm_frame_base_alloc_t{    struct { word_t t0; byte_t _pad4[4]; Sys_Dir t1; }*ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s;};void Sys_stream(vm_registers_t &, vm_t &);struct F_Sys_stream : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t src;    /* Sys_FD */ pointer_t dst;    word_t bufsiz;};void Sys_tokenize(vm_registers_t &, vm_t &);struct F_Sys_tokenize : public vm_frame_base_alloc_t{    struct { word_t t0; /* vm_list_t */ pointer_t t1; }*ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s;    /* vm_string_t */ pointer_t delim;};void Sys_unmount(vm_registers_t &, vm_t &);struct F_Sys_unmount : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s1;    /* vm_string_t */ pointer_t s2;};void Sys_utfbytes(vm_registers_t &, vm_t &);struct F_Sys_utfbytes : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* vm_array_t */ pointer_t buf;    word_t n;};void Sys_werrstr(vm_registers_t &, vm_t &);struct F_Sys_werrstr : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s;};void Sys_write(vm_registers_t &, vm_t &);struct F_Sys_write : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* Sys_FD */ pointer_t fd;    /* vm_array_t */ pointer_t buf;    word_t n;};void Sys_wstat(vm_registers_t &, vm_t &);struct F_Sys_wstat : public vm_frame_base_alloc_t{    word_t* ret;    byte_t temps[12];    /* vm_string_t */ pointer_t s;    byte_t _pad36[4];    Sys_Dir d;};const char *Sys_PATH = "$Sys";const word_t Sys_Maxint = 0x7fffffff;const word_t Sys_QTDIR = 0x80;const word_t Sys_QTAPPEND = 0x40;const word_t Sys_QTEXCL = 0x20;const word_t Sys_QTAUTH = 0x8;const word_t Sys_QTTMP = 0x4;const word_t Sys_QTFILE = 0;const word_t Sys_ATOMICIO = 0x2000;const word_t Sys_SEEKSTART = 0;const word_t Sys_SEEKRELA = 0x1;const word_t Sys_SEEKEND = 0x2;const word_t Sys_NAMEMAX = 0x100;const word_t Sys_ERRMAX = 0x80;const word_t Sys_WAITLEN = 0xc0;const word_t Sys_OREAD = 0;const word_t Sys_OWRITE = 0x1;const word_t Sys_ORDWR = 0x2;const word_t Sys_OTRUNC = 0x10;const word_t Sys_ORCLOSE = 0x40;const word_t Sys_OEXCL = 0x1000;const word_t Sys_DMDIR = 0x80000000;const word_t Sys_DMAPPEND = 0x40000000;const word_t Sys_DMEXCL = 0x20000000;const word_t Sys_DMAUTH = 0x8000000;const word_t Sys_DMTMP = 0x4000000;const word_t Sys_MREPL = 0;const word_t Sys_MBEFORE = 0x1;const word_t Sys_MAFTER = 0x2;const word_t Sys_MCREATE = 0x4;const word_t Sys_MCACHE = 0x10;const word_t Sys_NEWFD = 0x1;const word_t Sys_FORKFD = 0x2;const word_t Sys_NEWNS = 0x4;const word_t Sys_FORKNS = 0x8;const word_t Sys_NEWPGRP = 0x10;const word_t Sys_NODEVS = 0x20;const word_t Sys_NEWENV = 0x40;const word_t Sys_FORKENV = 0x80;const word_t Sys_EXPWAIT = 0;const word_t Sys_EXPASYNC = 0x1;const word_t Sys_UTFmax = 0x4;const word_t Sys_UTFerror = 0xfffd;const word_t Sys_Runemax = 0x10ffff;const word_t Sys_Runemask = 0x1fffff; #endif // _DISVM_SRC_VM_SYS_SYSMOD_H_