Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

posix_spawnattr_addpartid()

Specify a resource partition identifier that the spawned process should be associated with

Synopsis:

#include <posix_spawnattr.h>

int posix_spawnattr_addpartid(
       posix_spawnattr_t *_Restrict attrp,
       part_id_t part_id,
       part_dcmd_flags_t part_flags);

Arguments:

attrp
The posix_spawnattr_addpartid() function initializes a spawn attributes object attrp with the default value for all of the individual attributes used by the implementation.
part_flags
If the partition_path parameter does not refer to a real partition, then the part_flags argument will apply to all resolved “real” partitions referred to by the group name, or pseudo partition. This might result in an error if the flag does not apply to the partition type (as reported by the PART_TYPE() macro defined in part.h).
part_id
The partition identifier for the named partition.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

Specify a resource partition that the spawned process should be associated with by its partition identifier. If an ID is specified for a non-existent partition, it will not be known until the posix_spawn() call is made.


Note:

Two additional forms for this call, addmempartid() and addschedpartid(), are implemented as macros in spawn.h. The partition association only takes effect if the corresponding POSIX_SPAWN_SETMPART or POSIX_SPAWN_SETSPART flag is set. Setting one of these flags without providing a partition of that type may give unintended results.

This function is a QNX Neutrino extension to posix_spawnattr_t().

For information about inheritance rules as they apply to partition association, see the Adaptive Partitioning User Guide.


Returns:

The process ID of the child process, or -1 if an error occurs (errno is set).

Errors:

EINVAL
For any invalid parameter.
ENOMEM
If the partition Id couldn't be added to the attributes object.

Note: If this function fails and the partition_name provided is a group name, then it is unspecified how many of the pseudo partitions within the group name are added to the attributes object pointed to by attrp. For this scenario, we recommend that you destroy the attributes object, and initialize a new attributes object.

EOK
Success.

Note: Some partition association errors may not be reported until the posix_spawn() call is made.

If you add the partition identified by part_id posix_spawnattr_t object attrp, you'll get the following messages:

EINVAL
For any invalid parameter.
ENOMEM
If the partition Id couldn't be added to the attributes object.
EOK
Success.

Classification:

QNX Neutrino RTS

Safety:
Cancellation point No
Interrupt handler Yes
Signal handler Yes
Thread Yes

See also:

posix_spawn(), posix_spawn_file_actions_addclose(), posix_spawn_file_actions_adddup2(), posix_spawn_file_actions_addopen(), posix_spawn_file_actions_destroy(), posix_spawn_file_actions_init(), posix_spawnattr_addpartid(), posix_spawnattr_addpartition(), posix_spawnattr_destroy(), posix_spawnattr_getcred(), posix_spawnattr_getflags(), posix_spawnattr_getnode(), posix_spawnattr_getpartid(), posix_spawnattr_getpgroup(), posix_spawnattr_getrunmask(), posix_spawnattr_getschedparam(), posix_spawnattr_getschedpolicy(), posix_spawnattr_getsigdefault(), posix_spawnattr_getsigignore(), posix_spawnattr_getsigmask(), posix_spawnattr_getstackmax(), posix_spawnattr_getxflags(), posix_spawnattr_init(), posix_spawnattr_setcred(), posix_spawnattr_setflags(), posix_spawnattr_setnode(), posix_spawnattr_setpgroup(), posix_spawnattr_setschedparam(), posix_spawnattr_setrunmask(), posix_spawnattr_setschedpolicy(), posix_spawnattr_setsigdefault(), posix_spawnattr_setsigignore(), posix_spawnattr_setsigmask(), posix_spawnattr_setstackmax(), posix_spawnattr_setxflags(), posix_spawnp()