Lines Matching defs:prop
1552 di_prop_next(di_node_t node, di_prop_t prop)
1565 * Find which prop list we are at
1567 if (prop != DI_PROP_NIL)
1568 list = DI_PROP(prop)->prop_list;
1573 prop = di_prop_drv_next(node, prop);
1576 prop = di_prop_sys_next(node, prop);
1579 prop = di_prop_global_next(node, prop);
1582 prop = di_prop_vendor_global_next(node, prop);
1585 prop = di_prop_admin_global_next(node, prop);
1588 prop = di_prop_hw_next(node, prop);
1591 prop = di_prop_vendor_next(node, prop);
1594 prop = di_prop_admin_next(node, prop);
1600 } while ((prop == DI_PROP_NIL) && (list < DI_PROP_NLISTS));
1602 return (prop);
1606 di_prop_devt(di_prop_t prop)
1608 return (makedev(DI_PROP(prop)->dev_major, DI_PROP(prop)->dev_minor));
1612 di_prop_name(di_prop_t prop)
1614 if (DI_PROP(prop)->prop_name == 0)
1617 return ((caddr_t)prop - DI_PROP(prop)->self + DI_PROP(prop)->prop_name);
1621 di_prop_type(di_prop_t prop)
1623 uint_t flags = DI_PROP(prop)->prop_flags;
1628 if (DI_PROP(prop)->prop_len == 0)
1664 di_prop_ints(di_prop_t prop, int **prop_data)
1666 if (DI_PROP(prop)->prop_len == 0)
1669 if ((DI_PROP(prop)->prop_data == 0) ||
1670 (DI_PROP(prop)->prop_data == (di_off_t)-1)) {
1676 *prop_data = (int *)((void *)((caddr_t)prop - DI_PROP(prop)->self
1677 + DI_PROP(prop)->prop_data));
1680 DI_PROP(prop)->prop_len, DI_PROP_TYPE_INT, 0));
1684 di_prop_int64(di_prop_t prop, int64_t **prop_data)
1686 if (DI_PROP(prop)->prop_len == 0)
1689 if ((DI_PROP(prop)->prop_data == 0) ||
1690 (DI_PROP(prop)->prop_data == (di_off_t)-1)) {
1696 *prop_data = (int64_t *)((void *)((caddr_t)prop - DI_PROP(prop)->self
1697 + DI_PROP(prop)->prop_data));
1700 DI_PROP(prop)->prop_len, DI_PROP_TYPE_INT64, 0));
1704 di_prop_strings(di_prop_t prop, char **prop_data)
1706 if (DI_PROP(prop)->prop_len == 0)
1709 if ((DI_PROP(prop)->prop_data == 0) ||
1710 (DI_PROP(prop)->prop_data == (di_off_t)-1)) {
1716 *prop_data = (char *)((caddr_t)prop - DI_PROP(prop)->self
1717 + DI_PROP(prop)->prop_data);
1720 DI_PROP(prop)->prop_len, DI_PROP_TYPE_STRING, 0));
1724 di_prop_bytes(di_prop_t prop, uchar_t **prop_data)
1726 if (DI_PROP(prop)->prop_len == 0)
1729 if ((DI_PROP(prop)->prop_data == 0) ||
1730 (DI_PROP(prop)->prop_data == (di_off_t)-1)) {
1736 *prop_data = (uchar_t *)((caddr_t)prop - DI_PROP(prop)->self
1737 + DI_PROP(prop)->prop_data);
1740 DI_PROP(prop)->prop_len, DI_PROP_TYPE_BYTE, 0));
1747 match_prop(di_prop_t prop, dev_t match_dev, const char *name, int type)
1752 if (di_prop_name(prop) == NULL) {
1758 if (strcmp(name, di_prop_name(prop)) != 0)
1761 if ((match_dev != DDI_DEV_T_ANY) && (di_prop_devt(prop) != match_dev))
1767 prop_type = di_prop_type(prop);
1779 di_prop_t prop = DI_PROP_NIL;
1791 while ((prop = di_prop_next(node, prop)) != DI_PROP_NIL) {
1792 DPRINTF((DI_TRACE1, "match prop name %s, devt 0x%lx, type %d\n",
1793 di_prop_name(prop), di_prop_devt(prop),
1794 di_prop_type(prop)));
1795 if (match_prop(prop, match_dev, name, type))
1796 return (prop);
1805 di_prop_t prop = DI_PROP_NIL;
1813 while ((prop = di_prop_next(node, prop)) != DI_PROP_NIL) {
1814 DPRINTF((DI_TRACE1, "found prop name %s, devt 0x%lx, type %d\n",
1815 di_prop_name(prop), di_prop_devt(prop),
1816 di_prop_type(prop)));
1818 if (strcmp(name, di_prop_name(prop)) == 0 &&
1820 di_prop_devt(prop) == match_dev))
1821 return (prop);
1838 di_prop_t prop;
1839 if ((prop = di_prop_search(dev, node, prop_name,
1843 return (di_prop_ints(prop, (void *)prop_data));
1850 di_prop_t prop;
1852 if ((prop = di_prop_search(dev, node, prop_name,
1856 return (di_prop_int64(prop, (void *)prop_data));
1863 di_prop_t prop;
1865 if ((prop = di_prop_search(dev, node, prop_name,
1869 return (di_prop_strings(prop, (void *)prop_data));
1876 di_prop_t prop;
1878 if ((prop = di_prop_search(dev, node, prop_name,
1882 return (di_prop_bytes(prop, (void *)prop_data));
1900 di_prop_next_common(di_node_t node, di_prop_t prop, int prop_type)
1905 if (prop != DI_PROP_NIL) {
1906 if (DI_PROP(prop)->next) {
1907 return (DI_PROP((caddr_t)prop -
1908 DI_PROP(prop)->self + DI_PROP(prop)->next));
1916 * prop is NIL, caller asks for first property
1982 * no prop found. Check the reason for not found
1993 di_prop_drv_next(di_node_t node, di_prop_t prop)
1995 return (di_prop_next_common(node, prop, PROP_TYPE_DRV));
1999 di_prop_sys_next(di_node_t node, di_prop_t prop)
2001 return (di_prop_next_common(node, prop, PROP_TYPE_SYS));
2005 di_prop_global_next(di_node_t node, di_prop_t prop)
2007 return (di_prop_next_common(node, prop, PROP_TYPE_GLOB));
2011 di_prop_vendor_global_next(di_node_t node, di_prop_t prop)
2013 return (di_prop_next_common(node, prop, PROP_TYPE_VENDOR_GLOBAL));
2017 di_prop_admin_global_next(di_node_t node, di_prop_t prop)
2019 return (di_prop_next_common(node, prop, PROP_TYPE_ADMIN_GLOBAL));
2023 di_prop_hw_next(di_node_t node, di_prop_t prop)
2025 return (di_prop_next_common(node, prop, PROP_TYPE_HW));
2029 di_prop_vendor_next(di_node_t node, di_prop_t prop)
2031 return (di_prop_next_common(node, prop, PROP_TYPE_VENDOR));
2035 di_prop_admin_next(di_node_t node, di_prop_t prop)
2037 return (di_prop_next_common(node, prop, PROP_TYPE_ADMIN));
2041 di_prop_rawdata(di_prop_t prop, uchar_t **prop_data)
2044 if (prop == DI_PROP_NIL) {
2050 if (DI_PROP(prop)->prop_len == 0) {
2055 if ((DI_PROP(prop)->prop_data == 0) ||
2056 (DI_PROP(prop)->prop_data == (di_off_t)-1)) {
2065 *prop_data = (uchar_t *)((caddr_t)prop - DI_PROP(prop)->self +
2066 DI_PROP(prop)->prop_data);
2068 return (DI_PROP(prop)->prop_len);
2312 di_path_prop_next(di_path_t path, di_path_prop_t prop)
2322 * prop is not NIL
2324 if (prop != DI_PROP_NIL) {
2325 if (DI_PROP(prop)->next != 0)
2326 return (DI_PATHPROP((caddr_t)prop -
2327 DI_PROP(prop)->self + DI_PROP(prop)->next));
2335 * prop is NIL-->caller asks for first property
2355 di_path_prop_name(di_path_prop_t prop)
2358 pa = (caddr_t)prop - DI_PATHPROP(prop)->self;
2359 return ((char *)(pa + DI_PATHPROP(prop)->prop_name));
2363 di_path_prop_len(di_path_prop_t prop)
2365 return (DI_PATHPROP(prop)->prop_len);
2369 di_path_prop_type(di_path_prop_t prop)
2371 switch (DI_PATHPROP(prop)->prop_type) {
2385 di_path_prop_bytes(di_path_prop_t prop, uchar_t **prop_data)
2387 if ((DI_PATHPROP(prop)->prop_data == 0) ||
2388 (DI_PATHPROP(prop)->prop_data == (di_off_t)-1)) {
2394 *prop_data = (uchar_t *)((caddr_t)prop - DI_PATHPROP(prop)->self
2395 + DI_PATHPROP(prop)->prop_data);
2398 DI_PATHPROP(prop)->prop_len, DI_PROP_TYPE_BYTE, 0));
2402 di_path_prop_ints(di_path_prop_t prop, int **prop_data)
2404 if (DI_PATHPROP(prop)->prop_len == 0)
2407 if ((DI_PATHPROP(prop)->prop_data == 0) ||
2408 (DI_PATHPROP(prop)->prop_data == (di_off_t)-1)) {
2414 *prop_data = (int *)((void *)((caddr_t)prop - DI_PATHPROP(prop)->self
2415 + DI_PATHPROP(prop)->prop_data));
2418 DI_PATHPROP(prop)->prop_len, DI_PROP_TYPE_INT, 0));
2422 di_path_prop_int64s(di_path_prop_t prop, int64_t **prop_data)
2424 if (DI_PATHPROP(prop)->prop_len == 0)
2427 if ((DI_PATHPROP(prop)->prop_data == 0) ||
2428 (DI_PATHPROP(prop)->prop_data == (di_off_t)-1)) {
2434 *prop_data = (int64_t *)((void *)((caddr_t)prop -
2435 DI_PATHPROP(prop)->self + DI_PATHPROP(prop)->prop_data));
2438 DI_PATHPROP(prop)->prop_len, DI_PROP_TYPE_INT64, 0));
2442 di_path_prop_strings(di_path_prop_t prop, char **prop_data)
2444 if (DI_PATHPROP(prop)->prop_len == 0)
2447 if ((DI_PATHPROP(prop)->prop_data == 0) ||
2448 (DI_PATHPROP(prop)->prop_data == (di_off_t)-1)) {
2454 *prop_data = (char *)((caddr_t)prop - DI_PATHPROP(prop)->self
2455 + DI_PATHPROP(prop)->prop_data);
2458 DI_PATHPROP(prop)->prop_len, DI_PROP_TYPE_STRING, 0));
2464 di_path_prop_t prop = DI_PROP_NIL;
2475 while ((prop = di_path_prop_next(path, prop)) != DI_PROP_NIL) {
2476 int prop_type = di_path_prop_type(prop);
2478 DPRINTF((DI_TRACE1, "match path prop name %s, type %d\n",
2479 di_path_prop_name(prop), prop_type));
2481 if (strcmp(name, di_path_prop_name(prop)) != 0)
2487 return (prop);
2497 di_path_prop_t prop;
2499 if ((prop = di_path_prop_search(path, prop_name,
2503 return (di_path_prop_bytes(prop, prop_data));
2510 di_path_prop_t prop;
2512 if ((prop = di_path_prop_search(path, prop_name,
2516 return (di_path_prop_ints(prop, prop_data));
2523 di_path_prop_t prop;
2525 if ((prop = di_path_prop_search(path, prop_name,
2529 return (di_path_prop_int64s(prop, prop_data));
2535 di_path_prop_t prop;
2537 if ((prop = di_path_prop_search(path, prop_name,
2541 return (di_path_prop_strings(prop, prop_data));
3063 struct di_prom_prop *list; /* linked list of prop */
3133 struct di_prom_prop *prop = (struct di_prom_prop *)prom_prop;
3152 (void) strcpy(opp->oprom_array, prop->name);
3158 * Prom property found. Allocate struct for storing prop
3159 * (reuse variable prop)
3161 if ((prop = malloc(sizeof (struct di_prom_prop))) == NULL)
3167 if ((prop->name = strdup(opp->oprom_array)) == NULL) {
3168 free(prop);
3179 free(prop->name);
3180 free(prop);
3187 prop->len = opp->oprom_size;
3189 if (prop->len == 0)
3190 prop->data = NULL;
3191 else if ((prop->data = malloc(prop->len)) == NULL) {
3192 free(prop->name);
3193 free(prop);
3197 bcopy(opp->oprom_array, prop->data, prop->len);
3200 * Prepend prop to list in prom handle
3202 prop->next = p->list;
3203 p->list = prop;
3205 return ((di_prom_prop_t)prop);
3213 DPRINTF((DI_TRACE1, "Search next prop for node 0x%p with ph 0x%p\n",
3276 * Returns length if found, -1 if prop doesn't exist.
3283 struct di_prom_prop *prop;
3328 * Prom property found. Allocate struct for storing prop
3330 if ((prop = malloc(sizeof (struct di_prom_prop))) == NULL) {
3334 prop->name = NULL; /* we don't need the name */
3335 prop->len = opp->oprom_len;
3337 if (prop->len == 0) { /* boolean property */
3338 prop->data = NULL;
3339 prop->next = p->list;
3340 p->list = prop;
3342 return (prop);
3356 free(prop);
3363 if ((prop->data = malloc(prop->len)) == NULL) {
3365 free(prop);
3369 bcopy(opp->oprom_array, prop->data, prop->len);
3371 prop->next = p->list;
3372 p->list = prop;
3375 return (prop);
3383 struct di_prom_prop *prop;
3385 prop = di_prom_prop_lookup_common(ph, node, prom_prop_name);
3387 if (prop == NULL) {
3392 if (prop->len == 0) { /* boolean property */
3397 len = di_prop_decode_common((void *)&prop->data, prop->len,
3399 *prom_prop_data = (int *)((void *)prop->data);
3409 struct di_prom_prop *prop;
3411 prop = di_prom_prop_lookup_common(ph, node, prom_prop_name);
3413 if (prop == NULL) {
3418 if (prop->len == 0) { /* boolean property */
3427 if (((char *)prop->data)[prop->len - 1] != '\0') {
3429 prop->len++;
3430 if ((tmp = realloc(prop->data, prop->len)) == NULL)
3433 prop->data = tmp;
3434 ((char *)prop->data)[prop->len - 1] = '\0';
3436 "node=%s, prop=%s, val=%s\n",
3437 di_node_name(node), prom_prop_name, prop->data));
3440 len = di_prop_decode_common((void *)&prop->data, prop->len,
3442 *prom_prop_data = (char *)prop->data;
3452 struct di_prom_prop *prop;
3454 prop = di_prom_prop_lookup_common(ph, node, prom_prop_name);
3456 if (prop == NULL) {
3461 if (prop->len == 0) { /* boolean property */
3466 len = di_prop_decode_common((void *)&prop->data, prop->len,
3468 *prom_prop_data = prop->data;
3479 di_prop_slot_names(di_prop_t prop, di_slot_name_t **prop_data)
3483 char *nm = di_prop_name(prop);
3488 rawlen = di_prop_rawdata(prop, &rawdata);
3508 di_prop_t prop;
3514 if ((prop = di_prop_find(dev, node, DI_PROP_SLOT_NAMES)) ==
3520 return (di_prop_slot_names(prop, (void *)prop_data));