Lines Matching refs:mod
105 svc_error(topo_mod_t *mod) in svc_error() argument
109 return (topo_mod_seterrno(mod, EMOD_NOMEM)); in svc_error()
112 return (topo_mod_seterrno(mod, EMOD_UNKNOWN)); in svc_error()
117 svc_get_handle(topo_mod_t *mod) in svc_get_handle() argument
119 scf_handle_t *hdl = topo_mod_getspecific(mod); in svc_get_handle()
125 (void) svc_error(mod); in svc_get_handle()
131 (void) svc_error(mod); in svc_get_handle()
135 topo_mod_setspecific(mod, hdl); in svc_get_handle()
141 svc_init(topo_mod_t *mod, topo_version_t version) in svc_init() argument
144 topo_mod_setdebug(mod); in svc_init()
147 return (topo_mod_seterrno(mod, EMOD_VER_NEW)); in svc_init()
149 if (topo_mod_register(mod, &svc_info, TOPO_VERSION) != 0) { in svc_init()
150 topo_mod_dprintf(mod, "failed to register svc_info: " in svc_init()
151 "%s\n", topo_mod_errmsg(mod)); in svc_init()
159 svc_fini(topo_mod_t *mod) in svc_fini() argument
161 scf_handle_t *hdl = topo_mod_getspecific(mod); in svc_fini()
166 topo_mod_unregister(mod); in svc_fini()
170 svc_create_node(topo_mod_t *mod, tnode_t *pnode, char *fmristr) in svc_create_node() argument
191 if ((fixed = topo_mod_zalloc(mod, len + 1)) == NULL) { in svc_create_node()
192 (void) topo_mod_seterrno(mod, EMOD_NOMEM); in svc_create_node()
193 topo_mod_dprintf(mod, "topo_mod_zalloc() failed: %s", in svc_create_node()
194 topo_mod_errmsg(mod)); in svc_create_node()
204 if (topo_mod_str2nvl(mod, fixed, &fmri) < 0) { in svc_create_node()
205 topo_mod_dprintf(mod, "topo_mod_str2nvl() failed: %s", in svc_create_node()
206 topo_mod_errmsg(mod)); in svc_create_node()
207 topo_mod_free(mod, fixed, len + 1); in svc_create_node()
210 topo_mod_free(mod, fixed, len + 1); in svc_create_node()
212 if (topo_node_range_create(mod, pnode, fmristr, 0, 0) < 0) { in svc_create_node()
213 topo_mod_dprintf(mod, "topo_node_range_create() failed: %s", in svc_create_node()
214 topo_mod_errmsg(mod)); in svc_create_node()
218 if ((tn = topo_node_bind(mod, pnode, fmristr, 0, fmri)) == NULL) { in svc_create_node()
219 topo_mod_dprintf(mod, "topo_node_bind() failed: %s", in svc_create_node()
220 topo_mod_errmsg(mod)); in svc_create_node()
227 topo_mod_dprintf(mod, "failed to set label: %s\n", in svc_create_node()
231 (void) topo_method_register(mod, tn, svc_methods); in svc_create_node()
238 svc_enum(topo_mod_t *mod, tnode_t *pnode, const char *name, in svc_enum() argument
252 (void) topo_method_register(mod, pnode, svc_methods); in svc_enum()
254 if ((hdl = svc_get_handle(mod)) == NULL) in svc_enum()
277 if ((sfmri = topo_mod_zalloc(mod, slen + 1)) == NULL) { in svc_enum()
278 (void) topo_mod_seterrno(mod, EMOD_NOMEM); in svc_enum()
284 if ((svc_node = svc_create_node(mod, pnode, sfmri)) == NULL) { in svc_enum()
285 topo_mod_free(mod, sfmri, slen + 1); in svc_enum()
294 if ((ifmri = topo_mod_zalloc(mod, ilen + 1)) in svc_enum()
296 (void) topo_mod_seterrno(mod, EMOD_NOMEM); in svc_enum()
297 topo_mod_free(mod, sfmri, slen + 1); in svc_enum()
303 if ((svc_node = svc_create_node(mod, svc_node, ifmri)) in svc_enum()
305 topo_mod_free(mod, sfmri, slen + 1); in svc_enum()
306 topo_mod_free(mod, ifmri, ilen + 1); in svc_enum()
310 topo_mod_free(mod, ifmri, ilen + 1); in svc_enum()
312 topo_mod_free(mod, sfmri, slen + 1); in svc_enum()
326 svc_release(topo_mod_t *mod, tnode_t *node) in svc_release() argument
328 topo_method_unregister_all(mod, node); in svc_release()
347 svc_fmri_prop_get(topo_mod_t *mod, tnode_t *node, topo_version_t version, in svc_fmri_prop_get() argument
359 return (topo_mod_seterrno(mod, ETOPO_METHOD_VERNEW)); in svc_fmri_prop_get()
365 return (topo_mod_seterrno(mod, EMOD_METHOD_INVAL)); in svc_fmri_prop_get()
372 return (topo_mod_seterrno(mod, EMOD_METHOD_INVAL)); in svc_fmri_prop_get()
381 return (topo_mod_seterrno(mod, EMOD_METHOD_INVAL)); in svc_fmri_prop_get()
388 if ((search = topo_mod_alloc(mod, len)) == NULL) in svc_fmri_prop_get()
389 return (topo_mod_seterrno(mod, EMOD_NOMEM)); in svc_fmri_prop_get()
395 topo_mod_free(mod, search, len); in svc_fmri_prop_get()
396 return (topo_mod_seterrno(mod, EMOD_NODE_NOENT)); in svc_fmri_prop_get()
403 topo_mod_free(mod, search, len); in svc_fmri_prop_get()
404 return (topo_mod_seterrno(mod, EMOD_NODE_NOENT)); in svc_fmri_prop_get()
408 topo_mod_free(mod, search, len); in svc_fmri_prop_get()
418 svc_fmri_nvl2str(topo_mod_t *mod, tnode_t *node, topo_version_t version, in svc_fmri_nvl2str() argument
434 return (topo_mod_seterrno(mod, EMOD_VER_NEW)); in svc_fmri_nvl2str()
438 return (topo_mod_seterrno(mod, EMOD_FMRI_NVL)); in svc_fmri_nvl2str()
445 return (topo_mod_seterrno(mod, EMOD_FMRI_NVL)); in svc_fmri_nvl2str()
448 return (topo_mod_seterrno(mod, EMOD_FMRI_NVL)); in svc_fmri_nvl2str()
451 return (topo_mod_seterrno(mod, EMOD_FMRI_NVL)); in svc_fmri_nvl2str()
454 return (topo_mod_seterrno(mod, EMOD_FMRI_NVL)); in svc_fmri_nvl2str()
460 return (topo_mod_seterrno(mod, EMOD_FMRI_NVL)); in svc_fmri_nvl2str()
478 return (topo_mod_seterrno(mod, EMOD_FMRI_NVL)); in svc_fmri_nvl2str()
487 if ((buf = topo_mod_alloc(mod, size + 1)) == NULL) in svc_fmri_nvl2str()
488 return (topo_mod_seterrno(mod, EMOD_NOMEM)); in svc_fmri_nvl2str()
498 if (topo_mod_nvalloc(mod, &fmristr, NV_UNIQUE_NAME) != 0) { in svc_fmri_nvl2str()
499 topo_mod_strfree(mod, buf); in svc_fmri_nvl2str()
500 return (topo_mod_seterrno(mod, EMOD_NOMEM)); in svc_fmri_nvl2str()
504 topo_mod_strfree(mod, buf); in svc_fmri_nvl2str()
506 return (topo_mod_seterrno(mod, EMOD_NOMEM)); in svc_fmri_nvl2str()
508 topo_mod_strfree(mod, buf); in svc_fmri_nvl2str()
516 svc_fmri_str2nvl(topo_mod_t *mod, tnode_t *node, topo_version_t version, in svc_fmri_str2nvl() argument
523 return (topo_mod_seterrno(mod, EMOD_VER_NEW)); in svc_fmri_str2nvl()
526 return (topo_mod_seterrno(mod, EMOD_FMRI_NVL)); in svc_fmri_str2nvl()
529 return (topo_mod_seterrno(mod, EMOD_FMRI_MALFORM)); in svc_fmri_str2nvl()
531 if (topo_mod_nvalloc(mod, &fmri, NV_UNIQUE_NAME) != 0) in svc_fmri_str2nvl()
532 return (topo_mod_seterrno(mod, EMOD_NOMEM)); in svc_fmri_str2nvl()
638 return (topo_mod_seterrno(mod, EMOD_FMRI_MALFORM)); in svc_fmri_str2nvl()
642 return (topo_mod_seterrno(mod, EMOD_NOMEM)); in svc_fmri_str2nvl()
697 svc_get_state(topo_mod_t *mod, nvlist_t *fmri, boolean_t presence_only, in svc_get_state() argument
714 if ((hdl = svc_get_handle(mod)) == NULL) in svc_get_state()
720 return (topo_mod_seterrno(mod, EMOD_FMRI_MALFORM)); in svc_get_state()
812 svc_fmri_present(topo_mod_t *mod, tnode_t *node, topo_version_t version, in svc_fmri_present() argument
818 return (topo_mod_seterrno(mod, EMOD_VER_NEW)); in svc_fmri_present()
820 if (svc_get_state(mod, in, B_TRUE, &state) != 0) in svc_fmri_present()
823 if (topo_mod_nvalloc(mod, out, NV_UNIQUE_NAME) != 0) in svc_fmri_present()
824 return (topo_mod_seterrno(mod, EMOD_NVL_INVAL)); in svc_fmri_present()
828 return (topo_mod_seterrno(mod, EMOD_NVL_INVAL)); in svc_fmri_present()
836 svc_fmri_replaced(topo_mod_t *mod, tnode_t *node, topo_version_t version, in svc_fmri_replaced() argument
842 return (topo_mod_seterrno(mod, EMOD_VER_NEW)); in svc_fmri_replaced()
844 if (svc_get_state(mod, in, B_TRUE, &state) != 0) in svc_fmri_replaced()
847 if (topo_mod_nvalloc(mod, out, NV_UNIQUE_NAME) != 0) in svc_fmri_replaced()
848 return (topo_mod_seterrno(mod, EMOD_NVL_INVAL)); in svc_fmri_replaced()
853 return (topo_mod_seterrno(mod, EMOD_NVL_INVAL)); in svc_fmri_replaced()
861 svc_fmri_service_state(topo_mod_t *mod, tnode_t *node, topo_version_t version, in svc_fmri_service_state() argument
867 return (topo_mod_seterrno(mod, EMOD_VER_NEW)); in svc_fmri_service_state()
869 if (svc_get_state(mod, in, B_FALSE, &state) != 0) in svc_fmri_service_state()
872 if (topo_mod_nvalloc(mod, out, NV_UNIQUE_NAME) != 0) in svc_fmri_service_state()
873 return (topo_mod_seterrno(mod, EMOD_NVL_INVAL)); in svc_fmri_service_state()
877 return (topo_mod_seterrno(mod, EMOD_NVL_INVAL)); in svc_fmri_service_state()
885 svc_fmri_unusable(topo_mod_t *mod, tnode_t *node, topo_version_t version, in svc_fmri_unusable() argument
891 return (topo_mod_seterrno(mod, EMOD_VER_NEW)); in svc_fmri_unusable()
893 if (svc_get_state(mod, in, B_FALSE, &state) != 0) in svc_fmri_unusable()
896 if (topo_mod_nvalloc(mod, out, NV_UNIQUE_NAME) != 0) in svc_fmri_unusable()
897 return (topo_mod_seterrno(mod, EMOD_NVL_INVAL)); in svc_fmri_unusable()
902 return (topo_mod_seterrno(mod, EMOD_NVL_INVAL)); in svc_fmri_unusable()