| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "tools/kazoo/outputs.h" |
| #include "tools/kazoo/syscall_library.h" |
| #include "tools/kazoo/test.h" |
| #include "tools/kazoo/test_ir_test_go_reserved_words.test.h" |
| #include "tools/kazoo/test_ir_test_selection.test.h" |
| |
| namespace { |
| |
| TEST(GoSyscallsStubs, Selection) { |
| SyscallLibrary library; |
| ASSERT_TRUE(SyscallLibraryLoader::FromJson(k_test_selection, &library)); |
| |
| Writer writer; |
| ASSERT_TRUE(GoSyscallsStubs(library, &writer)); |
| |
| EXPECT_EQ(writer.Out(), |
| R"(// Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT. |
| |
| package zx |
| |
| import "unsafe" |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_selection_futex_requeue(value_ptr *int32, wake_count uint32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_selection_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_selection_ktrace_read(handle Handle, data unsafe.Pointer, offset uint32, data_size uint, actual *uint) Status |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_selection_pci_cfg_pio_rw(handle Handle, bus uint8, dev uint8, funk uint8, offset uint8, val *uint32, width uint, write bool) Status |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_selection_job_set_policy(handle Handle, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) Status |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_selection_clock_get(clock_id uint32, out *Time) Status |
| |
| )"); |
| } |
| |
| TEST(GoSyscallsStubs, ReservedWords) { |
| SyscallLibrary library; |
| ASSERT_TRUE(SyscallLibraryLoader::FromJson(k_test_go_reserved_words, &library)); |
| |
| Writer writer; |
| ASSERT_TRUE(GoSyscallsStubs(library, &writer)); |
| |
| EXPECT_EQ(writer.Out(), |
| R"(// Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT. |
| |
| package zx |
| |
| import "unsafe" |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_reservedwords_my_func(typ uint32, funk uint32, g_ uint32) Status |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_reservedwords_pci_types(bar *uintptr, initarg *uintptr, device_info *uintptr) Status |
| |
| )"); |
| } |
| |
| TEST(GoSyscallsAsm, Selection) { |
| SyscallLibrary library; |
| ASSERT_TRUE(SyscallLibraryLoader::FromJson(k_test_selection, &library)); |
| |
| Writer writer; |
| ASSERT_TRUE(GoSyscallsAsm(library, &writer)); |
| |
| EXPECT_EQ(writer.Out(), |
| R"(// Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT. |
| |
| #include "textflag.h" |
| |
| // func Sys_selection_futex_requeue(value_ptr *int32, wake_count uint32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status |
| TEXT ·Sys_selection_futex_requeue(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_selection_futex_requeue(SB) |
| |
| // func Sys_selection_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status |
| TEXT ·Sys_selection_object_wait_one(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_selection_object_wait_one(SB) |
| |
| // func Sys_selection_ktrace_read(handle Handle, data unsafe.Pointer, offset uint32, data_size uint, actual *uint) Status |
| TEXT ·Sys_selection_ktrace_read(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_selection_ktrace_read(SB) |
| |
| // func Sys_selection_pci_cfg_pio_rw(handle Handle, bus uint8, dev uint8, funk uint8, offset uint8, val *uint32, width uint, write bool) Status |
| TEXT ·Sys_selection_pci_cfg_pio_rw(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_selection_pci_cfg_pio_rw(SB) |
| |
| // func Sys_selection_job_set_policy(handle Handle, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) Status |
| TEXT ·Sys_selection_job_set_policy(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_selection_job_set_policy(SB) |
| |
| // func Sys_selection_clock_get(clock_id uint32, out *Time) Status |
| TEXT ·Sys_selection_clock_get(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_selection_clock_get(SB) |
| |
| )"); |
| } |
| |
| } // namespace |