head 1.1; access; symbols; locks; strict; comment @# @; 1.1 date 2017.12.07.05.55.36; author dholland; state Exp; branches; next ; commitid qELf3ZFTO2gPdVhA; desc @@ 1.1 log @Add some preliminary stuff in pursuit of testing compat syscalls. So far this just has some (partial) specs and some code for reading the specs in; it doesn't actually do anything yet... It is ocaml because ocaml is the least awful choice for prototyping compiler stuff. @ text @# # Ultrix kernel interface. # calltable { 1 -> exit; 2 -> fork; 3 -> read; 4 -> write; 5 -> open; 6 -> close; 7 -> wait; 8 -> creat; 9 -> link; 10 -> unlink; 11 -> execv; 12 -> chdir; 14 -> mknod; 15 -> chmod; 16 -> chown; 17 -> bkr; 19 -> lseek; 20 -> getpid; 21 -> ultrix_mount; 23 -> setuid; 24 -> getuid; 33 -> access; 36 -> sync; 37 -> kill; 38 -> stat; 40 -> lstat; 41 -> dup; 42 -> pipe; 44 -> profil; 47 -> getgid; 51 -> acct; 54 -> ioctl; 55 -> reboot; 57 -> symlink; 58 -> readlink; 59 -> execve; 60 -> umask; 61 -> chroot; 62 -> fstat; 64 -> getpagesize; 65 -> mremap; 66 -> vfork; 69 -> sbrk; 70 -> sstk; 71 -> mmap; 72 -> vadvise; 73 -> munmap; 74 -> mprotect; 75 -> madvise; 76 -> vhangup; 78 -> mincore; 79 -> getgroups; 80 -> setgroups; 81 -> getpgrp; 82 -> setpgrp; 83 -> setitimer; 84 -> wait3; 85 -> swapon; 86 -> getitimer; 87 -> gethostname; 88 -> sethostname; 89 -> getdtablesize; 90 -> dup2; 92 -> fcntl; 93 -> select; 95 -> fsync; 96 -> setpriority; 97 -> socket; 98 -> connect; 99 -> accept; 100 -> getpriority; 101 -> send; 102 -> recv; 103 -> sigreturn; 104 -> bind; 105 -> setsockopt; 106 -> lisen; 108 -> sigvec; 109 -> sigblock; 110 -> sigsetmask; 112 -> sigstack; 113 -> recvmsg; 114 -> sendmsg; 116 -> gettimeofday; 117 -> getrusage; 118 -> getsockopt; 120 -> readv; 121 -> writev; 122 -> settimeofday; 123 -> fchown; 124 -> fchmod; 125 -> recvfrom; 126 -> setreuid; 127 -> setregid; 128 -> rename; 129 -> truncate; 130 -> ftruncate; 131 -> flock; 133 -> sendto; 134 -> shutdown; 135 -> socketpair; 136 -> mkdir; 137 -> rmdir; 138 -> utimes; 139 -> sigcleanup; 140 -> adjtime; 141 -> getpeername; 142 -> gethostid; 144 -> getrlimit; 145 -> setrlimit; 146 -> killpg; 150 -> getsockname; #152 -> cacheflush; #153 -> cachectl; 158 -> nfssvc; 159 -> getdirentries; 160 -> statfs; 161 -> fstatfs; 162 -> umount; 164 -> getfh; 165 -> getdomainname; 166 -> setdomainname; 168 -> quotactl; 169 -> exportfs; 170 -> ultrix_mount; 172 -> msgctl; 173 -> msgget; 174 -> msgrcv; 175 -> msgsnd; 176 -> semctl; 177 -> semget; 178 -> semop; 179 -> uname; 180 -> shmsys; 181 -> plock; 182 -> lockf; 183 -> ustat; 184 -> getmnt; 187 -> sigpending; 188 -> setsid; 189 -> waitpid; 256 -> getsysinfo; 257 -> setsysinfo; } set mincall 0; set maxcall 384; specialize { type dev_t = int; type fd_t = int; type gid_t = int32_t; type mode_t = int; type modeandtype_t = int; type off_t = long; type pid_t = int; type uid_t = int32_t; type waitstatus_t = int; type openflags_t = int; type accmode = bits(2); const O_RDONLY = 0; const O_WRONLY = 1; const O_RDWR = 2; #const O_CREAT = ?; #const O_EXCL = ?; #const O_TRUNC = ?; type vm_prot_t = int; #const PROT_READ = ?; #const PROT_WRITE = ?; #const PROT_EXEC = ?; type signal_t = int; const SIGHUP = 1; const SIGBUS = 10; const SIGSEGV = 11; } @