endpoint_p - Minix

This is a discussion on endpoint_p - Minix ; Hi, I've read this thread because I was also wondering what the endpoint_p thing is all about I understand there are process id's, process numbers, pointers to proc structs in the proc table, and endpoint_p...would someone please explain to me ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: endpoint_p

  1. endpoint_p

    Hi,
    I've read this thread because I was also wondering what the endpoint_p
    thing is all about
    I understand there are process id's, process numbers, pointers to proc
    structs in the proc table, and endpoint_p...would someone please
    explain to me in more detail how all these are related to one another?

    Thanx in advance!!!


    Martin


  2. Re: endpoint_p

    All,

    > I've read this thread because I was also wondering what the endpoint_p
    > thing is all about


    A relevant past post is:
    http://groups.google.com/group/comp....4ba2788b640277

    > I understand there are process id's, process numbers, pointers to proc
    > structs in the proc table, and endpoint_p...would someone please
    > explain to me in more detail how all these are related to one another?


    A 'process id' or 'pid' is a userland phenomenon, maintained by PM.
    Only used for PM to identify processes with to user processes, and for
    user processes to identify processes with to PM. (Specifically, the usual
    unix system calls that take or return a pid.)

    Endpoints are maintaned by the kernel, and perform the same function
    as pids (see post linked above) to system processes (drivers and
    servers). Specifically, kernel calls (made to the SYSTEM process)
    that need to identify processes do so by giving endpoint numbers.

    As to why there are both pids and endpoint numbers performing the
    same kind of function, see this post:
    http://groups.google.com/group/comp....f0b0ee925a386b

    The original poster said 'endpoint_p' but must have meant 'p_endpoint'
    in the proc structure. The p_endpoint field in the proc structure
    contains the endpoint number (identifying a process to the kernel)
    for that process.

    Previously (before 3.1.2a), slot numbers were used to identify
    processes, but it happens too easily that processes get messages
    meant for processes that were in that slot previously. Perhaps
    that's what you meant by process numbers?

    Pointers to entries in the proc table also serve to identify
    processes, but this entirely internal to the kernel of course.

    =Ben



+ Reply to Thread