pm(3) pm(3)
pm_create, pm_create_simple, pm_filldefault, pm_destroy, pm_attach,
pm_setdefault, pm_getdefault, pm_getall, pm_getstat, pm_setpagesize -
Policy Module operations
#include <sys/types.h>
#include <sys/pmo.h>
pmo_handle_t pm_create(policy_set_t* policy_set)
pmo_handle_t
pm_create_simple(char* plac_name,
void* plac_args,
char* repl_name,
void* repl_args,
size_t page_size)
void pm_filldefault(policy_set_t* policy_set)
int pm_destroy(pmo_handle_t pm_handle)
int pm_attach(pmo_handle_t pm_handle, void* base_addr, size_t length)
pmo_handle_t pm_setdefault(pmo_handle_t pm_handle,
mem_type_t mem_type)
pmo_handle_t pm_getdefault(mem_type_t mem_type)
int pm_getall(void* base_addr, size_t length,
pmo_handle_list_t* pmo_handle_list)
int pm_getstat(pmo_handle_t pm_handle, pm_stat_t* pm_stat)
int pm_setpagesize(pmo_handle_t pm_handle, size_t page_size)
pm_create creates a policy module.
pm_create_simple creates a policy module with some predefined defaults.
pm_filldefault fills a policy_set with predefined default values.
pm_destroy destroys a policy module.
pm_attach connects a policy module to a virtual address space range.
pm_setdefault sets the default policy modules for a process' address
space.
Page 1
pm(3) pm(3)
pm_getdefault retrieves the current default policy modules associated
with a process' address space.
pm_getall retrieves all the policy modules associated with an address
space range.
pm_getstat retrieves the current state of a policy module (policies and
parameters for a specific policy module).
pm_setpagesize sets and synchronizes the page size for a policy module.
pm_create and pm_create_simple will fail and a policy module will not be
created if one or more of the following are true:
EBUSY The policy module structures were temporarily in use by
another thread.
EFAULT Arguments could not be copied into kernel space.
EINVAL One or more of the specified policy settings are invalid.
pm_destroy will fail and the policy module will not be destroyed if the
following is true:
EINVAL The specified pm_handle is invalid or does not exist.
pm_attach will fail and no policy module will be attached to a virtual
address space range if one or more of the following is true:
EFAULT Arguments could not be copied into kernel space.
EINVAL The specified pm_handle is invalid or does not exist.
EINVAL The summation of the specified base_addr plus the length
are less than the specified base_addr. This condition can
occur if the base_addr plus length wrap around the upper
limit of the virtual address range.
pm_setdefault will fail and the default policy modules will not be set if
the following is true:
EINVAL The specified memory type is invalid.
pm_getdefault will fail and no values will be returned if one or more of
the following are true:
EINVAL The specified memory type is invalid.
pm_getall will fail and no values will be returned if one or more of the
following are true:
Page 2
pm(3) pm(3)
EFAULT Arguments could not be copied into or out of kernel space.
EINVAL The specified list length is less than 1.
E2BIG The specified list length is greater than the maximum
supported length.
pm_getstat will fail and the policy module state will not be retrieved if
one or more of the following are true:
EFAULT Data could not be copied out of kernel space.
EINVAL The specified pm_handle is invalid or does not exist.
pm_setpagesize will fail and the policy module page size will be
unaffected if one or more of the following is true:
EINVAL The specified pm_handle is invalid or does not exist.
EINVAL The specified page size is invalid.
numa(5), mmci(5), mldset(3c), mld(3c), migration(3c), pminfo(3c).
Upon successful completion, pm_create and pm_create_simple return a value
of type pmo_handle_t that represents the created policy module,
pm_destroy and pm_attach, pm_getdefault, pm_setdefault, pm_getall,
pm_getstat and pm_setpagesize return 0. Otherwise, a value of -1 is
returned and errno is set to indicate the error.
PPPPaaaaggggeeee 3333 [ Back ]
|