Lines Matching defs:handle
161 * and lower limit. The functions that handle rctl aliases step through
298 zone_dochandle_t handle = calloc(1, sizeof (struct zone_dochandle));
299 if (handle == NULL) {
312 return (handle);
316 zonecfg_check_handle(zone_dochandle_t handle)
318 if (handle == NULL || handle->zone_dh_doc == NULL)
324 zonecfg_fini_handle(zone_dochandle_t handle)
326 if (zonecfg_check_handle(handle) == Z_OK)
327 xmlFreeDoc(handle->zone_dh_doc);
328 if (handle != NULL)
329 free(handle);
416 getroot(zone_dochandle_t handle, xmlNodePtr *root)
418 if (zonecfg_check_handle(handle) == Z_BAD_HANDLE)
421 *root = xmlDocGetRootElement(handle->zone_dh_doc);
433 operation_prep(zone_dochandle_t handle)
438 if ((err = getroot(handle, &root)) != 0)
441 handle->zone_dh_cur = root;
442 handle->zone_dh_top = root;
477 getrootattr(zone_dochandle_t handle, const xmlChar *propname,
483 if ((err = getroot(handle, &root)) != 0)
490 get_alloc_rootattr(zone_dochandle_t handle, const xmlChar *propname,
496 if ((err = getroot(handle, &root)) != 0)
503 setrootattr(zone_dochandle_t handle, const xmlChar *propname,
509 if ((err = getroot(handle, &root)) != Z_OK)
527 addcomment(zone_dochandle_t handle, const char *comment)
533 (void) xmlAddPrevSibling(handle->zone_dh_top, node);
537 stripcomments(zone_dochandle_t handle)
542 top = handle->zone_dh_doc;
556 strip_sw_inv(zone_dochandle_t handle)
560 root = xmlDocGetRootElement(handle->zone_dh_doc);
575 zone_dochandle_t handle)
584 if ((handle->zone_dh_doc = xmlParseFile(filename)) == NULL) {
594 valid = xmlValidateDocument(cvp, handle->zone_dh_doc);
600 stripcomments(handle);
605 zonecfg_get_handle(const char *zonename, zone_dochandle_t handle)
611 handle->zone_dh_newzone = B_FALSE;
613 return (zonecfg_get_handle_impl(zonename, path, handle));
618 const char *zonename, boolean_t preserve_sw, zone_dochandle_t handle)
635 if ((err = zonecfg_get_handle_impl(zonename, migpath, handle)) != Z_OK)
639 strip_sw_inv(handle);
641 handle->zone_dh_newzone = B_TRUE;
642 if ((err = setrootattr(handle, DTD_ATTR_ZONEPATH, path)) != Z_OK)
645 return (setrootattr(handle, DTD_ATTR_NAME, zonename));
649 zonecfg_get_snapshot_handle(const char *zonename, zone_dochandle_t handle)
655 handle->zone_dh_newzone = B_FALSE;
656 return (zonecfg_get_handle_impl(zonename, path, handle));
661 zone_dochandle_t handle)
669 if ((err = zonecfg_get_handle_impl(template, path, handle)) != Z_OK)
671 handle->zone_dh_newzone = B_TRUE;
672 return (setrootattr(handle, DTD_ATTR_NAME, zonename));
676 zonecfg_get_xml_handle(const char *path, zone_dochandle_t handle)
684 if ((err = zonecfg_get_handle_impl("xml", path, handle)) != Z_OK)
686 handle->zone_dh_newzone = B_TRUE;
703 /* load the manifest into the handle for the remote system */
723 * Now use the remote system handle to generate a local system handle
753 is_renaming(zone_dochandle_t handle)
755 if (handle->zone_dh_newzone)
757 if (strlen(handle->zone_dh_delete_name) > 0)
763 is_new(zone_dochandle_t handle)
765 return (handle->zone_dh_newzone || handle->zone_dh_snapshot);
769 is_snapshot(zone_dochandle_t handle)
771 return (handle->zone_dh_snapshot);
811 zonecfg_get_name(zone_dochandle_t handle, char *name, size_t namesize)
813 return (getrootattr(handle, DTD_ATTR_NAME, name, namesize));
817 insert_admins(zone_dochandle_t handle, char *zonename)
822 if ((err = zonecfg_setadminent(handle)) != Z_OK) {
825 while (zonecfg_getadminent(handle, &admintab) == Z_OK) {
826 err = zonecfg_insert_userauths(handle,
829 (void) zonecfg_endadminent(handle);
833 (void) zonecfg_endadminent(handle);
838 zonecfg_set_name(zone_dochandle_t handle, char *name)
844 if ((err = getrootattr(handle, DTD_ATTR_NAME, curname,
865 if (strcmp(name, handle->zone_dh_delete_name) == 0) {
866 err = setrootattr(handle, DTD_ATTR_NAME, name);
867 handle->zone_dh_delete_name[0] = '\0';
880 (void) strlcpy(old_delname, handle->zone_dh_delete_name,
882 if (!is_new(handle) && !is_renaming(handle)) {
895 (void) strlcpy(handle->zone_dh_delete_name, curname,
896 sizeof (handle->zone_dh_delete_name));
897 assert(is_renaming(handle));
898 } else if (is_renaming(handle)) {
899 err = zone_get_state(handle->zone_dh_delete_name, &state);
908 if ((err = setrootattr(handle, DTD_ATTR_NAME, name)) != Z_OK) {
913 (void) strlcpy(handle->zone_dh_delete_name, old_delname,
914 sizeof (handle->zone_dh_delete_name));
922 if ((err = insert_admins(handle, curname)) != Z_OK)
929 zonecfg_get_zonepath(zone_dochandle_t handle, char *path, size_t pathsize)
935 return (getrootattr(handle, DTD_ATTR_ZONEPATH, path + len,
940 zonecfg_set_zonepath(zone_dochandle_t handle, char *zonepath)
975 ret = setrootattr(handle, DTD_ATTR_ZONEPATH, curr_mp);
981 i_zonecfg_get_brand(zone_dochandle_t handle, char *brand, size_t brandsize,
986 ret = getrootattr(handle, DTD_ATTR_BRAND, brand, brandsize);
1008 zonecfg_get_brand(zone_dochandle_t handle, char *brand, size_t brandsize)
1010 return (i_zonecfg_get_brand(handle, brand, brandsize, B_FALSE));
1014 zonecfg_set_brand(zone_dochandle_t handle, char *brand)
1016 return (setrootattr(handle, DTD_ATTR_BRAND, brand));
1020 zonecfg_get_autoboot(zone_dochandle_t handle, boolean_t *autoboot)
1025 if ((ret = getrootattr(handle, DTD_ATTR_AUTOBOOT, autobootstr,
1039 zonecfg_set_autoboot(zone_dochandle_t handle, boolean_t autoboot)
1041 return (setrootattr(handle, DTD_ATTR_AUTOBOOT,
1046 zonecfg_get_pool(zone_dochandle_t handle, char *pool, size_t poolsize)
1048 return (getrootattr(handle, DTD_ATTR_POOL, pool, poolsize));
1052 zonecfg_set_pool(zone_dochandle_t handle, char *pool)
1054 return (setrootattr(handle, DTD_ATTR_POOL, pool));
1058 zonecfg_get_limitpriv(zone_dochandle_t handle, char **limitpriv)
1060 return (get_alloc_rootattr(handle, DTD_ATTR_LIMITPRIV, limitpriv));
1064 zonecfg_set_limitpriv(zone_dochandle_t handle, char *limitpriv)
1066 return (setrootattr(handle, DTD_ATTR_LIMITPRIV, limitpriv));
1070 zonecfg_get_bootargs(zone_dochandle_t handle, char *bargs, size_t bargssize)
1072 return (getrootattr(handle, DTD_ATTR_BOOTARGS, bargs, bargssize));
1076 zonecfg_set_bootargs(zone_dochandle_t handle, char *bargs)
1078 return (setrootattr(handle, DTD_ATTR_BOOTARGS, bargs));
1082 zonecfg_get_sched_class(zone_dochandle_t handle, char *sched, size_t schedsize)
1084 return (getrootattr(handle, DTD_ATTR_SCHED, sched, schedsize));
1088 zonecfg_set_sched(zone_dochandle_t handle, char *sched)
1090 return (setrootattr(handle, DTD_ATTR_SCHED, sched));
1105 zonecfg_refresh_index_file(zone_dochandle_t handle)
1116 if ((err = zonecfg_get_name(handle, name, sizeof (name))) != Z_OK)
1120 if ((err = zonecfg_get_zonepath(handle, zonepath,
1126 if (is_renaming(handle)) {
1128 (void) strlcpy(ze.zone_name, handle->zone_dh_delete_name,
1131 } else if (is_new(handle)) {
1192 zonecfg_save_impl(zone_dochandle_t handle, char *filename)
1219 valid = xmlValidateDocument(&cvp, handle->zone_dh_doc);
1222 if (xmlSaveFormatFile(tmpfile, handle->zone_dh_doc, 1) <= 0)
1232 if (!is_new(handle) && !is_renaming(handle)) {
1266 if (is_snapshot(handle))
1270 if ((err = zonecfg_refresh_index_file(handle)) != Z_OK) {
1282 assert(is_new(handle) || is_renaming(handle));
1299 zonecfg_save(zone_dochandle_t handle)
1305 if (zonecfg_check_handle(handle) != Z_OK)
1312 if (handle->zone_dh_snapshot || handle->zone_dh_sw_inv)
1315 if ((err = zonecfg_get_name(handle, zname, sizeof (zname))) != Z_OK)
1321 addcomment(handle, "\n DO NOT EDIT THIS "
1328 (void) zonecfg_authorize_users(handle, zname);
1329 err = zonecfg_save_impl(handle, path);
1331 stripcomments(handle);
1336 handle->zone_dh_newzone = B_FALSE;
1338 if (is_renaming(handle)) {
1339 if (config_file_path(handle->zone_dh_delete_name, delpath))
1341 handle->zone_dh_delete_name[0] = '\0';
1348 zonecfg_verify_save(zone_dochandle_t handle, char *filename)
1354 if (zonecfg_check_handle(handle) != Z_OK)
1365 valid = xmlValidateDocument(&cvp, handle->zone_dh_doc);
1368 if (xmlSaveFormatFile(filename, handle->zone_dh_doc, 1) <= 0)
1375 zonecfg_detach_save(zone_dochandle_t handle, uint_t flags)
1384 if (zonecfg_check_handle(handle) != Z_OK)
1390 if ((err = zonecfg_get_name(handle, zname, sizeof (zname)))
1403 if ((err = operation_prep(handle)) != Z_OK)
1406 addcomment(handle, "\n DO NOT EDIT THIS FILE. "
1417 valid = xmlValidateDocument(&cvp, handle->zone_dh_doc);
1420 if (xmlSaveFormatFile(migpath, handle->zone_dh_doc, 1) <= 0)
1426 stripcomments(handle);
1428 handle->zone_dh_newzone = B_FALSE;
1450 zonecfg_rm_detached(zone_dochandle_t handle, boolean_t forced)
1457 if (zonecfg_check_handle(handle) != Z_OK)
1460 if (zonecfg_get_name(handle, zname, sizeof (zname)) != Z_OK)
1512 zone_dochandle_t handle;
1516 if ((handle = zonecfg_init_handle()) == NULL) {
1520 handle->zone_dh_newzone = B_TRUE;
1521 handle->zone_dh_snapshot = B_TRUE;
1523 if ((error = zonecfg_get_handle(zonename, handle)) != Z_OK)
1525 if ((error = operation_prep(handle)) != Z_OK)
1527 error = zonecfg_get_zonepath(handle, zonepath, sizeof (zonepath));
1543 if ((error = zonecfg_set_zonepath(handle, rpath)) != Z_OK)
1561 addcomment(handle, "\n DO NOT EDIT THIS FILE. "
1564 error = zonecfg_save_impl(handle, path);
1566 stripcomments(handle);
1569 zonecfg_fini_handle(handle);
1574 zonecfg_get_iptype(zone_dochandle_t handle, zone_iptype_t *iptypep)
1579 err = getrootattr(handle, DTD_ATTR_IPTYPE, property, sizeof (property));
1600 zonecfg_set_iptype(zone_dochandle_t handle, zone_iptype_t iptype)
1604 if (handle == NULL)
1607 cur = xmlDocGetRootElement(handle->zone_dh_doc);
1651 zonecfg_add_filesystem_core(zone_dochandle_t handle, struct zone_fstab *tabptr)
1653 xmlNodePtr newnode, cur = handle->zone_dh_cur, options_node;
1683 zonecfg_add_filesystem(zone_dochandle_t handle, struct zone_fstab *tabptr)
1690 if ((err = operation_prep(handle)) != Z_OK)
1693 if ((err = zonecfg_add_filesystem_core(handle, tabptr)) != Z_OK)
1776 zonecfg_delete_filesystem_core(zone_dochandle_t handle,
1779 xmlNodePtr cur = handle->zone_dh_cur;
1802 zonecfg_delete_filesystem(zone_dochandle_t handle, struct zone_fstab *tabptr)
1809 if ((err = operation_prep(handle)) != Z_OK)
1812 if ((err = zonecfg_delete_filesystem_core(handle, tabptr)) != Z_OK)
1820 zone_dochandle_t handle,
1829 if ((err = operation_prep(handle)) != Z_OK)
1832 if ((err = zonecfg_delete_filesystem_core(handle, oldtabptr)) != Z_OK)
1835 if ((err = zonecfg_add_filesystem_core(handle, newtabptr)) != Z_OK)
1843 zone_dochandle_t handle,
1855 if ((err = operation_prep(handle)) != Z_OK)
1864 cur = handle->zone_dh_cur;
2071 * to which 'handle' refers. 'tabptr' must have an interface, an address, a
2085 zonecfg_lookup_nwif(zone_dochandle_t handle, struct zone_nwiftab *tabptr)
2118 if ((err = operation_prep(handle)) != Z_OK)
2121 if ((err = zonecfg_get_iptype(handle, &iptype)) != Z_OK)
2128 cur = handle->zone_dh_cur;
2198 zonecfg_add_nwif_core(zone_dochandle_t handle, struct zone_nwiftab *tabptr)
2200 xmlNodePtr newnode, cur = handle->zone_dh_cur;
2227 zonecfg_add_nwif(zone_dochandle_t handle, struct zone_nwiftab *tabptr)
2234 if ((err = operation_prep(handle)) != Z_OK)
2237 if ((err = zonecfg_add_nwif_core(handle, tabptr)) != Z_OK)
2244 zonecfg_delete_nwif_core(zone_dochandle_t handle, struct zone_nwiftab *tabptr)
2246 xmlNodePtr cur = handle->zone_dh_cur;
2270 zonecfg_delete_nwif(zone_dochandle_t handle, struct zone_nwiftab *tabptr)
2277 if ((err = operation_prep(handle)) != Z_OK)
2280 if ((err = zonecfg_delete_nwif_core(handle, tabptr)) != Z_OK)
2288 zone_dochandle_t handle,
2297 if ((err = operation_prep(handle)) != Z_OK)
2300 if ((err = zonecfg_delete_nwif_core(handle, oldtabptr)) != Z_OK)
2303 if ((err = zonecfg_add_nwif_core(handle, newtabptr)) != Z_OK)
2349 zonecfg_get_fs_allowed(zone_dochandle_t handle, char *bufp, size_t buflen)
2353 if ((err = getrootattr(handle, DTD_ATTR_FS_ALLOWED,
2362 zonecfg_set_fs_allowed(zone_dochandle_t handle, const char *bufp)
2367 return (setrootattr(handle, DTD_ATTR_FS_ALLOWED, bufp));
2424 zonecfg_get_hostid(zone_dochandle_t handle, char *bufp, size_t buflen)
2428 if ((err = getrootattr(handle, DTD_ATTR_HOSTID, bufp, buflen)) != Z_OK)
2442 zonecfg_set_hostid(zone_dochandle_t handle, const char *hostidp)
2451 return (setrootattr(handle, DTD_ATTR_HOSTID, hostidp));
2456 zonecfg_lookup_dev(zone_dochandle_t handle, struct zone_devtab *tabptr)
2465 if ((err = operation_prep(handle)) != Z_OK)
2468 cur = handle->zone_dh_cur;
2507 zonecfg_add_dev_core(zone_dochandle_t handle, struct zone_devtab *tabptr)
2509 xmlNodePtr newnode, cur = handle->zone_dh_cur;
2522 zonecfg_add_dev(zone_dochandle_t handle, struct zone_devtab *tabptr)
2529 if ((err = operation_prep(handle)) != Z_OK)
2532 if ((err = zonecfg_add_dev_core(handle, tabptr)) != Z_OK)
2539 zonecfg_delete_dev_core(zone_dochandle_t handle, struct zone_devtab *tabptr)
2541 xmlNodePtr cur = handle->zone_dh_cur;
2561 zonecfg_delete_dev(zone_dochandle_t handle, struct zone_devtab *tabptr)
2568 if ((err = operation_prep(handle)) != Z_OK)
2571 if ((err = zonecfg_delete_dev_core(handle, tabptr)) != Z_OK)
2579 zone_dochandle_t handle,
2588 if ((err = operation_prep(handle)) != Z_OK)
2591 if ((err = zonecfg_delete_dev_core(handle, oldtabptr)) != Z_OK)
2594 if ((err = zonecfg_add_dev_core(handle, newtabptr)) != Z_OK)
2601 zonecfg_add_auth_core(zone_dochandle_t handle, struct zone_admintab *tabptr,
2604 xmlNodePtr newnode, cur = handle->zone_dh_cur;
2615 handle, tabptr->zone_admin_user, zonename, B_FALSE)) != Z_OK)
2621 zonecfg_add_admin(zone_dochandle_t handle, struct zone_admintab *tabptr,
2629 if ((err = operation_prep(handle)) != Z_OK)
2632 if ((err = zonecfg_add_auth_core(handle, tabptr,
2639 zonecfg_delete_auth_core(zone_dochandle_t handle, struct zone_admintab *tabptr,
2642 xmlNodePtr cur = handle->zone_dh_cur;
2653 handle, tabptr->zone_admin_user,
2665 zonecfg_delete_admin(zone_dochandle_t handle, struct zone_admintab *tabptr,
2673 if ((err = operation_prep(handle)) != Z_OK)
2676 if ((err = zonecfg_delete_auth_core(handle, tabptr, zonename)) != Z_OK)
2683 zonecfg_modify_admin(zone_dochandle_t handle, struct zone_admintab *oldtabptr,
2691 if ((err = operation_prep(handle)) != Z_OK)
2694 if ((err = zonecfg_delete_auth_core(handle, oldtabptr, zonename))
2698 if ((err = zonecfg_add_auth_core(handle, newtabptr,
2706 zonecfg_lookup_admin(zone_dochandle_t handle, struct zone_admintab *tabptr)
2715 if ((err = operation_prep(handle)) != Z_OK)
2718 cur = handle->zone_dh_cur;
2773 zone_dochandle_t handle = (zone_dochandle_t)hdl;
2779 if ((err = operation_prep(handle)) != Z_OK)
2782 cur = handle->zone_dh_cur;
2836 * handle input parameter for each dev entry.
2980 zonecfg_lookup_attr(zone_dochandle_t handle, struct zone_attrtab *tabptr)
2989 if ((err = operation_prep(handle)) != Z_OK)
2992 cur = handle->zone_dh_cur;
3066 zonecfg_add_attr_core(zone_dochandle_t handle, struct zone_attrtab *tabptr)
3068 xmlNodePtr newnode, cur = handle->zone_dh_cur;
3085 zonecfg_add_attr(zone_dochandle_t handle, struct zone_attrtab *tabptr)
3092 if ((err = operation_prep(handle)) != Z_OK)
3095 if ((err = zonecfg_add_attr_core(handle, tabptr)) != Z_OK)
3102 zonecfg_delete_attr_core(zone_dochandle_t handle, struct zone_attrtab *tabptr)
3104 xmlNodePtr cur = handle->zone_dh_cur;
3128 zonecfg_delete_attr(zone_dochandle_t handle, struct zone_attrtab *tabptr)
3135 if ((err = operation_prep(handle)) != Z_OK)
3138 if ((err = zonecfg_delete_attr_core(handle, tabptr)) != Z_OK)
3146 zone_dochandle_t handle,
3155 if ((err = operation_prep(handle)) != Z_OK)
3158 if ((err = zonecfg_delete_attr_core(handle, oldtabptr)) != Z_OK)
3161 if ((err = zonecfg_add_attr_core(handle, newtabptr)) != Z_OK)
3253 zonecfg_lookup_rctl(zone_dochandle_t handle, struct zone_rctltab *tabptr)
3263 if ((err = operation_prep(handle)) != Z_OK)
3266 cur = handle->zone_dh_cur;
3306 zonecfg_add_rctl_core(zone_dochandle_t handle, struct zone_rctltab *tabptr)
3308 xmlNodePtr newnode, cur = handle->zone_dh_cur, valnode;
3337 zonecfg_add_rctl(zone_dochandle_t handle, struct zone_rctltab *tabptr)
3344 if ((err = operation_prep(handle)) != Z_OK)
3347 if ((err = zonecfg_add_rctl_core(handle, tabptr)) != Z_OK)
3354 zonecfg_delete_rctl_core(zone_dochandle_t handle, struct zone_rctltab *tabptr)
3356 xmlNodePtr cur = handle->zone_dh_cur;
3381 zonecfg_delete_rctl(zone_dochandle_t handle, struct zone_rctltab *tabptr)
3388 if ((err = operation_prep(handle)) != Z_OK)
3391 if ((err = zonecfg_delete_rctl_core(handle, tabptr)) != Z_OK)
3399 zone_dochandle_t handle,
3408 if ((err = operation_prep(handle)) != Z_OK)
3411 if ((err = zonecfg_delete_rctl_core(handle, oldtabptr)) != Z_OK)
3414 if ((err = zonecfg_add_rctl_core(handle, newtabptr)) != Z_OK)
3473 zonecfg_set_swinv(zone_dochandle_t handle)
3475 handle->zone_dh_sw_inv = B_TRUE;
3479 * Add the pkg to the sw inventory on the handle.
3482 zonecfg_add_pkg(zone_dochandle_t handle, char *name, char *version)
3488 if ((err = operation_prep(handle)) != Z_OK)
3491 cur = handle->zone_dh_cur;
3526 return (dgettext(TEXT_DOMAIN, "Bad handle"));
3624 zonecfg_setent(zone_dochandle_t handle)
3629 if (handle == NULL)
3632 if ((err = operation_prep(handle)) != Z_OK) {
3633 handle->zone_dh_cur = NULL;
3636 cur = handle->zone_dh_cur;
3638 handle->zone_dh_cur = cur;
3643 zonecfg_endent(zone_dochandle_t handle)
3645 if (handle == NULL)
3648 handle->zone_dh_cur = handle->zone_dh_top;
3771 zonecfg_apply_rctls(char *zone_name, zone_dochandle_t handle)
3779 if ((err = zonecfg_setrctlent(handle)) != Z_OK)
3783 (void) zonecfg_endrctlent(handle);
3788 (void) zonecfg_endrctlent(handle);
3793 while (zonecfg_getrctlent(handle, &rctl) == Z_OK) {
3827 (void) zonecfg_endrctlent(handle);
3854 zonecfg_num_resources(zone_dochandle_t handle, char *rsrc)
3863 if (zonecfg_setent(handle) != Z_OK)
3866 for (cur = handle->zone_dh_cur; cur != NULL; cur = cur->next)
3870 (void) zonecfg_endent(handle);
3876 zonecfg_del_all_resources(zone_dochandle_t handle, char *rsrc)
3885 if ((err = zonecfg_setent(handle)) != Z_OK)
3888 cur = handle->zone_dh_cur;
3903 (void) zonecfg_endent(handle);
4339 zonecfg_bind_tmp_pool(zone_dochandle_t handle, zoneid_t zoneid, char *pool_err,
4352 err = zonecfg_lookup_pset(handle, &pset_tab);
4408 zonecfg_bind_pool(zone_dochandle_t handle, zoneid_t zoneid, char *pool_err,
4420 error = zonecfg_get_pool(handle, poolname, sizeof (poolname));
4472 zonecfg_get_poolname(zone_dochandle_t handle, char *zone, char *pool,
4478 err = zonecfg_lookup_pset(handle, &pset_tab);
4489 return (zonecfg_get_pool(handle, pool, poolsize));
4529 zonecfg_warn_poold(zone_dochandle_t handle)
4535 err = zonecfg_lookup_pset(handle, &pset_tab);
4618 zonecfg_get_dflt_sched_class(zone_dochandle_t handle, char *class, int clsize)
4622 if (zonecfg_get_pool(handle, poolname, sizeof (poolname)) == Z_OK) {
4635 zonecfg_setfsent(zone_dochandle_t handle)
4637 return (zonecfg_setent(handle));
4641 zonecfg_getfsent(zone_dochandle_t handle, struct zone_fstab *tabptr)
4647 if (handle == NULL)
4650 if ((cur = handle->zone_dh_cur) == NULL)
4657 handle->zone_dh_cur = handle->zone_dh_top;
4663 handle->zone_dh_cur = handle->zone_dh_top;
4669 handle->zone_dh_cur = handle->zone_dh_top;
4675 handle->zone_dh_cur = handle->zone_dh_top;
4681 handle->zone_dh_cur = handle->zone_dh_top;
4696 handle->zone_dh_cur = cur->next;
4701 zonecfg_endfsent(zone_dochandle_t handle)
4703 return (zonecfg_endent(handle));
4707 zonecfg_setnwifent(zone_dochandle_t handle)
4709 return (zonecfg_setent(handle));
4713 zonecfg_getnwifent(zone_dochandle_t handle, struct zone_nwiftab *tabptr)
4718 if (handle == NULL)
4721 if ((cur = handle->zone_dh_cur) == NULL)
4728 handle->zone_dh_cur = handle->zone_dh_top;
4734 handle->zone_dh_cur = handle->zone_dh_top;
4741 handle->zone_dh_cur = handle->zone_dh_top;
4747 handle->zone_dh_cur = handle->zone_dh_top;
4754 handle->zone_dh_cur = handle->zone_dh_top;
4758 handle->zone_dh_cur = cur->next;
4763 zonecfg_endnwifent(zone_dochandle_t handle)
4765 return (zonecfg_endent(handle));
4769 zonecfg_setdevent(zone_dochandle_t handle)
4771 return (zonecfg_setent(handle));
4775 zonecfg_getdevent(zone_dochandle_t handle, struct zone_devtab *tabptr)
4780 if (handle == NULL)
4783 if ((cur = handle->zone_dh_cur) == NULL)
4790 handle->zone_dh_cur = handle->zone_dh_top;
4796 handle->zone_dh_cur = handle->zone_dh_top;
4800 handle->zone_dh_cur = cur->next;
4805 zonecfg_enddevent(zone_dochandle_t handle)
4807 return (zonecfg_endent(handle));
4811 zonecfg_setrctlent(zone_dochandle_t handle)
4813 return (zonecfg_setent(handle));
4817 zonecfg_getrctlent(zone_dochandle_t handle, struct zone_rctltab *tabptr)
4823 if (handle == NULL)
4826 if ((cur = handle->zone_dh_cur) == NULL)
4833 handle->zone_dh_cur = handle->zone_dh_top;
4839 handle->zone_dh_cur = handle->zone_dh_top;
4862 handle->zone_dh_cur = cur->next;
4867 zonecfg_endrctlent(zone_dochandle_t handle)
4869 return (zonecfg_endent(handle));
4873 zonecfg_setattrent(zone_dochandle_t handle)
4875 return (zonecfg_setent(handle));
4879 zonecfg_getattrent(zone_dochandle_t handle, struct zone_attrtab *tabptr)
4884 if (handle == NULL)
4887 if ((cur = handle->zone_dh_cur) == NULL)
4894 handle->zone_dh_cur = handle->zone_dh_top;
4900 handle->zone_dh_cur = handle->zone_dh_top;
4906 handle->zone_dh_cur = handle->zone_dh_top;
4912 handle->zone_dh_cur = handle->zone_dh_top;
4916 handle->zone_dh_cur = cur->next;
4921 zonecfg_endattrent(zone_dochandle_t handle)
4923 return (zonecfg_endent(handle));
4927 zonecfg_setadminent(zone_dochandle_t handle)
4929 return (zonecfg_setent(handle));
4933 zonecfg_getadminent(zone_dochandle_t handle, struct zone_admintab *tabptr)
4938 if (handle == NULL)
4941 if ((cur = handle->zone_dh_cur) == NULL)
4948 handle->zone_dh_cur = handle->zone_dh_top;
4954 handle->zone_dh_cur = handle->zone_dh_top;
4961 handle->zone_dh_cur = handle->zone_dh_top;
4965 handle->zone_dh_cur = cur->next;
4970 zonecfg_endadminent(zone_dochandle_t handle)
4972 return (zonecfg_endent(handle));
5106 priv_lists_create(zone_dochandle_t handle, char *brand, priv_lists_t **plpp,
5113 /* handle or brand must be set, but never both */
5114 assert((handle != NULL) || (brand != NULL));
5115 assert((handle == NULL) || (brand == NULL));
5117 if (handle != NULL) {
5119 if (zonecfg_get_brand(handle, brand, sizeof (brand_str)) != 0)
5169 zone_dochandle_t handle;
5184 if ((handle = zonecfg_init_handle()) == NULL)
5186 if ((ret = zonecfg_get_handle("SUNWdefault", handle)) == Z_OK) {
5187 ret = i_zonecfg_get_brand(handle, brand, brandsize, B_TRUE);
5188 zonecfg_fini_handle(handle);
5346 zonecfg_get_privset(zone_dochandle_t handle, priv_set_t *privs,
5360 if ((err = zonecfg_get_limitpriv(handle, &limitpriv)) != Z_OK)
5363 if ((err = zonecfg_get_iptype(handle, &iptype)) != Z_OK)
5375 if ((err = priv_lists_create(handle, NULL, &plp, curr_iptype)) != Z_OK)
5405 zone_dochandle_t handle;
5448 if ((handle = zonecfg_init_handle()) == NULL)
5455 if (zonecfg_get_snapshot_handle(zone_name, handle) != Z_OK) {
5456 if ((err = zonecfg_get_handle(zone_name, handle)) != Z_OK) {
5457 zonecfg_fini_handle(handle);
5461 err = zonecfg_get_zonepath(handle, zonepath, rp_sz);
5462 zonecfg_fini_handle(handle);
5485 zone_dochandle_t handle;
5516 if ((handle = zonecfg_init_handle()) == NULL)
5519 err = zonecfg_get_handle((char *)zone_name, handle);
5521 err = zonecfg_get_brand(handle, brandname, rp_sz);
5523 zonecfg_fini_handle(handle);
6270 zonecfg_notify_unbind(void *handle)
6275 (void) sysevent_evc_unbind(((struct znotify *)handle)->zn_eventchan);
6280 ret = pthread_mutex_trylock(&((struct znotify *)handle)->zn_mutex);
6285 (void) pthread_mutex_unlock(&((struct znotify *)handle)->zn_mutex);
6286 (void) pthread_mutex_destroy(&((struct znotify *)handle)->zn_mutex);
6287 (void) pthread_cond_destroy(&((struct znotify *)handle)->zn_cond);
6288 (void) pthread_mutex_destroy(&((struct znotify *)handle)->zn_bigmutex);
6290 free(handle);
6294 zonecfg_add_ds_core(zone_dochandle_t handle, struct zone_dstab *tabptr)
6296 xmlNodePtr newnode, cur = handle->zone_dh_cur;
6307 zonecfg_add_ds(zone_dochandle_t handle, struct zone_dstab *tabptr)
6314 if ((err = operation_prep(handle)) != Z_OK)
6317 if ((err = zonecfg_add_ds_core(handle, tabptr)) != Z_OK)
6324 zonecfg_delete_ds_core(zone_dochandle_t handle, struct zone_dstab *tabptr)
6326 xmlNodePtr cur = handle->zone_dh_cur;
6343 zonecfg_delete_ds(zone_dochandle_t handle, struct zone_dstab *tabptr)
6350 if ((err = operation_prep(handle)) != Z_OK)
6353 if ((err = zonecfg_delete_ds_core(handle, tabptr)) != Z_OK)
6361 zone_dochandle_t handle,
6370 if ((err = operation_prep(handle)) != Z_OK)
6373 if ((err = zonecfg_delete_ds_core(handle, oldtabptr)) != Z_OK)
6376 if ((err = zonecfg_add_ds_core(handle, newtabptr)) != Z_OK)
6383 zonecfg_lookup_ds(zone_dochandle_t handle, struct zone_dstab *tabptr)
6392 if ((err = operation_prep(handle)) != Z_OK)
6395 cur = handle->zone_dh_cur;
6425 zonecfg_setdsent(zone_dochandle_t handle)
6427 return (zonecfg_setent(handle));
6431 zonecfg_getdsent(zone_dochandle_t handle, struct zone_dstab *tabptr)
6436 if (handle == NULL)
6439 if ((cur = handle->zone_dh_cur) == NULL)
6446 handle->zone_dh_cur = handle->zone_dh_top;
6452 handle->zone_dh_cur = handle->zone_dh_top;
6456 handle->zone_dh_cur = cur->next;
6461 zonecfg_enddsent(zone_dochandle_t handle)
6463 return (zonecfg_endent(handle));
6483 zonecfg_get_aliased_rctl(zone_dochandle_t handle, char *name, uint64_t *rval)
6500 if ((err = operation_prep(handle)) != Z_OK)
6503 cur = handle->zone_dh_cur;
6561 zonecfg_rm_aliased_rctl(zone_dochandle_t handle, char *name)
6573 if (zonecfg_get_aliased_rctl(handle, name, &val) != Z_OK)
6586 return (zonecfg_delete_rctl(handle, &rctltab));
6590 zonecfg_aliased_rctl_ok(zone_dochandle_t handle, char *name)
6594 switch (zonecfg_get_aliased_rctl(handle, name, &tmp_val)) {
6605 zonecfg_set_aliased_rctl(zone_dochandle_t handle, char *name, uint64_t val)
6613 if (!zonecfg_aliased_rctl_ok(handle, name))
6624 (void) zonecfg_rm_aliased_rctl(handle, name);
6648 return (zonecfg_add_rctl(handle, &rctltab));
6652 delete_tmp_pool(zone_dochandle_t handle)
6655 xmlNodePtr cur = handle->zone_dh_cur;
6657 if ((err = operation_prep(handle)) != Z_OK)
6672 modify_tmp_pool(zone_dochandle_t handle, char *pool_importance)
6675 xmlNodePtr cur = handle->zone_dh_cur;
6678 err = delete_tmp_pool(handle);
6683 if ((err = operation_prep(handle)) != Z_OK)
6696 add_pset_core(zone_dochandle_t handle, struct zone_psettab *tabptr)
6698 xmlNodePtr newnode, cur = handle->zone_dh_cur;
6709 if ((err = modify_tmp_pool(handle, tabptr->zone_importance)) != Z_OK)
6716 zonecfg_add_pset(zone_dochandle_t handle, struct zone_psettab *tabptr)
6723 if ((err = operation_prep(handle)) != Z_OK)
6726 if ((err = add_pset_core(handle, tabptr)) != Z_OK)
6733 zonecfg_delete_pset(zone_dochandle_t handle)
6737 xmlNodePtr cur = handle->zone_dh_cur;
6739 if ((err = operation_prep(handle)) != Z_OK)
6755 err = delete_tmp_pool(handle);
6763 zonecfg_modify_pset(zone_dochandle_t handle, struct zone_psettab *tabptr)
6770 if ((err = zonecfg_delete_pset(handle)) != Z_OK)
6773 if ((err = add_pset_core(handle, tabptr)) != Z_OK)
6780 zonecfg_lookup_pset(zone_dochandle_t handle, struct zone_psettab *tabptr)
6789 if ((err = operation_prep(handle)) != Z_OK)
6795 cur = handle->zone_dh_cur;
6801 handle->zone_dh_cur = handle->zone_dh_top;
6808 handle->zone_dh_cur = handle->zone_dh_top;
6818 handle->zone_dh_cur = handle->zone_dh_top;
6828 zonecfg_getpsetent(zone_dochandle_t handle, struct zone_psettab *tabptr)
6832 if ((err = zonecfg_setent(handle)) != Z_OK)
6835 err = zonecfg_lookup_pset(handle, tabptr);
6837 (void) zonecfg_endent(handle);
6843 add_mcap(zone_dochandle_t handle, struct zone_mcaptab *tabptr)
6845 xmlNodePtr newnode, cur = handle->zone_dh_cur;
6857 zonecfg_delete_mcap(zone_dochandle_t handle)
6860 xmlNodePtr cur = handle->zone_dh_cur;
6862 if ((err = operation_prep(handle)) != Z_OK)
6877 zonecfg_modify_mcap(zone_dochandle_t handle, struct zone_mcaptab *tabptr)
6884 err = zonecfg_delete_mcap(handle);
6889 if ((err = add_mcap(handle, tabptr)) != Z_OK)
6896 zonecfg_lookup_mcap(zone_dochandle_t handle, struct zone_mcaptab *tabptr)
6904 if ((err = operation_prep(handle)) != Z_OK)
6907 cur = handle->zone_dh_cur;
6914 handle->zone_dh_cur = handle->zone_dh_top;
6925 getmcapent_core(zone_dochandle_t handle, struct zone_mcaptab *tabptr)
6930 if (handle == NULL)
6933 if ((cur = handle->zone_dh_cur) == NULL)
6940 handle->zone_dh_cur = handle->zone_dh_top;
6946 handle->zone_dh_cur = handle->zone_dh_top;
6950 handle->zone_dh_cur = cur->next;
6955 zonecfg_getmcapent(zone_dochandle_t handle, struct zone_mcaptab *tabptr)
6959 if ((err = zonecfg_setent(handle)) != Z_OK)
6962 err = getmcapent_core(handle, tabptr);
6964 (void) zonecfg_endent(handle);
6976 zonecfg_getpkgdata(zone_dochandle_t handle, uu_avl_pool_t *pkg_pool,
6985 if (handle == NULL)
6988 if ((res = zonecfg_setent(handle)) != Z_OK)
6991 if ((cur = handle->zone_dh_cur) == NULL) {
7039 (void) zonecfg_endent(handle);
7044 zonecfg_setdevperment(zone_dochandle_t handle)
7046 return (zonecfg_setent(handle));
7050 zonecfg_getdevperment(zone_dochandle_t handle, struct zone_devpermtab *tabptr)
7058 if (handle == NULL)
7061 if ((cur = handle->zone_dh_cur) == NULL)
7068 handle->zone_dh_cur = handle->zone_dh_top;
7074 handle->zone_dh_cur = handle->zone_dh_top;
7079 handle->zone_dh_cur = handle->zone_dh_top;
7085 handle->zone_dh_cur = handle->zone_dh_top;
7091 handle->zone_dh_cur = handle->zone_dh_top;
7098 handle->zone_dh_cur = handle->zone_dh_top;
7102 handle->zone_dh_cur = cur->next;
7107 zonecfg_enddevperment(zone_dochandle_t handle)
7109 return (zonecfg_endent(handle));
7541 zonecfg_delete_admins(zone_dochandle_t handle, char *zonename)
7547 if ((err = zonecfg_setadminent(handle)) != Z_OK) {
7550 while (zonecfg_getadminent(handle, &admintab) == Z_OK) {
7551 err = zonecfg_delete_admin(handle, &admintab,
7554 (void) zonecfg_endadminent(handle);
7559 if ((err = zonecfg_setadminent(handle)) != Z_OK) {
7563 (void) zonecfg_endadminent(handle);
7607 zonecfg_update_userauths(zone_dochandle_t handle, char *zonename)
7649 if ((err = zonecfg_delete_admins(handle, zonename)) == Z_OK) {
7693 err = zonecfg_add_admin(handle,
7796 * element of the handle strcture.
7799 zonecfg_authorize_user_impl(zone_dochandle_t handle, char *user,
7850 if (is_renaming(handle))
7851 delete_name = handle->zone_dh_delete_name;
7891 (void) zonecfg_remove_userauths(handle, user, "", B_FALSE);
7948 zonecfg_authorize_users(zone_dochandle_t handle, char *zonename)
7955 if ((err = operation_prep(handle)) != Z_OK)
7958 cur = handle->zone_dh_cur;
7968 if (zonecfg_authorize_user_impl(handle, user, auths, zonename)
7972 (void) zonecfg_remove_userauths(handle, "", "", B_TRUE);
7978 zonecfg_deauthorize_user(zone_dochandle_t handle, char *user, char *zonename)
7980 return (zonecfg_authorize_user_impl(handle, user, "", zonename));
7984 zonecfg_deauthorize_users(zone_dochandle_t handle, char *zonename)
7990 if ((err = operation_prep(handle)) != Z_OK)
7993 cur = handle->zone_dh_cur;
8000 if ((err = zonecfg_deauthorize_user(handle, user,
8008 zonecfg_insert_userauths(zone_dochandle_t handle, char *user, char *zonename)
8012 prev = &handle->zone_dh_userauths;
8039 zonecfg_remove_userauths(zone_dochandle_t handle, char *user, char *zonename,
8044 prev = &handle->zone_dh_userauths;
8056 (void) zonecfg_deauthorize_user(handle,