blob: 474320e3aaf5af87b536e8e17c0e08b1e769e7ef [file] [log] [blame]
// 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 job {
// TODO(fxbug.dev/32803): parent_job with ZX_RIGHT_WRITE is also accepted.
/// Create a new job.
/// Rights: parent_job must be of type ZX_OBJ_TYPE_JOB and have ZX_RIGHT_MANAGE_JOB.
job_create(resource struct {
parent_job handle:JOB;
options uint32;
}) -> (resource struct {
status status;
out handle:JOB;
});
/// Set job security and resource policies.
/// Rights: handle must be of type ZX_OBJ_TYPE_JOB and have ZX_RIGHT_SET_POLICY.
job_set_policy(resource struct {
handle handle:JOB;
options uint32;
topic uint32;
policy vector_void_u32size;
}) -> (struct {
status status;
});
/// Set a process as critical to a job.
/// Rights: job must have ZX_RIGHT_DESTROY.
/// Rights: process must have ZX_RIGHT_WAIT.
job_set_critical(resource struct {
job handle:JOB;
options uint32;
process handle:PROCESS;
}) -> (struct {
status status;
});
};