Process-in-Process
|
Functions | |
int | pip_named_export (void *exp, const char *format,...) __attribute__((format(printf |
export an address of the calling PiP root or a PiP task to the others. More... | |
int int | pip_named_import (int pipid, void **expp, const char *format,...) __attribute__((format(printf |
import the named exported address More... | |
int int int | pip_named_tryimport (int pipid, void **expp, const char *format,...) __attribute__((format(printf |
import the named exported address (non-blocking) More... | |
int int int int | pip_export (void *exp) |
export an address More... | |
int | pip_import (int pipid, void **expp) |
import exported address of a PiP task More... | |
int | pip_set_aux (void *aux) |
Associate user data with a PiP task. More... | |
int | pip_get_aux (void **auxp) |
Retrieve the user data associated with a PiP task. More... | |
int | pip_get_dlmopen_info (int pipid, void **handlep, long *lmidp) |
Retrieve the loaded link map info. of the specified Pip task. More... | |
int pip_named_export | ( | void * | exp, |
const char * | format, | ||
... | |||
) |
pip_export
and pip_import
functions which can only export one address per task, pip_named_export
and pip_named_import
can associate a name with an address so that PiP root or PiP task can exchange arbitrary number of addressess.[in] | exp | an address to be passed to the other PiP task |
[in] | format | a printf format to give the exported address a name. If this is NULL , then the name is assumed to be "". |
EPERM | pip_init is not yet called. |
EBUSY | The name is already registered. |
ENOMEM | Not enough memory |
int int pip_named_import | ( | int | pipid, |
void ** | expp, | ||
const char * | format, | ||
... | |||
) |
[in] | pipid | The PiP ID to import the exposed address |
[out] | expp | The starting address of the exposed region of the PiP task specified by the pipid. |
[in] | format | a printf format to give the exported address a name |
EPERM | pip_init is not yet called. |
EINVAL | The specified pipid is invalid |
ENOMEM | Not enough memory |
ECANCELED | The target task is terminated |
EDEADLK | pipid is the calling task and tries to block itself |
int int int pip_named_tryimport | ( | int | pipid, |
void ** | expp, | ||
const char * | format, | ||
... | |||
) |
EAGAIN
.[in] | pipid | The PiP ID to import the exposed address |
[out] | expp | The starting address of the exposed region of the PiP task specified by the pipid. |
[in] | format | a printf format to give the exported address a name |
EPERM | pip_init is not yet called. |
EINVAL | The specified pipid is invalid |
ENOMEM | Not enough memory |
ECANCELED | The target task is terminated |
EAGAIN | Target is not exported yet |
int int int int pip_export | ( | void * | exp | ) |
[in] | exp | An addresss |
EPERM | PiP library is not initialized yet |
int pip_import | ( | int | pipid, |
void ** | expp | ||
) |
NULL
is returned.[in] | pipid | The PiP ID to import the exportedaddress |
[out] | expp | The exported address |
EPERM | PiP library is not initialized yet |
int pip_set_aux | ( | void * | aux | ) |
[in] | aux | Pointer to the user dats to assocate with the calling PiP task |
EPERM | PiP library is not yet initialized or already finalized |
int pip_get_aux | ( | void ** | auxp | ) |
[out] | auxp | Returned user data |
EINAVL | domainp is NULL or auxp is NULL |
EPERM | PiP library is not yet initialized or already finalized |
int pip_get_dlmopen_info | ( | int | pipid, |
void ** | handlep, | ||
long * | lmidp | ||
) |
[in] | pipid | The PiP ID |
[out] | handlep | loaded handle |
[out] | lmidp | Lmid |
EPERM | PiP library is not yet initialized or already finalized |