Lines Matching defs:prop
1447 di_prop_next(di_node_t node, di_prop_t prop)
1460 * Find which prop list we are at
1462 if (prop != DI_PROP_NIL)
1463 list = DI_PROP(prop)->prop_list;
1468 prop = di_prop_drv_next(node, prop);
1471 prop = di_prop_sys_next(node, prop);
1474 prop = di_prop_global_next(node, prop);
1477 prop = di_prop_hw_next(node, prop);
1483 } while ((prop == DI_PROP_NIL) && (list <= DI_PROP_HW_LIST));
1485 return (prop);
1489 di_prop_devt(di_prop_t prop)
1491 return (makedev(DI_PROP(prop)->dev_major, DI_PROP(prop)->dev_minor));
1495 di_prop_name(di_prop_t prop)
1497 if (DI_PROP(prop)->prop_name == 0)
1500 return ((caddr_t)prop - DI_PROP(prop)->self + DI_PROP(prop)->prop_name);
1504 di_prop_type(di_prop_t prop)
1506 uint_t flags = DI_PROP(prop)->prop_flags;
1511 if (DI_PROP(prop)->prop_len == 0)
1547 di_prop_ints(di_prop_t prop, int **prop_data)
1549 if (DI_PROP(prop)->prop_len == 0)
1552 if ((DI_PROP(prop)->prop_data == 0) ||
1553 (DI_PROP(prop)->prop_data == (di_off_t)-1)) {
1559 *prop_data = (int *)((void *)((caddr_t)prop - DI_PROP(prop)->self
1560 + DI_PROP(prop)->prop_data));
1563 DI_PROP(prop)->prop_len, DI_PROP_TYPE_INT, 0));
1567 di_prop_int64(di_prop_t prop, int64_t **prop_data)
1569 if (DI_PROP(prop)->prop_len == 0)
1572 if ((DI_PROP(prop)->prop_data == 0) ||
1573 (DI_PROP(prop)->prop_data == (di_off_t)-1)) {
1579 *prop_data = (int64_t *)((void *)((caddr_t)prop - DI_PROP(prop)->self
1580 + DI_PROP(prop)->prop_data));
1583 DI_PROP(prop)->prop_len, DI_PROP_TYPE_INT64, 0));
1587 di_prop_strings(di_prop_t prop, char **prop_data)
1589 if (DI_PROP(prop)->prop_len == 0)
1592 if ((DI_PROP(prop)->prop_data == 0) ||
1593 (DI_PROP(prop)->prop_data == (di_off_t)-1)) {
1599 *prop_data = (char *)((caddr_t)prop - DI_PROP(prop)->self
1600 + DI_PROP(prop)->prop_data);
1603 DI_PROP(prop)->prop_len, DI_PROP_TYPE_STRING, 0));
1607 di_prop_bytes(di_prop_t prop, uchar_t **prop_data)
1609 if (DI_PROP(prop)->prop_len == 0)
1612 if ((DI_PROP(prop)->prop_data == 0) ||
1613 (DI_PROP(prop)->prop_data == (di_off_t)-1)) {
1619 *prop_data = (uchar_t *)((caddr_t)prop - DI_PROP(prop)->self
1620 + DI_PROP(prop)->prop_data);
1623 DI_PROP(prop)->prop_len, DI_PROP_TYPE_BYTE, 0));
1630 match_prop(di_prop_t prop, dev_t match_dev, const char *name, int type)
1635 if (di_prop_name(prop) == NULL) {
1641 if (strcmp(name, di_prop_name(prop)) != 0)
1644 if ((match_dev != DDI_DEV_T_ANY) && (di_prop_devt(prop) != match_dev))
1650 prop_type = di_prop_type(prop);
1662 di_prop_t prop = DI_PROP_NIL;
1674 while ((prop = di_prop_next(node, prop)) != DI_PROP_NIL) {
1675 DPRINTF((DI_TRACE1, "match prop name %s, devt 0x%lx, type %d\n",
1676 di_prop_name(prop), di_prop_devt(prop),
1677 di_prop_type(prop)));
1678 if (match_prop(prop, match_dev, name, type))
1679 return (prop);
1688 di_prop_t prop = DI_PROP_NIL;
1696 while ((prop = di_prop_next(node, prop)) != DI_PROP_NIL) {
1697 DPRINTF((DI_TRACE1, "found prop name %s, devt 0x%lx, type %d\n",
1698 di_prop_name(prop), di_prop_devt(prop),
1699 di_prop_type(prop)));
1701 if (strcmp(name, di_prop_name(prop)) == 0 &&
1703 di_prop_devt(prop) == match_dev))
1704 return (prop);
1714 di_prop_t prop;
1716 if ((prop = di_prop_search(dev, node, prop_name,
1720 return (di_prop_ints(prop, (void *)prop_data));
1727 di_prop_t prop;
1729 if ((prop = di_prop_search(dev, node, prop_name,
1733 return (di_prop_int64(prop, (void *)prop_data));
1740 di_prop_t prop;
1742 if ((prop = di_prop_search(dev, node, prop_name,
1746 return (di_prop_strings(prop, (void *)prop_data));
1753 di_prop_t prop;
1755 if ((prop = di_prop_search(dev, node, prop_name,
1759 return (di_prop_bytes(prop, (void *)prop_data));
1773 di_prop_next_common(di_node_t node, di_prop_t prop, int prop_type)
1778 if (prop != DI_PROP_NIL) {
1779 if (DI_PROP(prop)->next) {
1780 return (DI_PROP((caddr_t)prop -
1781 DI_PROP(prop)->self + DI_PROP(prop)->next));
1789 * prop is NIL, caller asks for first property
1822 * no prop found. Check the reason for not found
1833 di_prop_drv_next(di_node_t node, di_prop_t prop)
1835 return (di_prop_next_common(node, prop, PROP_TYPE_DRV));
1839 di_prop_sys_next(di_node_t node, di_prop_t prop)
1841 return (di_prop_next_common(node, prop, PROP_TYPE_SYS));
1845 di_prop_global_next(di_node_t node, di_prop_t prop)
1847 return (di_prop_next_common(node, prop, PROP_TYPE_GLOB));
1851 di_prop_hw_next(di_node_t node, di_prop_t prop)
1853 return (di_prop_next_common(node, prop, PROP_TYPE_HW));
1857 di_prop_rawdata(di_prop_t prop, uchar_t **prop_data)
1860 if (prop == DI_PROP_NIL) {
1866 if (DI_PROP(prop)->prop_len == 0) {
1871 if ((DI_PROP(prop)->prop_data == 0) ||
1872 (DI_PROP(prop)->prop_data == (di_off_t)-1)) {
1881 *prop_data = (uchar_t *)((caddr_t)prop - DI_PROP(prop)->self +
1882 DI_PROP(prop)->prop_data);
1884 return (DI_PROP(prop)->prop_len);
2128 di_path_prop_next(di_path_t path, di_path_prop_t prop)
2138 * prop is not NIL
2140 if (prop != DI_PROP_NIL) {
2141 if (DI_PROP(prop)->next != 0)
2142 return (DI_PATHPROP((caddr_t)prop -
2143 DI_PROP(prop)->self + DI_PROP(prop)->next));
2151 * prop is NIL-->caller asks for first property
2171 di_path_prop_name(di_path_prop_t prop)
2174 pa = (caddr_t)prop - DI_PATHPROP(prop)->self;
2175 return ((char *)(pa + DI_PATHPROP(prop)->prop_name));
2179 di_path_prop_len(di_path_prop_t prop)
2181 return (DI_PATHPROP(prop)->prop_len);
2185 di_path_prop_type(di_path_prop_t prop)
2187 switch (DI_PATHPROP(prop)->prop_type) {
2201 di_path_prop_bytes(di_path_prop_t prop, uchar_t **prop_data)
2203 if ((DI_PATHPROP(prop)->prop_data == 0) ||
2204 (DI_PATHPROP(prop)->prop_data == (di_off_t)-1)) {
2210 *prop_data = (uchar_t *)((caddr_t)prop - DI_PATHPROP(prop)->self
2211 + DI_PATHPROP(prop)->prop_data);
2214 DI_PATHPROP(prop)->prop_len, DI_PROP_TYPE_BYTE, 0));
2218 di_path_prop_ints(di_path_prop_t prop, int **prop_data)
2220 if (DI_PATHPROP(prop)->prop_len == 0)
2223 if ((DI_PATHPROP(prop)->prop_data == 0) ||
2224 (DI_PATHPROP(prop)->prop_data == (di_off_t)-1)) {
2230 *prop_data = (int *)((void *)((caddr_t)prop - DI_PATHPROP(prop)->self
2231 + DI_PATHPROP(prop)->prop_data));
2234 DI_PATHPROP(prop)->prop_len, DI_PROP_TYPE_INT, 0));
2238 di_path_prop_int64s(di_path_prop_t prop, int64_t **prop_data)
2240 if (DI_PATHPROP(prop)->prop_len == 0)
2243 if ((DI_PATHPROP(prop)->prop_data == 0) ||
2244 (DI_PATHPROP(prop)->prop_data == (di_off_t)-1)) {
2250 *prop_data = (int64_t *)((void *)((caddr_t)prop -
2251 DI_PATHPROP(prop)->self + DI_PATHPROP(prop)->prop_data));
2254 DI_PATHPROP(prop)->prop_len, DI_PROP_TYPE_INT64, 0));
2258 di_path_prop_strings(di_path_prop_t prop, char **prop_data)
2260 if (DI_PATHPROP(prop)->prop_len == 0)
2263 if ((DI_PATHPROP(prop)->prop_data == 0) ||
2264 (DI_PATHPROP(prop)->prop_data == (di_off_t)-1)) {
2270 *prop_data = (char *)((caddr_t)prop - DI_PATHPROP(prop)->self
2271 + DI_PATHPROP(prop)->prop_data);
2274 DI_PATHPROP(prop)->prop_len, DI_PROP_TYPE_STRING, 0));
2280 di_path_prop_t prop = DI_PROP_NIL;
2291 while ((prop = di_path_prop_next(path, prop)) != DI_PROP_NIL) {
2292 int prop_type = di_path_prop_type(prop);
2294 DPRINTF((DI_TRACE1, "match path prop name %s, type %d\n",
2295 di_path_prop_name(prop), prop_type));
2297 if (strcmp(name, di_path_prop_name(prop)) != 0)
2303 return (prop);
2313 di_path_prop_t prop;
2315 if ((prop = di_path_prop_search(path, prop_name,
2319 return (di_path_prop_bytes(prop, prop_data));
2326 di_path_prop_t prop;
2328 if ((prop = di_path_prop_search(path, prop_name,
2332 return (di_path_prop_ints(prop, prop_data));
2339 di_path_prop_t prop;
2341 if ((prop = di_path_prop_search(path, prop_name,
2345 return (di_path_prop_int64s(prop, prop_data));
2351 di_path_prop_t prop;
2353 if ((prop = di_path_prop_search(path, prop_name,
2357 return (di_path_prop_strings(prop, prop_data));
2828 struct di_prom_prop *list; /* linked list of prop */
2898 struct di_prom_prop *prop = (struct di_prom_prop *)prom_prop;
2917 (void) strcpy(opp->oprom_array, prop->name);
2923 * Prom property found. Allocate struct for storing prop
2924 * (reuse variable prop)
2926 if ((prop = malloc(sizeof (struct di_prom_prop))) == NULL)
2932 if ((prop->name = strdup(opp->oprom_array)) == NULL) {
2933 free(prop);
2944 free(prop->name);
2945 free(prop);
2952 prop->len = opp->oprom_size;
2954 if (prop->len == 0)
2955 prop->data = NULL;
2956 else if ((prop->data = malloc(prop->len)) == NULL) {
2957 free(prop->name);
2958 free(prop);
2962 bcopy(opp->oprom_array, prop->data, prop->len);
2965 * Prepend prop to list in prom handle
2967 prop->next = p->list;
2968 p->list = prop;
2970 return ((di_prom_prop_t)prop);
2978 DPRINTF((DI_TRACE1, "Search next prop for node 0x%p with ph 0x%p\n",
3041 * Returns length if found, -1 if prop doesn't exist.
3048 struct di_prom_prop *prop;
3093 * Prom property found. Allocate struct for storing prop
3095 if ((prop = malloc(sizeof (struct di_prom_prop))) == NULL) {
3099 prop->name = NULL; /* we don't need the name */
3100 prop->len = opp->oprom_len;
3102 if (prop->len == 0) { /* boolean property */
3103 prop->data = NULL;
3104 prop->next = p->list;
3105 p->list = prop;
3107 return (prop);
3121 free(prop);
3128 if ((prop->data = malloc(prop->len)) == NULL) {
3130 free(prop);
3134 bcopy(opp->oprom_array, prop->data, prop->len);
3136 prop->next = p->list;
3137 p->list = prop;
3140 return (prop);
3148 struct di_prom_prop *prop;
3150 prop = di_prom_prop_lookup_common(ph, node, prom_prop_name);
3152 if (prop == NULL) {
3157 if (prop->len == 0) { /* boolean property */
3162 len = di_prop_decode_common((void *)&prop->data, prop->len,
3164 *prom_prop_data = (int *)((void *)prop->data);
3174 struct di_prom_prop *prop;
3176 prop = di_prom_prop_lookup_common(ph, node, prom_prop_name);
3178 if (prop == NULL) {
3183 if (prop->len == 0) { /* boolean property */
3192 if (((char *)prop->data)[prop->len - 1] != '\0') {
3194 prop->len++;
3195 if ((tmp = realloc(prop->data, prop->len)) == NULL)
3198 prop->data = tmp;
3199 ((char *)prop->data)[prop->len - 1] = '\0';
3201 "node=%s, prop=%s, val=%s\n",
3202 di_node_name(node), prom_prop_name, prop->data));
3205 len = di_prop_decode_common((void *)&prop->data, prop->len,
3207 *prom_prop_data = (char *)prop->data;
3217 struct di_prom_prop *prop;
3219 prop = di_prom_prop_lookup_common(ph, node, prom_prop_name);
3221 if (prop == NULL) {
3226 if (prop->len == 0) { /* boolean property */
3231 len = di_prop_decode_common((void *)&prop->data, prop->len,
3233 *prom_prop_data = prop->data;
3244 di_prop_slot_names(di_prop_t prop, di_slot_name_t **prop_data)
3248 char *nm = di_prop_name(prop);
3253 rawlen = di_prop_rawdata(prop, &rawdata);
3273 di_prop_t prop;
3279 if ((prop = di_prop_find(dev, node, DI_PROP_SLOT_NAMES)) ==
3285 return (di_prop_slot_names(prop, (void *)prop_data));