aboutsummaryrefslogtreecommitdiffstats
path: root/sys/fuchsia
diff options
context:
space:
mode:
authorLaura Peskin <pesk@google.com>2022-09-14 15:30:08 -0700
committerChris Palmer <snackypants@gmail.com>2022-11-03 11:20:37 -0700
commita2ae3e5f5ab286953b3c6c1ee865a6d5705ad772 (patch)
tree3f8f87002abfb6f8cf803ca032f2f6c5e618cb1d /sys/fuchsia
parente01d28e04a1df2179ae9005678f5210c61fd5596 (diff)
sys/fuchsia: add definitions for pager syscalls
Diffstat (limited to 'sys/fuchsia')
-rw-r--r--sys/fuchsia/pager.txt23
-rw-r--r--sys/fuchsia/pager_amd64.const4
-rw-r--r--sys/fuchsia/pager_arm64.const4
3 files changed, 31 insertions, 0 deletions
diff --git a/sys/fuchsia/pager.txt b/sys/fuchsia/pager.txt
new file mode 100644
index 000000000..4eea83a62
--- /dev/null
+++ b/sys/fuchsia/pager.txt
@@ -0,0 +1,23 @@
+# Copyright 2022 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.
+
+# See https://cs.opensource.google/fuchsia/fuchsia/+/main:zircon/vdso/pager.fidl
+
+include <zircon/syscalls.h>
+include <zircon/types.h>
+
+resource zx_pager[zx_handle]
+
+zx_pager_create(options flags[pager_create_opt], out ptr[out, zx_pager])
+zx_pager_create_vmo(pager zx_pager, options flags[pager_create_vmo_opt], port zx_port, key proc[1000, 16], size int64, out ptr[out, zx_vmo])
+zx_pager_detach_vmo(pager zx_pager, vmo zx_vmo)
+zx_pager_supply_pages(pager zx_pager, pager_vmo zx_vmo, offset int64, length int64, aux_vmo zx_vmo, aux_offset int64)
+zx_pager_op_range(pager zx_pager, op flags[pager_op_range_opt], pager_vmo zx_handle, offset int64, length int64, data int64)
+
+# TODO: syscalls marked `@next` are not yet included in the VDSO and need an additional header included if we want to fuzz them.
+zx_pager_query_dirty_ranges(pager zx_pager, pager_vmo zx_vmo, offset int64, length int64, buffer ptr[out, void], buffer_size len[buffer], actual ptr[out, int64], avail ptr[out, int64]) (disabled)
+zx_pager_query_vmo_stats(pager zx_pager, pager_vmo zx_vmo, options int32, buffer ptr[out, void], buffer_size len[buffer]) (disabled)
+
+pager_create_opt = 0
+pager_create_vmo_opt = 0, ZX_VMO_RESIZABLE, ZX_VMO_TRAP_DIRTY, ZX_VMO_DISCARDABLE
+pager_op_range_opt = ZX_PAGER_OP_DIRTY, ZX_PAGER_OP_FAIL, ZX_PAGER_OP_WRITEBACK_BEGIN, ZX_PAGER_OP_WRITEBACK_END
diff --git a/sys/fuchsia/pager_amd64.const b/sys/fuchsia/pager_amd64.const
new file mode 100644
index 000000000..5da980231
--- /dev/null
+++ b/sys/fuchsia/pager_amd64.const
@@ -0,0 +1,4 @@
+ZX_PAGER_OP_FAIL = 1
+ZX_PAGER_OP_DIRTY = 2
+ZX_PAGER_OP_WRITEBACK_BEGIN = 3
+ZX_PAGER_OP_WRITEBACK_END = 4
diff --git a/sys/fuchsia/pager_arm64.const b/sys/fuchsia/pager_arm64.const
new file mode 100644
index 000000000..5da980231
--- /dev/null
+++ b/sys/fuchsia/pager_arm64.const
@@ -0,0 +1,4 @@
+ZX_PAGER_OP_FAIL = 1
+ZX_PAGER_OP_DIRTY = 2
+ZX_PAGER_OP_WRITEBACK_BEGIN = 3
+ZX_PAGER_OP_WRITEBACK_END = 4