Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sbin Update for proplib(3) API changes.



details:   https://anonhg.NetBSD.org/src/rev/52753f53ccd4
branches:  trunk
changeset: 934102:52753f53ccd4
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Sun Jun 07 05:42:25 2020 +0000

description:
Update for proplib(3) API changes.

diffstat:

 sbin/gpt/backup.c   |  175 +++++++++++++++------------------------------------
 sbin/gpt/restore.c  |  145 ++++++++++++++++--------------------------
 sbin/modload/main.c |   27 ++-----
 3 files changed, 117 insertions(+), 230 deletions(-)

diffs (truncated from 627 to 300 lines):

diff -r 795af7850d92 -r 52753f53ccd4 sbin/gpt/backup.c
--- a/sbin/gpt/backup.c Sun Jun 07 03:02:42 2020 +0000
+++ b/sbin/gpt/backup.c Sun Jun 07 05:42:25 2020 +0000
@@ -33,7 +33,7 @@
 __FBSDID("$FreeBSD: src/sbin/gpt/show.c,v 1.14 2006/06/22 22:22:32 marcel Exp $");
 #endif
 #ifdef __RCSID
-__RCSID("$NetBSD: backup.c,v 1.18 2017/09/07 10:23:33 christos Exp $");
+__RCSID("$NetBSD: backup.c,v 1.19 2020/06/07 05:42:25 thorpej Exp $");
 #endif
 
 #include <sys/bootblock.h>
@@ -68,79 +68,46 @@
 
 #define PROP_ERR(x)    if (!(x)) goto cleanup
 
-#define prop_uint(a) prop_number_create_unsigned_integer(a)
-
 static int
 store_mbr(gpt_t gpt, unsigned int i, const struct mbr *mbr,
     prop_array_t *mbr_array)
 {
        prop_dictionary_t mbr_dict;
-       prop_number_t propnum;
        const struct mbr_part *par = &mbr->mbr_part[i];
-       bool rc;
 
        if (mbr->mbr_part[i].part_typ == MBR_PTYPE_UNUSED)
                return 0;
 
        mbr_dict = prop_dictionary_create();
        PROP_ERR(mbr_dict);
-       propnum = prop_number_create_integer(i);
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "index", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(par->part_flag);
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "flag", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(par->part_shd);
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "start_head", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(par->part_ssect);
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "start_sector", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(par->part_scyl);
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "start_cylinder", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(par->part_typ);
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "type", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(par->part_ehd);
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "end_head", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(par->part_esect);
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "end_sector", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(par->part_ecyl);
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "end_cylinder", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(le16toh(par->part_start_lo));
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "lba_start_low", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(le16toh(par->part_start_hi));
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "lba_start_high", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(le16toh(par->part_size_lo));
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "lba_size_low", propnum);
-       PROP_ERR(rc);
-       propnum = prop_uint(le16toh(par->part_size_hi));
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(mbr_dict, "lba_size_high", propnum);
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "index", i));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "flag", par->part_flag));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "start_head",
+                                         par->part_shd));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "start_sector",
+                                         par->part_ssect));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "start_cylinder",
+                                         par->part_scyl));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "type", par->part_typ));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "end_head", par->part_ehd));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "end_sector",
+                                         par->part_esect));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "end_cylinder",
+                                         par->part_ecyl));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "lba_start_low",
+                                         le16toh(par->part_start_lo)));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "lba_start_high",
+                                         le16toh(par->part_start_hi)));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "lba_size_low",
+                                         le16toh(par->part_size_lo)));
+       PROP_ERR(prop_dictionary_set_uint(mbr_dict, "lba_size_high",
+                                         le16toh(par->part_size_hi)));
+
        if (*mbr_array == NULL) {
                *mbr_array = prop_array_create();
                PROP_ERR(*mbr_array);
        }
-       rc = prop_array_add(*mbr_array, mbr_dict);
-       PROP_ERR(rc);
+       PROP_ERR(prop_array_add_and_rel(*mbr_array, mbr_dict));
        return 0;
 cleanup:
        if (mbr_dict)
