This subsection defines what resource reservations each process is allowed to create or use.
In Eclipse/BSD, a process P's reservation domain is the list of P's internal root reservations, one for for each resource. Queue q0 of process P's root reservation r is called P's default queue for the respective resource. A process P can list any directory under /reserv and open and read any share or backlog file, but can write on share or backlog files or open newreserv or newqueue files (i.e., create children) only in reservations that are equal to or descend from one of P's root reservations.
The reservation domain of a process pid is represented by a new read-only file, /proc/pid/rdom, added to FreeBSD's proc file system (where rdom stands for ``reservation domain''). For example, /proc/103/rdom could contain:
/reserv/cpu/r2 /reserv/mem/r1 /reserv/fxp0/r0 /reserv/sd0/r3meaning that process 103 has root CPU reservation r2, root memory reservation r1, root network reservation r0, and root disk reservation r3. If process 104 is in the same reservation domain, /proc/104/rdom would have the same contents. The reservation domain of the current process is also named /proc/curproc/rdom.
The reservation domain of processes spawned by a process pid is given by the new file /proc/pid/crdom (where crdom stands for ``child reservation domain''). When a child is forked, its rdom and crdom files are initialized to the contents of the parent's crdom file. File /proc/pid/crdom is writable by any process with the same effective user id as that of process pid, or by the super-user. Writing into crdom files is checked for consistency and may fail: For each root reservation r in /proc/pid/rdom, /proc/pid/crdom must contain an internal reservation r' that is equal to or descends from r.