Lines Matching refs:dlm

175 array_dim_check(inj_declmem_t *dlm, inj_defnmem_t *dfm)
183 if (dlm->dlm_arrdim != 0 && dlm->dlm_arrdim != dfnelems) {
185 dfm->dfm_lineno, dfnelems, dlm->dlm_arrdim);
186 dfnelems = dlm->dlm_arrdim;
189 return (MAX(dfnelems, dlm->dlm_arrdim));
209 inj_defn_memcmp_signed(const intr_t *intr, inj_declmem_t *dlm,
220 switch (dlm->dlm_type) {
222 errno = nvlist_add_int8(nvl, (char *)dlm->dlm_name,
226 errno = nvlist_add_int16(nvl, (char *)dlm->dlm_name,
230 errno = nvlist_add_int32(nvl, (char *)dlm->dlm_name,
234 errno = nvlist_add_int64(nvl, (char *)dlm->dlm_name,
239 die("failed to add member %s\n", dlm->dlm_name);
245 inj_defn_memcmp_unsigned(const intr_t *intr, inj_declmem_t *dlm,
256 switch (dlm->dlm_type) {
258 errno = nvlist_add_uint8(nvl, (char *)dlm->dlm_name,
262 errno = nvlist_add_uint16(nvl, (char *)dlm->dlm_name,
266 errno = nvlist_add_uint32(nvl, (char *)dlm->dlm_name,
270 errno = nvlist_add_uint64(nvl, (char *)dlm->dlm_name,
275 die("failed to add member %s\n", dlm->dlm_name);
282 inj_defn_memcmp_intr_array(const intr_t *cont, inj_declmem_t *dlm,
323 nelems = array_dim_check(dlm, dfm);
397 if (err == 0 && (errno = adder(nvl, dlm->dlm_name, arr, nelems)) != 0)
398 die("failed to add array member %s", dlm->dlm_name);
422 inj_defn_memcmp_bool(inj_declmem_t *dlm, inj_defnmem_t *dfm, nvlist_t *nvl)
432 if ((errno = nvlist_add_boolean_value(nvl, (char *)dlm->dlm_name,
434 die("failed to add boolean member %s", dlm->dlm_name);
440 inj_defn_memcmp_bool_array(inj_declmem_t *dlm, inj_defnmem_t *dfm,
452 nelems = array_dim_check(dlm, dfm);
470 (char *)dlm->dlm_name, arr, nelems)) != 0)
471 die("failed to add boolean array member %s", dlm->dlm_name);
480 inj_defn_memcmp_strenum(inj_declmem_t *dlm, inj_defnmem_t *dfm, nvlist_t *nvl)
482 inj_defnmemtype_t defnmemtype = (dlm->dlm_type == MEMTYPE_ENUM ?
484 const char *strenum = (dlm->dlm_type == MEMTYPE_ENUM ? "enum" :
490 if ((errno = nvlist_add_string(nvl, (char *)dlm->dlm_name,
492 die("failed to add %s member %s", strenum, dlm->dlm_name);
498 inj_defn_memcmp_strenum_array(inj_declmem_t *dlm, inj_defnmem_t *dfm,
501 inj_defnmemtype_t defnmemtype = (dlm->dlm_type == MEMTYPE_ENUM ?
503 const char *strenum = (dlm->dlm_type == MEMTYPE_ENUM ? "enum" :
515 nelems = array_dim_check(dlm, dfm);
528 if (dlm->dlm_type == MEMTYPE_ENUM &&
529 inj_strhash_lookup(dlm->dlm_enumvals, elem->dfm_str) ==
541 dlm->dlm_name, (char **)arr, nelems)) != 0)
542 die("failed to add %s array member %s", strenum, dlm->dlm_name);
560 inj_defn_memcmp_sub_list(inj_declmem_t *dlm, inj_defnmem_t *dfm)
562 inj_declmem_t *subdlm = inj_list_next(&dlm->dlm_decl->decl_members);
570 inj_defn_memcmp_sub_defined(inj_declmem_t *dlm, inj_defnmem_t *dfm)
575 if ((subdefn = inj_defn_lookup(dfm->dfm_str, dlm->dlm_type)) == NULL) {
577 inj_mem2str(dlm->dlm_type), dfm->dfm_str);
582 if (subdefn->defn_decl != dlm->dlm_decl) {
584 inj_mem2str(dlm->dlm_type), dfm->dfm_str,
601 inj_defn_memcmp_sub_makenvl(inj_declmem_t *dlm, inj_defnmem_t *dfm)
604 inj_memtype_t dltype = dlm->dlm_type;
608 new = inj_defn_memcmp_sub_list(dlm, dfm);
611 new = inj_defn_memcmp_sub_defined(dlm, dfm);
620 inj_defn_memcmp_sub(inj_declmem_t *dlm, inj_defnmem_t *dfm, nvlist_t *nvl)
624 if ((new = inj_defn_memcmp_sub_makenvl(dlm, dfm)) == NULL)
627 if ((errno = nvlist_add_nvlist(nvl, (char *)dlm->dlm_name,
629 die("failed to add list member %s", dlm->dlm_name);
636 inj_defn_memcmp_sub_array(inj_declmem_t *dlm, inj_defnmem_t *dfm, nvlist_t *nvl)
647 nelems = array_dim_check(dlm, dfm);
653 if ((arr[i] = inj_defn_memcmp_sub_makenvl(dlm, elem)) == NULL) {
662 (char *)dlm->dlm_name, arr, nelems)) != 0)
663 die("failed to add nvlist list member %s", dlm->dlm_name);
675 inj_defn_validate_memlist(inj_declmem_t *dlm, inj_defnmem_t *dfm)
685 for (nmem = 1; dlm != NULL && dfm != NULL;
686 dlm = inj_list_next(dlm), dfm = inj_list_next(dfm), nmem++) {
688 switch (dlm->dlm_type) {
693 intr = &inj_intrinsics[dlm->dlm_type];
695 if (dlm->dlm_flags & DECLMEM_F_ARRAY) {
696 rc = inj_defn_memcmp_intr_array(intr, dlm, dfm,
699 rc = inj_defn_memcmp_signed(intr, dlm, dfm,
708 intr = &inj_intrinsics[dlm->dlm_type];
710 if (dlm->dlm_flags & DECLMEM_F_ARRAY) {
711 rc = inj_defn_memcmp_intr_array(intr, dlm, dfm,
714 rc = inj_defn_memcmp_unsigned(intr, dlm, dfm,
720 if (dlm->dlm_flags & DECLMEM_F_ARRAY)
721 rc = inj_defn_memcmp_bool_array(dlm, dfm, nvl);
723 rc = inj_defn_memcmp_bool(dlm, dfm, nvl);
727 if (dlm->dlm_flags & DECLMEM_F_ARRAY) {
728 rc = inj_defn_memcmp_strenum_array(dlm, dfm,
731 rc = inj_defn_memcmp_strenum(dlm, dfm, nvl);
735 if (dlm->dlm_flags & DECLMEM_F_ARRAY) {
736 rc = inj_defn_memcmp_strenum_array(dlm, dfm,
739 rc = inj_defn_memcmp_strenum(dlm, dfm, nvl);
746 if (dlm->dlm_flags & DECLMEM_F_ARRAY)
747 rc = inj_defn_memcmp_sub_array(dlm, dfm, nvl);
749 rc = inj_defn_memcmp_sub(dlm, dfm, nvl);
754 dlm->dlm_type, dlm->dlm_name);
760 "invalid value"), dlm->dlm_name);
767 while (dlm != NULL) {
768 dlm = inj_list_next(dlm);
800 inj_declmem_t *dlm;
813 dlm = inj_list_next(&decl->decl_members);
816 if ((defn->defn_nvl = inj_defn_validate_memlist(dlm, dfm)) == NULL) {