diff options
| author | Dokyung Song <dokyungs@google.com> | 2018-08-27 17:48:08 -0700 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-08-29 19:08:11 -0700 |
| commit | 99c7e4ecfa8ec1fd402d22caea619c5df72ef169 (patch) | |
| tree | ff7576a0e39f36279441eb0648ef1757a989a405 /executor | |
| parent | ec887defafc3ae627cd2779324cfd51e23952fe1 (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.h | 4 | ||||
| -rw-r--r-- | executor/syscalls.h | 68 |
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}, |
