pconf
pconf(flags, cp->child, buf, strlen(buf), limit);
pconf(flags, cp->next, buf, offset, limit);
pconf(flags, croot->child, buf, 0, MAXCONFLINE);
FILE *pconf;
if ((pconf = fopen(POLICY_CONF_FILE, "rF")) == NULL) {
while (!feof(pconf) &&
(fgets(line, sizeof (line), pconf) != NULL)) {
(void) fclose(pconf);
create_tmp_pset(char *pool_err, int err_size, pool_conf_t *pconf, pool_t *pool,
if ((res = pool_resource_create(pconf, "pset", name)) == NULL)
if (pool_associate(pconf, pool, res) != PO_SUCCESS)
if ((elem = pool_resource_to_elem(pconf, res)) == NULL)
if (pool_put_property(pconf, elem, "pset.max", val) != PO_SUCCESS) {
if (pool_put_property(pconf, elem, "pset.min", val) != PO_SUCCESS) {
create_tmp_pool(char *pool_err, int err_size, pool_conf_t *pconf, char *name,
if (pool_conf_open(pconf, NULL, PO_TEMP) != PO_SUCCESS) {
if ((pool = pool_create(pconf, name)) == NULL) {
if ((elem = pool_to_elem(pconf, pool)) == NULL) {
if (pool_put_property(pconf, elem, "pool.importance", val)
if ((res = create_tmp_pset(pool_err, err_size, pconf, pool, name,
if (pool_conf_status(pconf) == POF_INVALID) {
if (pool_conf_validate(pconf, POV_RUNTIME) != PO_SUCCESS) {
if (pool_conf_commit(pconf, 1) != PO_SUCCESS)
(void) pool_conf_close(pconf);
get_running_tmp_pset(pool_conf_t *pconf, pool_t *pool, pool_resource_t *pset,
pe = pool_to_elem(pconf, pool);
if (pool_get_property(pconf, pe, "pool.importance", pv)
pe = pool_resource_to_elem(pconf, pset);
if (pool_get_property(pconf, pe, "pset.min", pv) != POC_INVAL) {
if (pool_get_property(pconf, pe, "pset.max", pv) != POC_INVAL) {
verify_del_tmp_pool(pool_conf_t *pconf, char *tmp_name, char *pool_err,
if (pool_conf_open(pconf, pool_dynamic_location(), PO_RDWR)
pool = pool_get_pool(pconf, tmp_name);
pset = pool_get_resource(pconf, "pset", tmp_name);
if (get_running_tmp_pset(pconf, pool, pset, &pset_current)
pool_resource_destroy(pconf, pset) != PO_SUCCESS) {
pool_destroy(pconf, pool) != PO_SUCCESS) {
if (pool_conf_commit(pconf, 0) != PO_SUCCESS)
(void) pool_conf_close(pconf);
pool_conf_t *pconf;
if ((pconf = pool_conf_alloc()) == NULL)
if (pool_conf_open(pconf, pool_dynamic_location(), PO_RDWR)
pool_conf_free(pconf);
pool = pool_get_pool(pconf, tmp_name);
pset = pool_get_resource(pconf, "pset", tmp_name);
if (pset != NULL && pool_resource_destroy(pconf, pset) != PO_SUCCESS) {
if (pool != NULL && pool_destroy(pconf, pool) != PO_SUCCESS) {
if (pool_conf_commit(pconf, 0) != PO_SUCCESS)
(void) pool_conf_close(pconf);
pool_conf_free(pconf);
pool_conf_t *pconf;
if ((pconf = pool_conf_alloc()) == NULL)
if ((err = verify_del_tmp_pool(pconf, tmp_name, pool_err, err_size,
pool_conf_free(pconf);
err = create_tmp_pool(pool_err, err_size, pconf, tmp_name,
pool_conf_free(pconf);
ppm_db_t **dbpp, *pconf;
for (dbpp = &domp->conflist; (pconf = *dbpp) != NULL; ) {
if (strcmp(pconf->name, path) != 0) {
dbpp = &pconf->next;
*dbpp = pconf->next;
kmem_free(pconf->name, strlen(pconf->name) + 1);
kmem_free(pconf, sizeof (*pconf));