// 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.

// TODO(fxb/39732): This should be read as "library zx".
library zz;

// TODO(scottmg): (1 << 4) notation or something else for bits would be nice.
bits rights : uint32 {
    // TODO(scottmg): "bits members must be powers of two"
    // NONE =           0x00000000;
    DUPLICATE =      0x00000001;
    TRANSFER =       0x00000002;
    READ =           0x00000004;
    WRITE =          0x00000008;
    EXECUTE =        0x00000010;
    MAP =            0x00000020;
    GET_PROPERTY =   0x00000040;
    SET_PROPERTY =   0x00000080;
    ENUMERATE =      0x00000100;
    DESTROY =        0x00000200;
    SET_POLICY =     0x00000400;
    GET_POLICY =     0x00000800;
    SIGNAL =         0x00001000;
    SIGNAL_PEER =    0x00002000;
    WAIT =           0x00004000;
    INSPECT =        0x00008000;
    MANAGE_JOB =     0x00010000;
    MANAGE_PROCESS = 0x00020000;
    MANAGE_THREAD =  0x00040000;
    APPLY_PROFILE =  0x00080000;
    SAME_RIGHTS =    0x80000000;

    // TODO(scottmg): Derived settings using |, &, ~, e.g.:
    // BASIC = (TRANSFER | DUPLICATE | WAIT | INSPECT);
};
