Skip to content

Commit

Permalink
Explain that stores of tag+capability data are atomic
Browse files Browse the repository at this point in the history
  • Loading branch information
arichardson committed May 13, 2020
1 parent 83a24f4 commit ed7618a
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions cheri-c-programming.tex
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,10 @@ \subsection{Architectural rules for capability use}
userspace buffer when a pointer to the buffer is passed as a
system-call argument.

The hardware furthermore guarantees that capability tags and capability data is written atomically.
For example, if one thread stores a valid capability and another writes arbitrary data to the same location, it is impossible to observe the arbitrary data with the validity bit set.
% \arnote{I guess the other way around is fine? I.e. capability data but \textbf{without} the tag?}

These architectural properties provide the foundation on which a
capability-based OS, compiler, and runtime can implement C/\cpp{}-language memory
safety.
Expand Down

0 comments on commit ed7618a

Please sign in to comment.