| // 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. |
| library zx; |
| |
| @transport("Syscall") |
| @no_protocol_prefix |
| protocol handlefuncs { |
| /// Close a handle. |
| /// Rights: None. |
| handle_close(resource struct { |
| @release |
| handle handle; |
| }) -> (struct { |
| status status; |
| }); |
| |
| /// Close a number of handles. |
| /// Rights: None. |
| handle_close_many(resource struct { |
| @release |
| handles vector<handle>; |
| }) -> (struct { |
| status status; |
| }); |
| |
| /// Duplicate a handle. |
| /// Rights: handle must have ZX_RIGHT_DUPLICATE. |
| handle_duplicate(resource struct { |
| handle handle; |
| rights rights; |
| }) -> (resource struct { |
| status status; |
| out handle; |
| }); |
| |
| /// Replace a handle. |
| /// Rights: None. |
| handle_replace(resource struct { |
| @release |
| handle handle; |
| rights rights; |
| }) -> (resource struct { |
| status status; |
| out handle; |
| }); |
| }; |