@@ -152,26 +119,16 @@
 static int
 store_gpt(gpt_t gpt, const struct gpt_hdr *hdr, prop_dictionary_t *type_dict)
 {
-       prop_number_t propnum;
-       prop_string_t propstr;
        char buf[128];
-       bool rc;
 
        *type_dict = prop_dictionary_create();
        PROP_ERR(type_dict);
-       propnum = prop_uint(le32toh(hdr->hdr_revision));
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(*type_dict, "revision", propnum);
-       PROP_ERR(rc);
+       PROP_ERR(prop_dictionary_set_uint(*type_dict, "revision",
+                                         le32toh(hdr->hdr_revision)));
        gpt_uuid_snprintf(buf, sizeof(buf), "%d", hdr->hdr_guid);
-       propstr = prop_string_create_cstring(buf);
-       PROP_ERR(propstr);
-       rc = prop_dictionary_set(*type_dict, "guid", propstr);
-       PROP_ERR(rc);
-       propnum = prop_number_create_integer(le32toh(hdr->hdr_entries));
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(*type_dict, "entries", propnum);
-       PROP_ERR(rc);
+       PROP_ERR(prop_dictionary_set_string(*type_dict, "guid", buf));
+       PROP_ERR(prop_dictionary_set_uint(*type_dict, "entries",
+                                         le32toh(hdr->hdr_entries)));
        return 0;
 cleanup:
        if (*type_dict)
@@ -186,8 +143,6 @@
        unsigned int i;
        prop_dictionary_t gpt_dict;
        prop_array_t gpt_array;
-       prop_number_t propnum;
-       prop_string_t propstr;
        char buf[128];
        uint8_t utfbuf[__arraycount(ent->ent_name) * 3 + 1];
        bool rc;
@@ -206,45 +161,28 @@
            m->map_size * gpt->secsz; i++, ent++) {
                gpt_dict = prop_dictionary_create();
                PROP_ERR(gpt_dict);
-               propnum = prop_number_create_integer(i);
-               PROP_ERR(propnum);
-               rc = prop_dictionary_set(gpt_dict, "index", propnum);
-               PROP_ERR(propnum);
+               PROP_ERR(prop_dictionary_set_uint(gpt_dict, "index", i));
                gpt_uuid_snprintf(buf, sizeof(buf), "%d", ent->ent_type);
-               propstr = prop_string_create_cstring(buf);
-               PROP_ERR(propstr);
-               rc = prop_dictionary_set(gpt_dict, "type", propstr);
+               PROP_ERR(prop_dictionary_set_string(gpt_dict, "type", buf));
                gpt_uuid_snprintf(buf, sizeof(buf), "%d", ent->ent_guid);
-               propstr = prop_string_create_cstring(buf);
-               PROP_ERR(propstr);
-               rc = prop_dictionary_set(gpt_dict, "guid", propstr);
-               PROP_ERR(propstr);
-               propnum = prop_uint(le64toh(ent->ent_lba_start));
-               PROP_ERR(propnum);
-               rc = prop_dictionary_set(gpt_dict, "start", propnum);
-               PROP_ERR(rc);
-               propnum = prop_uint(le64toh(ent->ent_lba_end));
-               PROP_ERR(rc);
-               rc = prop_dictionary_set(gpt_dict, "end", propnum);
-               PROP_ERR(rc);
-               propnum = prop_uint(le64toh(ent->ent_attr));
-               PROP_ERR(propnum);
-               rc = prop_dictionary_set(gpt_dict, "attributes", propnum);
-               PROP_ERR(rc);
+               PROP_ERR(prop_dictionary_set_string(gpt_dict, "guid", buf));
+               PROP_ERR(prop_dictionary_set_uint64(gpt_dict, "start",
+                                               le64toh(ent->ent_lba_start)));
+               PROP_ERR(prop_dictionary_set_uint64(gpt_dict, "end",
+                                               le64toh(ent->ent_lba_end)));
+               PROP_ERR(prop_dictionary_set_uint64(gpt_dict, "attributes",
+                                               le64toh(ent->ent_attr)));
                utf16_to_utf8(ent->ent_name, __arraycount(ent->ent_name),
                    utfbuf, __arraycount(utfbuf));
                if (utfbuf[0] != '\0') {
-                       propstr = prop_string_create_cstring((char *)utfbuf);
-                       PROP_ERR(propstr);
-                       rc = prop_dictionary_set(gpt_dict, "name", propstr);
-                       PROP_ERR(rc);
+                       PROP_ERR(prop_dictionary_set_string(gpt_dict, "name",
+                                                           (char *)utfbuf));
                }
                rc = prop_array_add(gpt_array, gpt_dict);
                PROP_ERR(rc);
        }
