previous | start | next

SELF and the isokendpt function/macro

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.


previous | start | next