aboutsummaryrefslogtreecommitdiffstats
path: root/executor
diff options
context:
space:
mode:
authorDokyung Song <dokyungs@google.com>2018-08-27 17:48:08 -0700
committerDmitry Vyukov <dvyukov@google.com>2018-08-29 19:08:11 -0700
commit99c7e4ecfa8ec1fd402d22caea619c5df72ef169 (patch)
treeff7576a0e39f36279441eb0648ef1757a989a405 /executor
parentec887defafc3ae627cd2779324cfd51e23952fe1 (diff)
sys/fuchsia: describe method response types & handles; add support for union
* create a response handle structure for each FIDL method * generate zx_channel_write for requests having no response * generate zx_channel_read for events (no request but just response) * translate FIDL union types to syzkaller union types (see fuchsia_io_ObjectInfoHandles)
Diffstat (limited to 'executor')
-rw-r--r--executor/defs.h4
-rw-r--r--executor/syscalls.h68
2 files changed, 36 insertions, 36 deletions
diff --git a/executor/defs.h b/executor/defs.h
index ed872062d..79c679ce2 100644
--- a/executor/defs.h
+++ b/executor/defs.h
@@ -35,7 +35,7 @@
#if GOARCH_amd64
#define GOARCH "amd64"
-#define SYZ_REVISION "5b52c3674f508b25b2974ce8c24df47349b2c288"
+#define SYZ_REVISION "2a5cb64c987696cb8bdf1d6d9561c04993cf3299"
#define SYZ_EXECUTOR_USES_FORK_SERVER 0
#define SYZ_EXECUTOR_USES_SHMEM 0
#define SYZ_PAGE_SIZE 4096
@@ -45,7 +45,7 @@
#if GOARCH_arm64
#define GOARCH "arm64"
-#define SYZ_REVISION "d1f92219cd0124f7145ff2c75e8892836c3606ca"
+#define SYZ_REVISION "974ef513ae535d2b92308edd342169a59b596cd4"
#define SYZ_EXECUTOR_USES_FORK_SERVER 0
#define SYZ_EXECUTOR_USES_SHMEM 0
#define SYZ_PAGE_SIZE 4096
diff --git a/executor/syscalls.h b/executor/syscalls.h
index dcd597ec4..e4023386c 100644
--- a/executor/syscalls.h
+++ b/executor/syscalls.h
@@ -558,24 +558,18 @@ const call_t syscalls[] = {
{"writev", 0, (syscall_t)writev},
{"zx_cache_flush", 0, (syscall_t)zx_cache_flush},
{"zx_channel_call", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_DirectoryBind", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_DirectoryClone", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryClose", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryDescribe", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryGetAttr", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryGetToken", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryIoctl", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryLink", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_DirectoryOnOpen", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_DirectoryOpen", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryReadDirents", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryRename", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryRewind", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectorySetAttr", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectorySync", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryUnlink", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_FileBind", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_FileClone", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileClose", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileDescribe", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileGetAttr", 0, (syscall_t)zx_channel_call},
@@ -583,7 +577,6 @@ const call_t syscalls[] = {
{"zx_channel_call$fuchsia_io_FileGetVmo", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileGetVmoAt", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileIoctl", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_FileOnOpen", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileRead", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileReadAt", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileSeek", 0, (syscall_t)zx_channel_call},
@@ -593,24 +586,14 @@ const call_t syscalls[] = {
{"zx_channel_call$fuchsia_io_FileTruncate", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileWrite", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileWriteAt", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_NodeBind", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_NodeClone", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeClose", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeDescribe", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeGetAttr", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeIoctl", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_NodeOnOpen", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeSetAttr", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeSync", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_ObjectBind", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_ObjectClone", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_ObjectClose", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_ObjectDescribe", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_ObjectOnOpen", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_process_LauncherAddArgs", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_process_LauncherAddEnvirons", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_process_LauncherAddHandles", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_process_LauncherAddNames", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_process_LauncherLaunch", 0, (syscall_t)zx_channel_call},
{"zx_channel_create", 0, (syscall_t)zx_channel_create},
@@ -620,8 +603,25 @@ const call_t syscalls[] = {
{"zx_channel_create$fuchsia_io_Object", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_process_Launcher", 0, (syscall_t)zx_channel_create},
{"zx_channel_read", 0, (syscall_t)zx_channel_read},
+ {"zx_channel_read$fuchsia_io_DirectoryOnOpen", 0, (syscall_t)zx_channel_read},
+ {"zx_channel_read$fuchsia_io_FileOnOpen", 0, (syscall_t)zx_channel_read},
+ {"zx_channel_read$fuchsia_io_NodeOnOpen", 0, (syscall_t)zx_channel_read},
+ {"zx_channel_read$fuchsia_io_ObjectOnOpen", 0, (syscall_t)zx_channel_read},
{"zx_channel_read_etc", 0, (syscall_t)zx_channel_read_etc},
{"zx_channel_write", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_DirectoryBind", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_DirectoryClone", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_DirectoryOpen", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_FileBind", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_FileClone", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_NodeBind", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_NodeClone", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_ObjectBind", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_ObjectClone", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_process_LauncherAddArgs", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_process_LauncherAddEnvirons", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_process_LauncherAddHandles", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_process_LauncherAddNames", 0, (syscall_t)zx_channel_write},
{"zx_clock_get", 0, (syscall_t)zx_clock_get},
{"zx_clock_get_monotonic", 0, (syscall_t)zx_clock_get_monotonic},
{"zx_clock_get_new", 0, (syscall_t)zx_clock_get_new},
@@ -805,24 +805,18 @@ const call_t syscalls[] = {
{"writev", 0, (syscall_t)writev},
{"zx_cache_flush", 0, (syscall_t)zx_cache_flush},
{"zx_channel_call", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_DirectoryBind", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_DirectoryClone", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryClose", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryDescribe", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryGetAttr", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryGetToken", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryIoctl", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryLink", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_DirectoryOnOpen", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_DirectoryOpen", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryReadDirents", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryRename", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryRewind", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectorySetAttr", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectorySync", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_DirectoryUnlink", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_FileBind", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_FileClone", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileClose", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileDescribe", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileGetAttr", 0, (syscall_t)zx_channel_call},
@@ -830,7 +824,6 @@ const call_t syscalls[] = {
{"zx_channel_call$fuchsia_io_FileGetVmo", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileGetVmoAt", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileIoctl", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_FileOnOpen", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileRead", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileReadAt", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileSeek", 0, (syscall_t)zx_channel_call},
@@ -840,24 +833,14 @@ const call_t syscalls[] = {
{"zx_channel_call$fuchsia_io_FileTruncate", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileWrite", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_FileWriteAt", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_NodeBind", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_NodeClone", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeClose", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeDescribe", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeGetAttr", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeIoctl", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_NodeOnOpen", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeSetAttr", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_NodeSync", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_ObjectBind", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_ObjectClone", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_ObjectClose", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_io_ObjectDescribe", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_io_ObjectOnOpen", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_process_LauncherAddArgs", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_process_LauncherAddEnvirons", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_process_LauncherAddHandles", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_process_LauncherAddNames", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_process_LauncherCreateWithoutStarting", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_process_LauncherLaunch", 0, (syscall_t)zx_channel_call},
{"zx_channel_create", 0, (syscall_t)zx_channel_create},
@@ -867,8 +850,25 @@ const call_t syscalls[] = {
{"zx_channel_create$fuchsia_io_Object", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_process_Launcher", 0, (syscall_t)zx_channel_create},
{"zx_channel_read", 0, (syscall_t)zx_channel_read},
+ {"zx_channel_read$fuchsia_io_DirectoryOnOpen", 0, (syscall_t)zx_channel_read},
+ {"zx_channel_read$fuchsia_io_FileOnOpen", 0, (syscall_t)zx_channel_read},
+ {"zx_channel_read$fuchsia_io_NodeOnOpen", 0, (syscall_t)zx_channel_read},
+ {"zx_channel_read$fuchsia_io_ObjectOnOpen", 0, (syscall_t)zx_channel_read},
{"zx_channel_read_etc", 0, (syscall_t)zx_channel_read_etc},
{"zx_channel_write", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_DirectoryBind", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_DirectoryClone", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_DirectoryOpen", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_FileBind", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_FileClone", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_NodeBind", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_NodeClone", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_ObjectBind", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_io_ObjectClone", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_process_LauncherAddArgs", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_process_LauncherAddEnvirons", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_process_LauncherAddHandles", 0, (syscall_t)zx_channel_write},
+ {"zx_channel_write$fuchsia_process_LauncherAddNames", 0, (syscall_t)zx_channel_write},
{"zx_clock_get", 0, (syscall_t)zx_clock_get},
{"zx_clock_get_monotonic", 0, (syscall_t)zx_clock_get_monotonic},
{"zx_clock_get_new", 0, (syscall_t)zx_clock_get_new},