-       rc = prop_dictionary_set(*type_dict, "gpt_array", gpt_array);
+       rc = prop_dictionary_set_and_rel(*type_dict, "gpt_array", gpt_array);
        PROP_ERR(rc);
-       prop_object_release(gpt_array);
        return 0;
 cleanup:
        if (*type_dict)
@@ -262,18 +200,13 @@
        unsigned int i;
        prop_dictionary_t props, type_dict;
        prop_array_t mbr_array;
-       prop_data_t propdata;
-       prop_number_t propnum;
        char *propext;
        bool rc;
        FILE *fp;
 
        props = prop_dictionary_create();
        PROP_ERR(props);
-       propnum = prop_number_create_integer(gpt->secsz);
-       PROP_ERR(propnum);
-       rc = prop_dictionary_set(props, "sector_size", propnum);
-       PROP_ERR(rc);
+       PROP_ERR(prop_dictionary_set_uint(props, "sector_size", gpt->secsz));
        m = map_first(gpt);
        while (m != NULL) {
                switch (m->map_type) {
@@ -282,40 +215,36 @@
                        type_dict = prop_dictionary_create();
                        PROP_ERR(type_dict);
                        mbr = m->map_data;
-                       propdata = prop_data_create_data_nocopy(mbr->mbr_code,
-                           sizeof(mbr->mbr_code));
-                       PROP_ERR(propdata);
-                       rc = prop_dictionary_set(type_dict, "code", propdata);
-                       PROP_ERR(rc);
+                       PROP_ERR(prop_dictionary_set_data_nocopy(type_dict,
+                           "code", mbr->mbr_code, sizeof(mbr->mbr_code)));
                        mbr_array = NULL;
                        for (i = 0; i < 4; i++) {
                                if (store_mbr(gpt, i, mbr, &mbr_array) == -1)
                                        goto cleanup;
                        }
                        if (mbr_array != NULL) {
-                               rc = prop_dictionary_set(type_dict,
+                               rc = prop_dictionary_set_and_rel(type_dict,
                                    "mbr_array", mbr_array);
                                PROP_ERR(rc);
-                               prop_object_release(mbr_array);
                        }
-                       rc = prop_dictionary_set(props, "MBR", type_dict);
+                       rc = prop_dictionary_set_and_rel(props, "MBR",
+                                                        type_dict);
                        PROP_ERR(rc);
-                       prop_object_release(type_dict);
                        break;
                case MAP_TYPE_PRI_GPT_HDR:
                        if (store_gpt(gpt, m->map_data, &type_dict) == -1)
                                goto cleanup;
 
-                       rc = prop_dictionary_set(props, "GPT_HDR", type_dict);
+                       rc = prop_dictionary_set_and_rel(props, "GPT_HDR",
+                                                        type_dict);
                        PROP_ERR(rc);
-                       prop_object_release(type_dict);
                        break;
                case MAP_TYPE_PRI_GPT_TBL:
                        if (store_tbl(gpt, m, &type_dict) == -1)
                                goto cleanup;
-                       rc = prop_dictionary_set(props, "GPT_TBL", type_dict);
+                       rc = prop_dictionary_set_and_rel(props, "GPT_TBL",
+                                                        type_dict);
                        PROP_ERR(rc);
-                       prop_object_release(type_dict);
                        break;
                }
                m = m->map_next;
diff -r 795af7850d92 -r 52753f53ccd4 sbin/gpt/restore.c
--- a/sbin/gpt/restore.c        Sun Jun 07 03:02:42 2020 +0000
+++ b/sbin/gpt/restore.c        Sun Jun 07 05:42:25 2020 +0000
@@ -33,7 +33,7 @@
 __FBSDID("$FreeBSD: src/sbin/gpt/create.c,v 1.11 2005/08/31 01:47:19 marcel Exp $");
 #endif
 #ifdef __RCSID
-__RCSID("$NetBSD: restore.c,v 1.19 2020/05/14 08:34:17 msaitoh Exp $");
+__RCSID("$NetBSD: restore.c,v 1.20 2020/06/07 05:42:25 thorpej Exp $");
 #endif
 
 #include <sys/types.h>
@@ -72,53 +72,37 @@
        return -1;                              \
 }



Home | Main Index | Thread Index | Old Index