posix_spawnattr_addpartition()

Add a resource partition to the spawned process

Synopsis:

#include <spawn.h>

int posix_spawnattr_addpartition(
       posix_spawnattr_t *_Restrict attrp,
       const char *partition_path,
       part_dcmd_flags_t part_flags);

Arguments:

attrp
The spawn file attribute object.
part_flags
If the partition_path parameter doesn't 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 doesn't apply to the partition type (as reported by the PART_TYPE() macro defined in part.h).
partition_path
A path to the partition. Given a full partition path, determine the path type (memory/sched/ etc.) and return a pointer to the name suffix (i.e. the portion of the name after /partition/mem/ or /partition/sched/), if possible.

Library:

libc

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

Description:

The posix_spawnattr_addpartition() function specifies a resource partition that the spawned process should be associated, and it's the most convenient form of adding partition associations because it accepts a partition name rather than an ID.

Partition names can either be group names, pseudo partitions or real partitions, and are always resolved to a “real” partition; otherwise, an error is returned.

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 result in unintended results. For information about inheritance rules as they apply to partition association, see the Adaptive Partitioning Users Guide.


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

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's 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.

Classification:

QNX Neutrino

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_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()