[BSG] Three numbers associated with every segment defining the highest ring which can write in it, the highest ring which can read it (must be equal or larger than the preceding), and the highest ring (if greater than the preceding) which can call it as a gate. Non-gate executable segments have the last two numbers equal, lest some ring be able to influence the execution of an inner (lower-numbered, less privileged) ring by writing the segment. The more rings can write a segment, the fewer can use it. Here are some examples of ring brackets:
0,0,5 >sl1>hcs_ Gate into ring 0
1,1,5 >sl1>ms_ Gate into ring 1
1,5,5 >sss>ls Standard system command
4,4,4 >udd>m>vv>fred Random user's program
In this example, the ls command can be used by any ring from 1 to 5. Calls to hcs_ from rings 1 to 5 cause an inward ring crossing to ring 0. Calls to ms_ from rings 2 to 5 cause an inward ring crossing to ring 1. Attempts to call ms_ or ls from ring 0 will get an attempt-to-execute-data fault.