Lines Matching defs:mk
519 _crodb_rec_sort(di_cromk_hdl_t mk)
526 (mk->mk_nrec + 1) * sizeof (di_cro_rec_t))) == NULL)
530 for (rap = ra, r = mk->mk_rec; r; rap++, r = r->r_next)
535 qsort((void *) ra, mk->mk_nrec, sizeof (di_cro_rec_t), _cro_rec_cmp);
538 for (rp = &mk->mk_rec, rap = ra, r = *rap; r; rap++, r = *rap) {
549 _crodb_rec_prewrite_enhance(di_cromk_hdl_t mk, di_cro_rec_t r, int flags)
574 if (mk->mk_product_id && RF0_HASINFO(r, product_id) &&
575 mk->mk_chassis_id && RF0_HASINFO(r, chassis_id) &&
576 (strcmp(mk->mk_product_id, RF0(r, product_id)) == 0) &&
577 (strcmp(mk->mk_chassis_id, RF0(r, chassis_id)) == 0))
582 mk->mk_product_id && RF0_HASINFO(r, product_id) &&
583 mk->mk_chassis_id && RF0_HASINFO(r, chassis_id)) {
589 pca_r = di_pca_rec_lookup(mk->mk_pca, pc);
676 _crodb_write(di_cromk_hdl_t mk, int flags)
699 mk->mk_pca = di_pca_init(0);
705 nvlist_add_string(db_nvl, DB_DATE, mk->mk_date) ||
706 nvlist_add_string(db_nvl, DB_SERVER_ID, mk->mk_server_id) ||
707 nvlist_add_string(db_nvl, DB_PRODUCT_ID, mk->mk_product_id) ||
708 nvlist_add_string(db_nvl, DB_CHASSIS_ID, mk->mk_chassis_id) ||
709 nvlist_add_uint64(db_nvl, DB_CNA, mk->mk_cna) ||
710 nvlist_add_int32(db_nvl, DB_NREC, mk->mk_nrec))
713 if (mk->mk_nrec == 0)
717 if ((ra_nvl = calloc(mk->mk_nrec, sizeof (*ra_nvl))) == NULL)
720 /* Walk the mk records, "enhancing" the records */
721 for (r = mk->mk_rec, i = 0; i < mk->mk_nrec; r = r->r_next, i++)
722 _crodb_rec_prewrite_enhance(mk, r, flags);
725 _crodb_rec_sort(mk);
727 /* Walk the mk records, allocating and initializing record nvlist */
728 for (r = mk->mk_rec, i = 0; i < mk->mk_nrec; r = r->r_next, i++) {
751 mk->mk_nrec) ||
786 nvlist_add_nvlist_array(db_nvl, DB_RECA, ra_nvl, mk->mk_nrec))
827 for (i = 0; i < mk->mk_nrec; i++)
834 if (mk->mk_pca)
835 di_pca_fini(mk->mk_pca);
836 mk->mk_pca = NULL;
1448 di_cromk_hdl_t mk = NULL;
1452 if ((mk = calloc(1, sizeof (*mk))) == NULL)
1459 if ((mk->mk_date = strdup(s)) == NULL) {
1461 free(mk);
1462 mk = NULL;
1465 out: return (mk);
1469 di_cromk_recadd(di_cromk_hdl_t mk,
1499 if (mk == NULL)
1564 r->r_next = mk->mk_rec;
1565 mk->mk_rec = r;
1566 mk->mk_nrec++;
1572 di_cromk_end(di_cromk_hdl_t mk, int flags, char *root_server_id,
1577 if (mk == NULL)
1583 mk->mk_server_id = root_server_id ? root_server_id : "UNKNOWN";
1584 mk->mk_product_id = root_product_id ?
1586 mk->mk_chassis_id = root_chassis_id ?
1588 mk->mk_cna = cna;
1590 (void) _crodb_write(mk, flags);
1592 out: for (r = mk->mk_rec; r; r = rn) {
1597 if (mk->mk_date)
1598 free(mk->mk_date);
1600 free(mk);