sys/fuchsia: more descriptions

This commit is contained in:
Dmitry Vyukov 2017-10-16 19:23:13 +02:00
parent 6222b00f4b
commit 8793f74c6c
16 changed files with 1440 additions and 237 deletions

View File

@ -87,9 +87,9 @@ ifeq ("$(TARGETOS)", "fuchsia")
export CGO_ENABLED=1
NOSTATIC = 1
ifeq ("$(TARGETARCH)", "amd64")
ADDCFLAGS = --target=x86_64-fuchsia -lfdio -lzircon --sysroot $(SOURCEDIR)/out/build-zircon/build-zircon-pc-x86-64/sysroot
ADDCFLAGS = --target=x86_64-fuchsia -lfdio -lzircon --sysroot $(SOURCEDIR)/out/build-zircon/build-zircon-pc-x86-64/sysroot -I $(SOURCEDIR)/out/build-zircon/build-zircon-pc-x86-64
else ifeq ("$(TARGETARCH)", "arm64")
ADDCFLAGS = --target=aarch64-fuchsia -lfdio -lzircon --sysroot $(SOURCEDIR)/out/build-zircon/build-zircon-pc-x86-64/sysroot
ADDCFLAGS = --target=aarch64-fuchsia -lfdio -lzircon --sysroot $(SOURCEDIR)/out/build-zircon/build-zircon-pc-arm64/sysroot -I $(SOURCEDIR)/out/build-zircon/build-zircon-pc-arm64
endif
endif

View File

@ -3,7 +3,14 @@
// This file is shared between executor and csource package.
#include <fcntl.h>
#include <poll.h>
#include <sys/file.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <unistd.h>
#include <utime.h>
#include <zircon/process.h>
#include <zircon/syscalls.h>
#if defined(SYZ_EXECUTOR) || defined(SYZ_THREADED) || defined(SYZ_COLLIDE)
@ -191,3 +198,39 @@ long syz_job_default()
return zx_job_default();
}
#endif
#if defined(SYZ_EXECUTOR) || defined(__NR_syz_future_time)
long syz_future_time(long when)
{
zx_time_t delta_ms;
switch (when) {
case 0:
delta_ms = 5;
case 1:
delta_ms = 30;
default:
delta_ms = 10000;
}
zx_time_t now = zx_time_get(ZX_CLOCK_MONOTONIC);
return now + delta_ms * 1000 * 1000;
}
#endif
#if defined(SYZ_EXECUTOR) || defined(__NR_zx_channel_call_finish) || defined(zx_channel_call_noretry)
#include "kernel/lib/vdso/vdso-code.h"
#define UNEXPORTED(name) ((syscall_t)((long)&zx_handle_close - VDSO_SYSCALL_zx_handle_close + VDSO_SYSCALL_##name))
#endif
#if defined(SYZ_EXECUTOR) || defined(__NR_zx_channel_call_finish)
zx_status_t zx_channel_call_finish(long a0, long a1, long a2, long a3, long a4, long a5, long a6, long a7, long a8)
{
return UNEXPORTED(zx_channel_call_finish)(a0, a1, a2, a3, a4, a5, a6, a7, a8);
}
#endif
#if defined(SYZ_EXECUTOR) || defined(__NR_zx_channel_call_noretry)
zx_status_t zx_channel_call_noretry(long a0, long a1, long a2, long a3, long a4, long a5, long a6, long a7, long a8)
{
return UNEXPORTED(zx_channel_call_noretry)(a0, a1, a2, a3, a4, a5, a6, a7, a8);
}
#endif

View File

@ -30,7 +30,8 @@ int main(int argc, char** argv)
long execute_syscall(call_t* c, long a0, long a1, long a2, long a3, long a4, long a5, long a6, long a7, long a8)
{
long res = c->call(a0, a1, a2, a3, a4, a5, a6, a7, a8);
long res = ZX_ERR_INVALID_ARGS;
NONFAILING(res = c->call(a0, a1, a2, a3, a4, a5, a6, a7, a8));
errno = res;
return res;
}

View File

