In most cases the computation of
isokendpt(endpt, &proc_nr)
is evaluated like this:
*proc_nr = _ENDPOINT_P(endpt) where _ENDPOINT_P is defined by #define _ENDPOINT_P(e) \ ((((e)+NR_TASKS) % _ENDPOINT_GENERATION_SIZE) - NR_TASKS) NR_TASKS = 4 _ENDPOINT_GENERATION_SIZE = 4 + SELF + 1 _ENDPOINT_P(e) = ( (e + 4) % (SELF + 5) ) - 4 Proc number = endpoint _ENDPOINT_P(endpoint) Process manager's 0 File System server 1 Reincarnation server 2 init 7 emacs 71089 (71093 % 35539) - 4 = 11 * SELF (SELF + 4) % (SELF + 5) - 4 = SELF emacs process is at entry 11 of the mproc table emacs process is at entry 15 of the proc table * The formula for SELF yields SELF, but it is neither a valid endpoint or a valid process number.