13.11 kill (3630)

This procedure implements the “kill” system call to cause a specified type of software interrupt to another designated process.

3637:

If “a” is non-zero, it is the process identifying number of a process to be interrupted. If “a” is zero, then all processes originating from the same terminal as the current process are to be interrupted;

3639:

Consider each entry in the “proc” table in turn and reject it if: it is the current process (3640); it is not the designated process (3642); no particular process was designated (“a” == 0) but it does not have the same controlling terminal or it is one of the two initial processes (3644); the user is not the “super user” and the user identities do not match (3646);

3649:

For any process that survives the above tests, call “psignal” to change “p_sig”.