| // 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); | 
 | }; |