The annotations were originally written by Brooks Davis, for the cheribsd
project, I just made a few changes to bring them up to speed with freebsd
current with help from Brooks.
The immediate motivation for this is to support automatically generating
code for a record/replay system that will stay consistent with the system
Other potential uses include: dynamic bound checking system call inputs
(the original motivation in cheribsd), static analysis (the original use
for SAL), automatic test generation (which Brooks has a student looking
at), and a variety of other potential uses where one would like
to automatically generate code to deal with the system call interface
without having to deal with the tedium and error prone nature of doing the
by hand, and have to worry about this drifting from version to version.
What is the impact:
Since these annotations are stripped out before code is generated from
syscalls.master their impact on the system is minimal.