@ -2,21 +2,82 @@
#if defined(__x86_64__) || 0
#define GOARCH "amd64"
#define SYZ_REVISION "c4bd217e1073de2f960be149f5f3763258a9f8ea"
#define __NR_syz_job_default 1000000
#define __NR_syz_mmap 1000001
#define __NR_syz_process_self 1000002
#define __NR_syz_thread_self 1000003
#define __NR_syz_vmar_root_self 1000004
#define SYZ_REVISION "5a8e70818b54cb32826aacef1b4b176d34b5c768"
#define __NR_syz_future_time 1000000
#define __NR_syz_job_default 1000001
#define __NR_syz_mmap 1000002
#define __NR_syz_process_self 1000003
#define __NR_syz_thread_self 1000004
#define __NR_syz_vmar_root_self 1000005
unsigned syscall_count = 103;
unsigned syscall_count = 164;
call_t syscalls[] = {
{"syz_job_default", 1000000, (syscall_t)syz_job_default},
{"syz_mmap", 1000001, (syscall_t)syz_mmap},
{"syz_process_self", 1000002, (syscall_t)syz_process_self},
{"syz_thread_self", 1000003, (syscall_t)syz_thread_self},
{"syz_vmar_root_self", 1000004, (syscall_t)syz_vmar_root_self},
{"chdir", 0, (syscall_t)chdir},
{"chmod", 0, (syscall_t)chmod},
{"chown", 0, (syscall_t)chown},
{"close", 0, (syscall_t)close},
{"creat", 0, (syscall_t)creat},
{"dup", 0, (syscall_t)dup},
{"dup2", 0, (syscall_t)dup2},
{"dup3", 0, (syscall_t)dup3},
{"faccessat", 0, (syscall_t)faccessat},
{"fchdir", 0, (syscall_t)fchdir},
{"fchmod", 0, (syscall_t)fchmod},
{"fchmodat", 0, (syscall_t)fchmodat},
{"fchown", 0, (syscall_t)fchown},
{"fchownat", 0, (syscall_t)fchownat},
{"fdatasync", 0, (syscall_t)fdatasync},
{"flock", 0, (syscall_t)flock},
{"fstat", 0, (syscall_t)fstat},
{"fsync", 0, (syscall_t)fsync},
{"ftruncate", 0, (syscall_t)ftruncate},
{"futimesat", 0, (syscall_t)futimesat},
{"getcwd", 0, (syscall_t)getcwd},
{"getgid", 0, (syscall_t)getgid},
{"getpid", 0, (syscall_t)getpid},
{"getuid", 0, (syscall_t)getuid},
{"lchown", 0, (syscall_t)lchown},
{"link", 0, (syscall_t)link},
{"linkat", 0, (syscall_t)linkat},
{"lseek", 0, (syscall_t)lseek},
{"lstat", 0, (syscall_t)lstat},
{"mkdir", 0, (syscall_t)mkdir},
{"mkdirat", 0, (syscall_t)mkdirat},
{"open", 0, (syscall_t)open},
{"openat", 0, (syscall_t)openat},
{"poll", 0, (syscall_t)poll},
{"ppoll", 0, (syscall_t)ppoll},
{"preadv", 0, (syscall_t)preadv},
{"pwritev", 0, (syscall_t)pwritev},
{"read", 0, (syscall_t)read},
{"readlink", 0, (syscall_t)readlink},
{"readlinkat", 0, (syscall_t)readlinkat},
{"readv", 0, (syscall_t)readv},
{"rename", 0, (syscall_t)rename},
{"renameat", 0, (syscall_t)renameat},
{"rmdir", 0, (syscall_t)rmdir},
{"select", 0, (syscall_t)select},
{"stat", 0, (syscall_t)stat},
{"symlink", 0, (syscall_t)symlink},
{"symlinkat", 0, (syscall_t)symlinkat},
{"sync", 0, (syscall_t)sync},
{"syz_future_time", 1000000, (syscall_t)syz_future_time},
{"syz_job_default", 1000001, (syscall_t)syz_job_default},
{"syz_mmap", 1000002, (syscall_t)syz_mmap},
{"syz_process_self", 1000003, (syscall_t)syz_process_self},
{"syz_thread_self", 1000004, (syscall_t)syz_thread_self},
{"syz_vmar_root_self", 1000005, (syscall_t)syz_vmar_root_self},
{"truncate", 0, (syscall_t)truncate},
{"unlink", 0, (syscall_t)unlink},
{"unlinkat", 0, (syscall_t)unlinkat},
{"utime", 0, (syscall_t)utime},
{"utimensat", 0, (syscall_t)utimensat},
{"utimes", 0, (syscall_t)utimes},
{"write", 0, (syscall_t)write},
{"writev", 0, (syscall_t)writev},
{"zx_channel_call", 0, (syscall_t)zx_channel_call},
{"zx_channel_call_finish", 0, (syscall_t)zx_channel_call_finish},
{"zx_channel_call_noretry", 0, (syscall_t)zx_channel_call_noretry},
{"zx_channel_create", 0, (syscall_t)zx_channel_create},
{"zx_channel_read", 0, (syscall_t)zx_channel_read},
{"zx_channel_write", 0, (syscall_t)zx_channel_write},
@ -112,6 +173,7 @@ call_t syscalls[] = {
{"zx_vmo_op_range$ZX_VMO_OP_DECOMMIT", 0, (syscall_t)zx_vmo_op_range},
{"zx_vmo_op_range$ZX_VMO_OP_LOOKUP", 0, (syscall_t)zx_vmo_op_range},
{"zx_vmo_read", 0, (syscall_t)zx_vmo_read},
{"zx_vmo_set_cache_policy", 0, (syscall_t)zx_vmo_set_cache_policy},
{"zx_vmo_set_size", 0, (syscall_t)zx_vmo_set_size},
{"zx_vmo_write", 0, (syscall_t)zx_vmo_write},
@ -120,21 +182,82 @@ call_t syscalls[] = {
#if defined(__aarch64__) || 0
#define GOARCH "arm64"
#define SYZ_REVISION "74d9a48364f654cbf79562ea1efc049b48db9a72"
#define __NR_syz_job_default 1000000
#define __NR_syz_mmap 1000001
#define __NR_syz_process_self 1000002
#define __NR_syz_thread_self 1000003
#define __NR_syz_vmar_root_self 1000004
#define SYZ_REVISION "181d2b70232bd5b7de2d6d08ad038157ec35803f"
#define __NR_syz_future_time 1000000
#define __NR_syz_job_default 1000001
#define __NR_syz_mmap 1000002
#define __NR_syz_process_self 1000003
#define __NR_syz_thread_self 1000004
#define __NR_syz_vmar_root_self 1000005
unsigned syscall_count = 103;
unsigned syscall_count = 164;
call_t syscalls[] = {
{"syz_job_default", 1000000, (syscall_t)syz_job_default},
{"syz_mmap", 1000001, (syscall_t)syz_mmap},
{"syz_process_self", 1000002, (syscall_t)syz_process_self},
{"syz_thread_self", 1000003, (syscall_t)syz_thread_self},
{"syz_vmar_root_self", 1000004, (syscall_t)syz_vmar_root_self},
{"chdir", 0, (syscall_t)chdir},
{"chmod", 0, (syscall_t)chmod},
{"chown", 0, (syscall_t)chown},
{"close", 0, (syscall_t)close},
{"creat", 0, (syscall_t)creat},
{"dup", 0, (syscall_t)dup},
{"dup2", 0, (syscall_t)dup2},
{"dup3", 0, (syscall_t)dup3},
{"faccessat", 0, (syscall_t)faccessat},
{"fchdir", 0, (syscall_t)fchdir},
{"fchmod", 0, (syscall_t)fchmod},
{"fchmodat", 0, (syscall_t)fchmodat},
{"fchown", 0, (syscall_t)fchown},
{"fchownat", 0, (syscall_t)fchownat},
{"fdatasync", 0, (syscall_t)fdatasync},
{"flock", 0, (syscall_t)flock},
{"fstat", 0, (syscall_t)fstat},
{"fsync", 0, (syscall_t)fsync},
{"ftruncate", 0, (syscall_t)ftruncate},
{"futimesat", 0, (syscall_t)futimesat},
{"getcwd", 0, (syscall_t)getcwd},
{"getgid", 0, (syscall_t)getgid},
{"getpid", 0, (syscall_t)getpid},
{"getuid", 0, (syscall_t)getuid},
{"lchown", 0, (syscall_t)lchown},
{"link", 0, (syscall_t)link},
{"linkat", 0, (syscall_t)linkat},
{"lseek", 0, (syscall_t)lseek},
{"lstat", 0, (syscall_t)lstat},
{"mkdir", 0, (syscall_t)mkdir},
{"mkdirat", 0, (syscall_t)mkdirat},
{"open", 0, (syscall_t)open},
{"openat", 0, (syscall_t)openat},
{"poll", 0, (syscall_t)poll},
{"ppoll", 0, (syscall_t)ppoll},
{"preadv", 0, (syscall_t)preadv},
{"pwritev", 0, (syscall_t)pwritev},
{"read", 0, (syscall_t)read},
{"readlink", 0, (syscall_t)readlink},
{"readlinkat", 0, (syscall_t)readlinkat},
{"readv", 0, (syscall_t)readv},
{"rename", 0, (syscall_t)rename},
{"renameat", 0, (syscall_t)renameat},
{"rmdir", 0, (syscall_t)rmdir},
{"select", 0, (syscall_t)select},
{"stat", 0, (syscall_t)stat},
{"symlink", 0, (syscall_t)symlink},
{"symlinkat", 0, (syscall_t)symlinkat},
{"sync", 0, (syscall_t)sync},
{"syz_future_time", 1000000, (syscall_t)syz_future_time},
{"syz_job_default", 1000001, (syscall_t)syz_job_default},
{"syz_mmap", 1000002, (syscall_t)syz_mmap},
{"syz_process_self", 1000003, (syscall_t)syz_process_self},
{"syz_thread_self", 1000004, (syscall_t)syz_thread_self},
{"syz_vmar_root_self", 1000005, (syscall_t)syz_vmar_root_self},
{"truncate", 0, (syscall_t)truncate},
{"unlink", 0, (syscall_t)unlink},
{"unlinkat", 0, (syscall_t)unlinkat},
{"utime", 0, (syscall_t)utime},
{"utimensat", 0, (syscall_t)utimensat},
{"utimes", 0, (syscall_t)utimes},
{"write", 0, (syscall_t)write},
{"writev", 0, (syscall_t)writev},
{"zx_channel_call", 0, (syscall_t)zx_channel_call},
{"zx_channel_call_finish", 0, (syscall_t)zx_channel_call_finish},
{"zx_channel_call_noretry", 0, (syscall_t)zx_channel_call_noretry},
{"zx_channel_create", 0, (syscall_t)zx_channel_create},
{"zx_channel_read", 0, (syscall_t)zx_channel_read},
{"zx_channel_write", 0, (syscall_t)zx_channel_write},
@ -230,6 +353,7 @@ call_t syscalls[] = {
{"zx_vmo_op_range$ZX_VMO_OP_DECOMMIT", 0, (syscall_t)zx_vmo_op_range},
{"zx_vmo_op_range$ZX_VMO_OP_LOOKUP", 0, (syscall_t)zx_vmo_op_range},
{"zx_vmo_read", 0, (syscall_t)zx_vmo_read},
{"zx_vmo_set_cache_policy", 0, (syscall_t)zx_vmo_set_cache_policy},
{"zx_vmo_set_size", 0, (syscall_t)zx_vmo_set_size},
{"zx_vmo_write", 0, (syscall_t)zx_vmo_write},

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,10 @@ zx_channel_call(handle zx_chan, options const[0], deadline zx_time, args ptr[in,
zx_channel_read(handle zx_chan, options flags[chan_read_options], bytes ptr[out, array[int8]], handles ptr[out, zx_handle], num_bytes len[bytes], num_handles len[handles], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_write(handle zx_chan, options const[0], bytes ptr[in, array[int8]], num_bytes len[bytes], handles ptr[in, array[zx_handle]], num_handles len[handles])
# Not public:
zx_channel_call_finish(deadline zx_time, args ptr[in, zx_channel_call_args], actual_bytes ptr[out, int32], actual_handles ptr[out, int32], read_status ptr[out, int32])
zx_channel_call_noretry(handle zx_chan, options const[0], deadline zx_time, args ptr[in, zx_channel_call_args], actual_bytes ptr[out, int32], actual_handles ptr[out, int32], read_status ptr[out, int32])
zx_channel_call_args {
wr_bytes ptr[in, array[int8]]
wr_handles ptr[in, array[zx_handle]]

View File

@ -5,7 +5,6 @@ include <zircon/syscalls.h>
include <zircon/syscalls/object.h>
include <zircon/syscalls/exception.h>
# TODO: special values?
resource koid[int64]: 0
# TODO: temporary disabled as it crashes kernel left and right.

152
sys/fuchsia/posix.txt Normal file
View File

@ -0,0 +1,152 @@
# Copyright 2017 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
# This file contains some subset of POSIX/libc calls.
# They should be handled by ulib/fs service rather then by the kernel,
# but still no reason to not fuzz them.
include <sys/types.h>
include <sys/stat.h>
include <sys/file.h>
include <sys/uio.h>
include <fcntl.h>
include <poll.h>
include <unistd.h>
include <utime.h>
resource fd[int32]: 0xffffffffffffffff, AT_FDCWD
resource pid[int32]: 0, 0xffffffffffffffff
resource uid[int32]: 0, 0xffffffffffffffff
resource gid[int32]: 0, 0xffffffffffffffff
open(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd
openat(fd fd, file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd
creat(file ptr[in, filename], mode flags[open_mode]) fd
close(fd fd)
read(fd fd, buf buffer[out], count len[buf])
readv(fd fd, vec ptr[in, array[iovec_out]], vlen len[vec])
preadv(fd fd, vec ptr[in, array[iovec_out]], vlen len[vec], off fileoff)
write(fd fd, buf buffer[in], count len[buf])
writev(fd fd, vec ptr[in, array[iovec_in]], vlen len[vec])
pwritev(fd fd, vec ptr[in, array[iovec_in]], vlen len[vec], off fileoff)
lseek(fd fd, offset fileoff, whence flags[seek_whence])
dup(oldfd fd) fd
dup2(oldfd fd, newfd fd) fd
dup3(oldfd fd, newfd fd, flags flags[dup_flags]) fd
stat(file ptr[in, filename], statbuf ptr[out, array[int8]])
lstat(file ptr[in, filename], statbuf ptr[out, array[int8]])
fstat(fd fd, statbuf ptr[out, array[int8]])
poll(fds ptr[in, array[pollfd]], nfds len[fds], timeout int32)
ppoll(fds ptr[in, array[pollfd]], nfds len[fds], tsp ptr[in, timespec], sigmask ptr[in, sigset], size len[sigmask])
select(n len[inp], inp ptr[inout, fd_set], outp ptr[inout, fd_set], exp ptr[inout, fd_set], tvp ptr[inout, timeval])
chmod(file ptr[in, filename], mode flags[open_mode])
fchmod(fd fd, mode flags[open_mode])
fchmodat(dirfd fd, file ptr[in, filename], mode flags[open_mode])
chown(file ptr[in, filename], uid uid, gid gid)
lchown(file ptr[in, filename], uid uid, gid gid)
fchown(fd fd, uid uid, gid gid)
fchownat(dirfd fd, file ptr[in, filename], uid uid, gid gid, flags flags[at_flags])
faccessat(dirfd fd, pathname ptr[in, filename], mode flags[open_mode], flags flags[faccessat_flags])
utime(filename ptr[in, filename], times ptr[in, utimbuf])
utimes(filename ptr[in, filename], times ptr[in, itimerval])
futimesat(dir fd, pathname ptr[in, filename], times ptr[in, itimerval])
utimensat(dir fd, pathname ptr[in, filename], times ptr[in, itimerval], flags flags[utimensat_flags])
link(old ptr[in, filename], new ptr[in, filename])
linkat(oldfd fd, old ptr[in, filename], newfd fd, new ptr[in, filename], flags flags[linkat_flags])
symlinkat(old ptr[in, filename], newfd fd, new ptr[in, filename])
symlink(old ptr[in, filename], new ptr[in, filename])
unlink(path ptr[in, filename])
unlinkat(fd fd, path ptr[in, filename], flags flags[unlinkat_flags])
readlink(path ptr[in, filename], buf buffer[out], siz len[buf])
readlinkat(fd fd, path ptr[in, filename], buf buffer[out], siz len[buf])
rename(old ptr[in, filename], new ptr[in, filename])
renameat(oldfd fd, old ptr[in, filename], newfd fd, new ptr[in, filename])
mkdir(path ptr[in, filename], mode flags[open_mode])
mkdirat(fd fd, path ptr[in, filename], mode flags[open_mode])
rmdir(path ptr[in, filename])
truncate(file ptr[in, filename], len intptr)
ftruncate(fd fd, len intptr)
flock(fd fd, op flags[flock_op])
fsync(fd fd)
fdatasync(fd fd)
sync()
getcwd(buf buffer[out], size len[buf])
chdir(dir ptr[in, filename])
fchdir(fd fd)
getgid() gid
getuid() uid
getpid() pid
open_flags = O_RDONLY, O_WRONLY, O_RDWR, O_APPEND, FASYNC, O_CLOEXEC, O_CREAT, O_DIRECT, O_DIRECTORY, O_EXCL, O_LARGEFILE, O_NOATIME, O_NOCTTY, O_NOFOLLOW, O_NONBLOCK, O_PATH, O_SYNC, O_TRUNC
open_mode = S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH
seek_whence = SEEK_SET, SEEK_CUR, SEEK_END
dup_flags = O_CLOEXEC
pollfd_events = POLLIN, POLLPRI, POLLOUT, POLLERR, POLLHUP, POLLNVAL, POLLRDNORM, POLLRDBAND, POLLWRNORM, POLLWRBAND, POLLMSG, POLLRDHUP
at_flags = AT_EMPTY_PATH, AT_SYMLINK_NOFOLLOW, AT_SYMLINK_FOLLOW, AT_NO_AUTOMOUNT, AT_EMPTY_PATH
utimensat_flags = 0, AT_SYMLINK_NOFOLLOW
linkat_flags = AT_EMPTY_PATH, AT_SYMLINK_FOLLOW
unlinkat_flags = 0, AT_REMOVEDIR
flock_op = LOCK_SH, LOCK_EX, LOCK_UN, LOCK_NB
faccessat_flags = 0x100, 0x200, 0x400, 0x800, 0x1000
iovec_in {
addr buffer[in]
len len[addr, intptr]
}
iovec_out {
addr buffer[out]
len len[addr, intptr]
}
sigset {
mask int64
}
sigset_size {
ss ptr[inout, sigset]
len len[ss, intptr]
}
fd_set {
mask0 int64
mask1 int64
mask2 int64
mask3 int64
mask4 int64
mask5 int64
mask6 int64
mask7 int64
}
pollfd {
fd fd
events flags[pollfd_events, int16]
revents const[0, int16]
}
timespec {
sec intptr
nsec intptr
}
timeval {
sec intptr
usec intptr
}
utimbuf {
actime intptr
modtime intptr
}
itimerval {
interv timeval
value timeval
}

View File

@ -0,0 +1,53 @@
# AUTOGENERATED FILE
AT_EMPTY_PATH = 4096
AT_FDCWD = 18446744073709551516
AT_NO_AUTOMOUNT = 2048
AT_REMOVEDIR = 512
AT_SYMLINK_FOLLOW = 1024
AT_SYMLINK_NOFOLLOW = 256
FASYNC = 8192
LOCK_EX = 2
LOCK_NB = 4
LOCK_SH = 1
LOCK_UN = 8
O_APPEND = 1024
O_CLOEXEC = 524288
O_CREAT = 64
O_DIRECT = 16384
O_DIRECTORY = 65536
O_EXCL = 128
O_LARGEFILE = 32768
O_NOATIME = 262144
O_NOCTTY = 256
O_NOFOLLOW = 131072
O_NONBLOCK = 2048
O_PATH = 2097152
O_RDONLY = 0
O_RDWR = 2
O_SYNC = 1052672
O_TRUNC = 512
O_WRONLY = 1
POLLERR = 8
POLLHUP = 16
POLLIN = 1
POLLMSG = 1024
POLLNVAL = 32
POLLOUT = 4
POLLPRI = 2
POLLRDBAND = 128
POLLRDHUP = 8192
POLLRDNORM = 64
POLLWRBAND = 512
POLLWRNORM = 256
SEEK_CUR = 1
SEEK_END = 2
SEEK_SET = 0
S_IRGRP = 32
S_IROTH = 4
S_IRUSR = 256
S_IWGRP = 16
S_IWOTH = 2
S_IWUSR = 128
S_IXGRP = 8
S_IXOTH = 1
S_IXUSR = 64

View File

@ -0,0 +1,53 @@
# AUTOGENERATED FILE
AT_EMPTY_PATH = 4096
AT_FDCWD = 18446744073709551516
AT_NO_AUTOMOUNT = 2048
AT_REMOVEDIR = 512
AT_SYMLINK_FOLLOW = 1024
AT_SYMLINK_NOFOLLOW = 256
FASYNC = 8192
LOCK_EX = 2
LOCK_NB = 4
LOCK_SH = 1
LOCK_UN = 8
O_APPEND = 1024
O_CLOEXEC = 524288
O_CREAT = 64
O_DIRECT = 16384
O_DIRECTORY = 65536
O_EXCL = 128
O_LARGEFILE = 32768
O_NOATIME = 262144
O_NOCTTY = 256
O_NOFOLLOW = 131072
O_NONBLOCK = 2048
O_PATH = 2097152
O_RDONLY = 0
O_RDWR = 2
O_SYNC = 1052672
O_TRUNC = 512
O_WRONLY = 1
POLLERR = 8
POLLHUP = 16
POLLIN = 1
POLLMSG = 1024
POLLNVAL = 32
POLLOUT = 4
POLLPRI = 2
POLLRDBAND = 128
POLLRDHUP = 8192
POLLRDNORM = 64
POLLWRBAND = 512
POLLWRNORM = 256
SEEK_CUR = 1
SEEK_END = 2
SEEK_SET = 0
S_IRGRP = 32
S_IROTH = 4
S_IRUSR = 256
S_IWGRP = 16
S_IWOTH = 2
S_IWUSR = 128
S_IXGRP = 8
S_IXOTH = 1
S_IXUSR = 64

View File

@ -3,7 +3,6 @@
include <zircon/syscalls.h>
# TODO: generate time a bit in future
resource zx_time[int64]: 0, ZX_TIME_INFINITE
zx_nanosleep(deadline zx_time)
@ -14,4 +13,6 @@ zx_ticks_per_second()
# TODO: undocumented
# zx_clock_adjust?
syz_future_time(when intptr[0:1]) zx_time
clock_id = ZX_CLOCK_MONOTONIC, ZX_CLOCK_UTC, ZX_CLOCK_THREAD

View File

@ -19,4 +19,8 @@ zx_vmo_op_range$ZX_VMO_OP_CACHE_CLEAN(handle zx_vmo, op const[ZX_VMO_OP_CACHE_CL
zx_vmo_op_range$ZX_VMO_OP_CACHE_CLEAN_INVALIDATE(handle zx_vmo, op const[ZX_VMO_OP_CACHE_CLEAN_INVALIDATE], offset int64, size int64, data const[0], buffer_size const[0])
zx_vmo_op_range$ZX_VMO_OP_LOOKUP(handle zx_vmo, op const[ZX_VMO_OP_LOOKUP], offset int64, size int64, data ptr[out, array[int8]], buffer_size len[data])
# Not public:
zx_vmo_set_cache_policy(handle zx_vmo, cache_policy flags[vmo_cache_policy])
vmo_clone_options = ZX_VMO_CLONE_COPY_ON_WRITE
vmo_cache_policy = ZX_CACHE_POLICY_CACHED, ZX_CACHE_POLICY_UNCACHED, ZX_CACHE_POLICY_UNCACHED_DEVICE, ZX_CACHE_POLICY_WRITE_COMBINING

View File

@ -1,4 +1,8 @@
# AUTOGENERATED FILE
ZX_CACHE_POLICY_CACHED = 0
ZX_CACHE_POLICY_UNCACHED = 1
ZX_CACHE_POLICY_UNCACHED_DEVICE = 2
ZX_CACHE_POLICY_WRITE_COMBINING = 3
ZX_VMO_CLONE_COPY_ON_WRITE = 1
ZX_VMO_OP_CACHE_CLEAN = 8
ZX_VMO_OP_CACHE_CLEAN_INVALIDATE = 9

View File

@ -1,4 +1,8 @@
# AUTOGENERATED FILE
ZX_CACHE_POLICY_CACHED = 0
ZX_CACHE_POLICY_UNCACHED = 1
ZX_CACHE_POLICY_UNCACHED_DEVICE = 2
ZX_CACHE_POLICY_WRITE_COMBINING = 3
ZX_VMO_CLONE_COPY_ON_WRITE = 1
ZX_VMO_OP_CACHE_CLEAN = 8
ZX_VMO_OP_CACHE_CLEAN_INVALIDATE = 9

View File

@ -38,6 +38,7 @@ func extract(info *compiler.ConstInfo, cc string, args []string, addSource strin
"error: ([a-zA-Z0-9_]+) undeclared",
"error: '([a-zA-Z0-9_]+)' undeclared",
"note: in expansion of macro ([a-zA-Z0-9_]+)",
"error: use of undeclared identifier '([a-zA-Z0-9_]+)'",
} {
re := regexp.MustCompile(errMsg)
matches := re.FindAllSubmatch(out, -1)