| // 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") |
| protocol HandleOwnership { |
| fun0(resource struct { |
| in vector<handle>; |
| }) -> (resource struct { |
| out vector<handle>; |
| }); |
| fun1(resource struct { |
| @release |
| in vector<handle>; |
| }); |
| fun2(resource struct { |
| @use |
| in vector<handle>; |
| }) -> (resource struct { |
| @use |
| out vector<handle>; |
| }); |
| fun3(resource struct { |
| in vector<handle>; |
| }) -> (resource struct { |
| @acquire |
| out vector<handle>; |
| }); |
| fun4(resource struct { |
| in handle; |
| }) -> (resource struct { |
| status status; |
| out handle; |
| }); |
| fun5(resource struct { |
| @release |
| in handle; |
| }) -> (resource struct { |
| status status; |
| @use |
| out handle; |
| }); |
| @handle_unchecked |
| fun6(resource struct { |
| in vector<handle>; |
| }) -> (resource struct { |
| out vector<handle>; |
| }); |
| }; |