TSEC: Difference between revisions

Line 1,807: Line 1,807:
| 9 || <invalid> || || || ||
| 9 || <invalid> || || || ||
|-
|-
| 0xA || chmod || $cX || immY || <code>if (immY & 3) ACL(X) = (ACL(X) & immY) &#124; 1; else ACL(X) = 0;</code> ||
| 0xA || chmod || $cX || immY || Complicated, see [[#ACL|ACL]]. ||
|-
|-
| 0xB || xor || $cX || $cY || <code>$cX ^= $cY;</code> || <code>(ACL(X) & 2) && (ACL(Y) & 2)</code>
| 0xB || xor || $cX || $cY || <code>$cX ^= $cY;</code> || <code>(ACL(X) & 2) && (ACL(Y) & 2)</code>
Line 1,843: Line 1,843:
!  Meaning
!  Meaning
|-
|-
| 0 || Readable as key. This is forced set if bit1 is set, the only way to clear it is to clear *both* bit0 and bit1.
| 0 || Secure key. Forced set if bit1 is set.
|-
|-
| 1 || Readable
| 1 || Secure readable. Once cleared, cannot be set again.
|-
| 2 || Insecure key. Forced set if bit3 is set. Forced clear if bit0 is clear. Can be toggled back and forth.
|-
| 3 || Insecure readable. Forced clear if bit1 is clear. Can be toggled back and forth.
|-
| 4 || Insecure overwritable.
|}
|}