#include <exec/chExec.h> #include <ipc/chId.h> #include <ipc/chIpc.h>int actorPi(KnCap *actorcap, KnProtId *oldpi, KnProtId *newpi);
The function or functions documented here may not be used safely in all application contexts with all APIs provided in the ChorusOS 5.0 product.
See API(5FEA) for details.
The actorPi() call gets and/or sets the protection identifier of the actor whose capability is given by actorcap. If actorcap is K_MYACTOR, the operation is applied to the current actor.
The oldpi and newpi pointers indicate KnProtId structures. The structure of KnProtId is described in portPi(2K). The corresponding actor's protection identifier is copied to the structure pointed to by oldpi in the client address space. The new corresponding context is copied from the structure pointed to by newpi.
If oldpi is a NULL pointer, the actor's protection identifier is not copied in the caller's address space. If newpi is a NULL pointer, the actor's protection identifier is not modified. The calling thread must be a supervisor thread (see threadCreate(2K)) or must belong to a system actor (see actorCreate(2K)).
A value of 0 is returned upon successful completion. Otherwise, a negative error code is returned.
actorcap is an inconsistent actor capability.
actorcap does not specify a reachable actor.
Some of the data provided are outside the current actor's address space.
The current thread is neither a supervisor thread nor a thread of a system actor.
The target actor and the current actor must be located on the same site.
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|