diff options
| author | Marco Vanotti <mvanotti@users.noreply.github.com> | 2018-11-20 20:56:43 -0800 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-11-21 05:56:43 +0100 |
| commit | d260249e707bef82e50614c32783a2afb808d8ea (patch) | |
| tree | 3eb984f4b9c84544fbe42c256c48208d01f22987 | |
| parent | 5bb36a9ef8c850e01185e9db74a3517bb1670799 (diff) | |
sys/fuchsia: update VMAR syscalls
* sys/fuchsia: update vmar syscalls.
In a previous zircon commit[0], the vmar related syscalls (like
`zx_vmar_map`, `zx_vmar_protect` and `zx_vmar_allocate`) changed the
order of their parameters, making putting the flags parameter as the
second parameter, and renaming it to "options".
This commit modifies vmars.txt so that it reflects the latest state of
the syscalls in zircon. I also modified the usage in
`executor/common_fuchsia.h`
I ran make extract, make generate and compiled syzkaller to test this
change.
[0]: https://fuchsia-review.googlesource.com/c/zircon/+/168060
* sys/fuchsia run make generate
This commit is just the result of running make generate after its
parent. This regenerates the definitions for the modified VMAR syscalls.
| -rw-r--r-- | executor/common_fuchsia.h | 6 | ||||
| -rw-r--r-- | executor/defs.h | 4 | ||||
| -rw-r--r-- | pkg/csource/generated.go | 6 | ||||
| -rw-r--r-- | sys/fuchsia/gen/amd64.go | 8 | ||||
| -rw-r--r-- | sys/fuchsia/gen/arm64.go | 8 | ||||
| -rw-r--r-- | sys/fuchsia/vmars.txt | 12 |
6 files changed, 22 insertions, 22 deletions
diff --git a/executor/common_fuchsia.h b/executor/common_fuchsia.h index 6c2381d28..b40120b1c 100644 --- a/executor/common_fuchsia.h +++ b/executor/common_fuchsia.h @@ -179,9 +179,9 @@ long syz_mmap(size_t addr, size_t size) if (status != ZX_OK) return status; uintptr_t mapped_addr; - status = zx_vmar_map(root, addr - info.base, vmo, 0, size, - ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | - ZX_VM_FLAG_PERM_WRITE | ZX_VM_FLAG_PERM_EXECUTE, + status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE | ZX_VM_FLAG_PERM_EXECUTE, + addr - info.base, vmo, 0, size, + &mapped_addr); return status; } diff --git a/executor/defs.h b/executor/defs.h index d402015a5..ca9fcbd5a 100644 --- a/executor/defs.h +++ b/executor/defs.h @@ -35,7 +35,7 @@ #if GOARCH_amd64 #define GOARCH "amd64" -#define SYZ_REVISION "e041d30459ccafba3164bdcadc41bd573fff973e" +#define SYZ_REVISION "dd1c90b2481bcb2c9dfb4a2b84b671cb2bf0d196" #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 "675d49c5342ae2300c2f2d45d826af5790a2ad4a" +#define SYZ_REVISION "e947153b4adcbaea981564a646566a4efa8fdffd" #define SYZ_EXECUTOR_USES_FORK_SERVER 0 #define SYZ_EXECUTOR_USES_SHMEM 0 #define SYZ_PAGE_SIZE 4096 diff --git a/pkg/csource/generated.go b/pkg/csource/generated.go index a5124979b..181d0f9f5 100644 --- a/pkg/csource/generated.go +++ b/pkg/csource/generated.go @@ -819,9 +819,9 @@ long syz_mmap(size_t addr, size_t size) if (status != ZX_OK) return status; uintptr_t mapped_addr; - status = zx_vmar_map(root, addr - info.base, vmo, 0, size, - ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | - ZX_VM_FLAG_PERM_WRITE | ZX_VM_FLAG_PERM_EXECUTE, + status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE | ZX_VM_FLAG_PERM_EXECUTE, + addr - info.base, vmo, 0, size, + &mapped_addr); return status; } diff --git a/sys/fuchsia/gen/amd64.go b/sys/fuchsia/gen/amd64.go index 7cc4f25af..1291e8cc2 100644 --- a/sys/fuchsia/gen/amd64.go +++ b/sys/fuchsia/gen/amd64.go @@ -6955,9 +6955,9 @@ var syscalls_amd64 = []*Syscall{ }}, {Name: "zx_vmar_allocate", CallName: "zx_vmar_allocate", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmar", FldName: "parent_handle", TypeSize: 4}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_allocate_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{8, 16, 64, 128, 256, 512}, BitMask: true}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "offset", TypeSize: 8}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "size", TypeSize: 8}}}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_allocate_flags", FldName: "map_flags", TypeSize: 8}}, Vals: []uint64{8, 16, 64, 128, 256, 512}, BitMask: true}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmar", TypeSize: 4, ArgDir: 1}}}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "child_addr", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8, ArgDir: 1}}}}, }}, @@ -6966,18 +6966,18 @@ var syscalls_amd64 = []*Syscall{ }}, {Name: "zx_vmar_map", CallName: "zx_vmar_map", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmar", FldName: "handle", TypeSize: 4}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_map_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{16, 32, 1, 2, 4, 1024}, BitMask: true}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "vmar_offset", TypeSize: 8}}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmo", FldName: "vmo", TypeSize: 4}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "vmo_offset", TypeSize: 8}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "len", TypeSize: 8}}}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_map_flags", FldName: "map_flags", TypeSize: 8}}, Vals: []uint64{16, 32, 1, 2, 4, 1024}, BitMask: true}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "mapped_addr", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8, ArgDir: 1}}}}, }}, {Name: "zx_vmar_protect", CallName: "zx_vmar_protect", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmar", FldName: "handle", TypeSize: 4}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_protect_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1, 2, 4}, BitMask: true}, &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_protect_flags", FldName: "prot_flags", TypeSize: 8}}, Vals: []uint64{1, 2, 4}, BitMask: true}, }}, {Name: "zx_vmar_unmap", CallName: "zx_vmar_unmap", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmar", FldName: "handle", TypeSize: 4}}, @@ -7285,4 +7285,4 @@ var consts_amd64 = []ConstValue{ {Name: "fuchsia_power_Status_OK"}, } -const revision_amd64 = "e041d30459ccafba3164bdcadc41bd573fff973e" +const revision_amd64 = "dd1c90b2481bcb2c9dfb4a2b84b671cb2bf0d196" diff --git a/sys/fuchsia/gen/arm64.go b/sys/fuchsia/gen/arm64.go index 5eee9ea78..162ca7544 100644 --- a/sys/fuchsia/gen/arm64.go +++ b/sys/fuchsia/gen/arm64.go @@ -6955,9 +6955,9 @@ var syscalls_arm64 = []*Syscall{ }}, {Name: "zx_vmar_allocate", CallName: "zx_vmar_allocate", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmar", FldName: "parent_handle", TypeSize: 4}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_allocate_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{8, 16, 64, 128, 256, 512}, BitMask: true}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "offset", TypeSize: 8}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "size", TypeSize: 8}}}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_allocate_flags", FldName: "map_flags", TypeSize: 8}}, Vals: []uint64{8, 16, 64, 128, 256, 512}, BitMask: true}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmar", TypeSize: 4, ArgDir: 1}}}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "child_addr", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8, ArgDir: 1}}}}, }}, @@ -6966,18 +6966,18 @@ var syscalls_arm64 = []*Syscall{ }}, {Name: "zx_vmar_map", CallName: "zx_vmar_map", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmar", FldName: "handle", TypeSize: 4}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_map_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{16, 32, 1, 2, 4, 1024}, BitMask: true}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "vmar_offset", TypeSize: 8}}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmo", FldName: "vmo", TypeSize: 4}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "vmo_offset", TypeSize: 8}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "len", TypeSize: 8}}}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_map_flags", FldName: "map_flags", TypeSize: 8}}, Vals: []uint64{16, 32, 1, 2, 4, 1024}, BitMask: true}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "mapped_addr", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8, ArgDir: 1}}}}, }}, {Name: "zx_vmar_protect", CallName: "zx_vmar_protect", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmar", FldName: "handle", TypeSize: 4}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_protect_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1, 2, 4}, BitMask: true}, &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "vmar_protect_flags", FldName: "prot_flags", TypeSize: 8}}, Vals: []uint64{1, 2, 4}, BitMask: true}, }}, {Name: "zx_vmar_unmap", CallName: "zx_vmar_unmap", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_vmar", FldName: "handle", TypeSize: 4}}, @@ -7285,4 +7285,4 @@ var consts_arm64 = []ConstValue{ {Name: "fuchsia_power_Status_OK"}, } -const revision_arm64 = "675d49c5342ae2300c2f2d45d826af5790a2ad4a" +const revision_arm64 = "e947153b4adcbaea981564a646566a4efa8fdffd" diff --git a/sys/fuchsia/vmars.txt b/sys/fuchsia/vmars.txt index e9f0a2bd6..ed986f900 100644 --- a/sys/fuchsia/vmars.txt +++ b/sys/fuchsia/vmars.txt @@ -5,12 +5,12 @@ include <zircon/syscalls.h> resource zx_vmar[zx_handle] -zx_vmar_allocate(parent_handle zx_vmar, offset intptr, size intptr, map_flags flags[vmar_allocate_flags], out ptr[out, zx_vmar], child_addr ptr[out, intptr]) -zx_vmar_map(handle zx_vmar, vmar_offset intptr, vmo zx_vmo, vmo_offset int64, len intptr, map_flags flags[vmar_map_flags], mapped_addr ptr[out, intptr]) +zx_vmar_allocate(parent_handle zx_vmar, options flags[vmar_allocate_options], offset intptr, size intptr, out ptr[out, zx_vmar], child_addr ptr[out, intptr]) +zx_vmar_map(handle zx_vmar, options flags[vmar_map_options], vmar_offset intptr, vmo zx_vmo, vmo_offset int64, len intptr, mapped_addr ptr[out, intptr]) zx_vmar_unmap(handle zx_vmar, addr vma, len len[addr]) -zx_vmar_protect(handle zx_vmar, addr vma, len len[addr], prot_flags flags[vmar_protect_flags]) +zx_vmar_protect(handle zx_vmar, options flags[vmar_protect_options], addr vma, len len[addr]) zx_vmar_destroy(handle zx_vmar) -vmar_allocate_flags = ZX_VM_FLAG_COMPACT, ZX_VM_FLAG_SPECIFIC, ZX_VM_FLAG_CAN_MAP_SPECIFIC, ZX_VM_FLAG_CAN_MAP_READ, ZX_VM_FLAG_CAN_MAP_WRITE, ZX_VM_FLAG_CAN_MAP_EXECUTE -vmar_map_flags = ZX_VM_FLAG_SPECIFIC, ZX_VM_FLAG_SPECIFIC_OVERWRITE, ZX_VM_FLAG_PERM_READ, ZX_VM_FLAG_PERM_WRITE, ZX_VM_FLAG_PERM_EXECUTE, ZX_VM_FLAG_MAP_RANGE -vmar_protect_flags = ZX_VM_FLAG_PERM_READ, ZX_VM_FLAG_PERM_WRITE, ZX_VM_FLAG_PERM_EXECUTE +vmar_allocate_options = ZX_VM_FLAG_COMPACT, ZX_VM_FLAG_SPECIFIC, ZX_VM_FLAG_CAN_MAP_SPECIFIC, ZX_VM_FLAG_CAN_MAP_READ, ZX_VM_FLAG_CAN_MAP_WRITE, ZX_VM_FLAG_CAN_MAP_EXECUTE +vmar_map_options = ZX_VM_FLAG_SPECIFIC, ZX_VM_FLAG_SPECIFIC_OVERWRITE, ZX_VM_FLAG_PERM_READ, ZX_VM_FLAG_PERM_WRITE, ZX_VM_FLAG_PERM_EXECUTE, ZX_VM_FLAG_MAP_RANGE +vmar_protect_options = ZX_VM_FLAG_PERM_READ, ZX_VM_FLAG_PERM_WRITE, ZX_VM_FLAG_PERM_EXECUTE |
