diff --git a/sys/arm/allwinner/aw_gpio.c b/sys/arm/allwinner/aw_gpio.c index b43654b82ad5..596d8308925c 100644 --- a/sys/arm/allwinner/aw_gpio.c +++ b/sys/arm/allwinner/aw_gpio.c @@ -559,10 +559,10 @@ aw_gpio_parse_function(phandle_t node) { char *function; - if (OF_getprop_alloc(node, "function", sizeof(*function), + if (OF_getprop_alloc(node, "function", (void **)&function) != -1) return (function); - if (OF_getprop_alloc(node, "allwinner,function", sizeof(*function), + if (OF_getprop_alloc(node, "allwinner,function", (void **)&function) != -1) return (function); diff --git a/sys/arm/allwinner/aw_if_dwc.c b/sys/arm/allwinner/aw_if_dwc.c index aaf05df76794..67458f89c583 100644 --- a/sys/arm/allwinner/aw_if_dwc.c +++ b/sys/arm/allwinner/aw_if_dwc.c @@ -72,7 +72,7 @@ a20_if_dwc_init(device_t dev) node = ofw_bus_get_node(dev); /* Configure PHY for MII or RGMII mode */ - if (OF_getprop_alloc(node, "phy-mode", 1, (void **)&phy_type)) { + if (OF_getprop_alloc(node, "phy-mode", (void **)&phy_type)) { error = clk_get_by_ofw_name(dev, 0, "allwinner_gmac_tx", &clk_tx); if (error != 0) { device_printf(dev, "could not get tx clk\n"); diff --git a/sys/arm/allwinner/if_awg.c b/sys/arm/allwinner/if_awg.c index 6f0cef88b185..a78826b2d4e0 100644 --- a/sys/arm/allwinner/if_awg.c +++ b/sys/arm/allwinner/if_awg.c @@ -1233,7 +1233,7 @@ awg_setup_phy(device_t dev) node = ofw_bus_get_node(dev); use_syscon = false; - if (OF_getprop_alloc(node, "phy-mode", 1, (void **)&phy_type) == 0) + if (OF_getprop_alloc(node, "phy-mode", (void **)&phy_type) == 0) return (0); if (sc->syscon != NULL || sc->res[_RES_SYSCON] != NULL) diff --git a/sys/arm/amlogic/aml8726/aml8726_ccm.c b/sys/arm/amlogic/aml8726/aml8726_ccm.c index 1c804c3ecda9..6fbc192a5350 100644 --- a/sys/arm/amlogic/aml8726/aml8726_ccm.c +++ b/sys/arm/amlogic/aml8726/aml8726_ccm.c @@ -87,7 +87,7 @@ aml8726_ccm_configure_gates(struct aml8726_ccm_softc *sc) node = ofw_bus_get_node(sc->dev); - len = OF_getprop_alloc(node, "functions", sizeof(char), + len = OF_getprop_alloc(node, "functions", (void **)&functions); if (len < 0) { diff --git a/sys/arm/amlogic/aml8726/aml8726_mmc.c b/sys/arm/amlogic/aml8726/aml8726_mmc.c index a671570eb4f9..beaf2cb0d74b 100644 --- a/sys/arm/amlogic/aml8726/aml8726_mmc.c +++ b/sys/arm/amlogic/aml8726/aml8726_mmc.c @@ -585,7 +585,7 @@ aml8726_mmc_attach(device_t dev) } len = OF_getprop_alloc(OF_node_from_xref(prop[0]), "amlogic,function", - sizeof(char), (void **)&function_name); + (void **)&function_name); if (len < 0) { device_printf(dev, @@ -635,7 +635,7 @@ aml8726_mmc_attach(device_t dev) } len = OF_getprop_alloc(node, "mmc-voltages", - sizeof(char), (void **)&voltages); + (void **)&voltages); if (len < 0) { device_printf(dev, "missing mmc-voltages attribute in FDT\n"); diff --git a/sys/arm/amlogic/aml8726/aml8726_pinctrl.c b/sys/arm/amlogic/aml8726/aml8726_pinctrl.c index 5465b1cbe04a..ad608b34fa75 100644 --- a/sys/arm/amlogic/aml8726/aml8726_pinctrl.c +++ b/sys/arm/amlogic/aml8726/aml8726_pinctrl.c @@ -194,7 +194,7 @@ aml8726_pinctrl_configure_pins(device_t dev, phandle_t cfgxref) node = OF_node_from_xref(cfgxref); len = OF_getprop_alloc(node, "amlogic,function", - sizeof(char), (void **)&function_name); + (void **)&function_name); if (len < 0) { device_printf(dev, @@ -216,7 +216,7 @@ aml8726_pinctrl_configure_pins(device_t dev, phandle_t cfgxref) OF_prop_free(function_name); len = OF_getprop_alloc(node, "amlogic,pull", - sizeof(char), (void **)&pull); + (void **)&pull); pm = aml8726_unknown_pm; @@ -257,7 +257,7 @@ aml8726_pinctrl_configure_pins(device_t dev, phandle_t cfgxref) } len = OF_getprop_alloc(node, "amlogic,pins", - sizeof(char), (void **)&pins); + (void **)&pins); if (len < 0) { device_printf(dev, "missing amlogic,pins attribute in FDT\n"); diff --git a/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c b/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c index cbd2f13340f2..fccc5cd393ad 100644 --- a/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c +++ b/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c @@ -796,7 +796,7 @@ aml8726_sdxc_attach(device_t dev) } len = OF_getprop_alloc(node, "mmc-voltages", - sizeof(char), (void **)&voltages); + (void **)&voltages); if (len < 0) { device_printf(dev, "missing mmc-voltages attribute in FDT\n"); diff --git a/sys/arm/amlogic/aml8726/aml8726_usb_phy-m3.c b/sys/arm/amlogic/aml8726/aml8726_usb_phy-m3.c index fbf18b796009..2cd155ee4e6b 100644 --- a/sys/arm/amlogic/aml8726/aml8726_usb_phy-m3.c +++ b/sys/arm/amlogic/aml8726/aml8726_usb_phy-m3.c @@ -126,7 +126,7 @@ aml8726_usb_phy_mode(const char *dwcotg_path, uint32_t *mode) *mode = 0; len = OF_getprop_alloc(node, "dr_mode", - sizeof(char), (void **)&usb_mode); + (void **)&usb_mode); if (len <= 0) return (0); diff --git a/sys/arm/amlogic/aml8726/aml8726_usb_phy-m6.c b/sys/arm/amlogic/aml8726/aml8726_usb_phy-m6.c index 3c6b796ead39..b0e5c68f1805 100644 --- a/sys/arm/amlogic/aml8726/aml8726_usb_phy-m6.c +++ b/sys/arm/amlogic/aml8726/aml8726_usb_phy-m6.c @@ -154,7 +154,7 @@ aml8726_usb_phy_attach(device_t dev) node = ofw_bus_get_node(dev); len = OF_getprop_alloc(node, "force-aca", - sizeof(char), (void **)&force_aca); + (void **)&force_aca); sc->force_aca = FALSE; diff --git a/sys/arm/broadcom/bcm2835/bcm2835_gpio.c b/sys/arm/broadcom/bcm2835/bcm2835_gpio.c index a9c70e12e99f..aaec0ee0ba97 100644 --- a/sys/arm/broadcom/bcm2835/bcm2835_gpio.c +++ b/sys/arm/broadcom/bcm2835/bcm2835_gpio.c @@ -677,7 +677,7 @@ bcm_gpio_get_reserved_pins(struct bcm_gpio_softc *sc) reserved = 0; node = OF_child(gpio); while ((node != 0) && (reserved == 0)) { - len = OF_getprop_alloc(node, "name", 1, (void **)&name); + len = OF_getprop_alloc(node, "name", (void **)&name); if (len == -1) return (-1); if (strcmp(name, "reserved") == 0) diff --git a/sys/arm/freescale/vybrid/vf_ccm.c b/sys/arm/freescale/vybrid/vf_ccm.c index 0dd57671f090..35806cae1d9f 100644 --- a/sys/arm/freescale/vybrid/vf_ccm.c +++ b/sys/arm/freescale/vybrid/vf_ccm.c @@ -419,7 +419,7 @@ ccm_fdt_set(struct ccm_softc *sc) if ((len = OF_getproplen(child, "clock_names")) > 0) { len = OF_getproplen(child, "clock_names"); - OF_getprop_alloc(child, "clock_names", 1, + OF_getprop_alloc(child, "clock_names", (void **)&fdt_config); while (len > 0) { diff --git a/sys/arm/mv/mv_localbus.c b/sys/arm/mv/mv_localbus.c index 0febb6305eda..e2367ceb0a86 100644 --- a/sys/arm/mv/mv_localbus.c +++ b/sys/arm/mv/mv_localbus.c @@ -175,7 +175,7 @@ fdt_localbus_reg_decode(phandle_t node, struct localbus_softc *sc, return (ENXIO); tuple_size = sizeof(pcell_t) * (addr_cells + size_cells); - tuples = OF_getprop_alloc(node, "reg", tuple_size, (void **)®); + tuples = OF_getprop_alloc_multi(node, "reg", tuple_size, (void **)®); debugf("addr_cells = %d, size_cells = %d\n", addr_cells, size_cells); debugf("tuples = %d, tuple size = %d\n", tuples, tuple_size); if (tuples <= 0) diff --git a/sys/arm/nvidia/as3722_gpio.c b/sys/arm/nvidia/as3722_gpio.c index 3529be89f4ec..2ec5b5282c16 100644 --- a/sys/arm/nvidia/as3722_gpio.c +++ b/sys/arm/nvidia/as3722_gpio.c @@ -212,12 +212,12 @@ as3722_pinmux_read_node(struct as3722_softc *sc, phandle_t node, { int rv, i; - *lpins = OF_getprop_alloc(node, "pins", 1, (void **)pins); + *lpins = OF_getprop_alloc(node, "pins", (void **)pins); if (*lpins <= 0) return (ENOENT); /* Read function (mux) settings. */ - rv = OF_getprop_alloc(node, "function", 1, (void **)&cfg->function); + rv = OF_getprop_alloc(node, "function", (void **)&cfg->function); if (rv <= 0) cfg->function = NULL; diff --git a/sys/arm/nvidia/as3722_regulators.c b/sys/arm/nvidia/as3722_regulators.c index 8ea00d902cab..5347d85cf302 100644 --- a/sys/arm/nvidia/as3722_regulators.c +++ b/sys/arm/nvidia/as3722_regulators.c @@ -542,7 +542,7 @@ struct as3722_regnode_init_def *init_def) if (rv <= 0) return; supply_node = OF_node_from_xref(supply_node); - rv = OF_getprop_alloc(supply_node, "regulator-name", 1, + rv = OF_getprop_alloc(supply_node, "regulator-name", (void **)&init_def->reg_init_def.parent_name); if (rv <= 0) init_def->reg_init_def.parent_name = NULL; diff --git a/sys/arm/nvidia/tegra124/tegra124_xusbpadctl.c b/sys/arm/nvidia/tegra124/tegra124_xusbpadctl.c index 7489f13a0a83..16b25483b146 100644 --- a/sys/arm/nvidia/tegra124/tegra124_xusbpadctl.c +++ b/sys/arm/nvidia/tegra124/tegra124_xusbpadctl.c @@ -874,7 +874,7 @@ process_lane(struct padctl_softc *sc, phandle_t node, struct padctl_pad *pad) name = NULL; function = NULL; - rv = OF_getprop_alloc(node, "name", 1, (void **)&name); + rv = OF_getprop_alloc(node, "name", (void **)&name); if (rv <= 0) { device_printf(sc->dev, "Cannot read lane name.\n"); return (ENXIO); @@ -888,7 +888,7 @@ process_lane(struct padctl_softc *sc, phandle_t node, struct padctl_pad *pad) } /* Read function (mux) settings. */ - rv = OF_getprop_alloc(node, "nvidia,function", 1, (void **)&function); + rv = OF_getprop_alloc(node, "nvidia,function", (void **)&function); if (rv <= 0) { device_printf(sc->dev, "Cannot read lane function.\n"); rv = ENXIO; @@ -947,7 +947,7 @@ process_pad(struct padctl_softc *sc, phandle_t node) int rv; name = NULL; - rv = OF_getprop_alloc(node, "name", 1, (void **)&name); + rv = OF_getprop_alloc(node, "name", (void **)&name); if (rv <= 0) { device_printf(sc->dev, "Cannot read pad name.\n"); return (ENXIO); @@ -992,7 +992,7 @@ process_port(struct padctl_softc *sc, phandle_t node) int rv; name = NULL; - rv = OF_getprop_alloc(node, "name", 1, (void **)&name); + rv = OF_getprop_alloc(node, "name", (void **)&name); if (rv <= 0) { device_printf(sc->dev, "Cannot read port name.\n"); return (ENXIO); diff --git a/sys/arm/nvidia/tegra_pinmux.c b/sys/arm/nvidia/tegra_pinmux.c index 3dcb9f840596..ae8ed5d83e64 100644 --- a/sys/arm/nvidia/tegra_pinmux.c +++ b/sys/arm/nvidia/tegra_pinmux.c @@ -648,12 +648,12 @@ pinmux_read_node(struct pinmux_softc *sc, phandle_t node, struct pincfg *cfg, { int rv, i; - *lpins = OF_getprop_alloc(node, "nvidia,pins", 1, (void **)pins); + *lpins = OF_getprop_alloc(node, "nvidia,pins", (void **)pins); if (*lpins <= 0) return (ENOENT); /* Read function (mux) settings. */ - rv = OF_getprop_alloc(node, "nvidia,function", 1, + rv = OF_getprop_alloc(node, "nvidia,function", (void **)&cfg->function); if (rv <= 0) cfg->function = NULL; diff --git a/sys/arm/nvidia/tegra_usbphy.c b/sys/arm/nvidia/tegra_usbphy.c index 34034416d9f2..bc2349023a9d 100644 --- a/sys/arm/nvidia/tegra_usbphy.c +++ b/sys/arm/nvidia/tegra_usbphy.c @@ -593,7 +593,7 @@ usb_get_ifc_mode(device_t dev, phandle_t node, char *name) int rv; enum usb_ifc_type ret; - rv = OF_getprop_alloc(node, name, 1, (void **)&tmpstr); + rv = OF_getprop_alloc(node, name, (void **)&tmpstr); if (rv <= 0) return (USB_IFC_TYPE_UNKNOWN); @@ -615,7 +615,7 @@ usb_get_dr_mode(device_t dev, phandle_t node, char *name) int rv; enum usb_dr_mode ret; - rv = OF_getprop_alloc(node, name, 1, (void **)&tmpstr); + rv = OF_getprop_alloc(node, name, (void **)&tmpstr); if (rv <= 0) return (USB_DR_MODE_UNKNOWN); diff --git a/sys/arm/ti/cpsw/if_cpsw.c b/sys/arm/ti/cpsw/if_cpsw.c index b7c6e42b3709..4cb55ae9b04a 100644 --- a/sys/arm/ti/cpsw/if_cpsw.c +++ b/sys/arm/ti/cpsw/if_cpsw.c @@ -746,7 +746,7 @@ cpsw_get_fdt_data(struct cpsw_softc *sc, int port) phy = -1; vlan = -1; for (child = OF_child(sc->node); child != 0; child = OF_peer(child)) { - if (OF_getprop_alloc(child, "name", 1, (void **)&name) < 0) + if (OF_getprop_alloc(child, "name", (void **)&name) < 0) continue; if (sscanf(name, "slave@%lx", &mdio_child_addr) != 1) { OF_prop_free(name); diff --git a/sys/arm/ti/ti_hwmods.c b/sys/arm/ti/ti_hwmods.c index 1dfb074a7903..3d0b07ecd90b 100644 --- a/sys/arm/ti/ti_hwmods.c +++ b/sys/arm/ti/ti_hwmods.c @@ -110,7 +110,7 @@ ti_hwmods_get_clock(device_t dev) if ((node = ofw_bus_get_node(dev)) == 0) return (INVALID_CLK_IDENT); - if ((len = OF_getprop_alloc(node, "ti,hwmods", 1, (void**)&name)) <= 0) + if ((len = OF_getprop_alloc(node, "ti,hwmods", (void**)&name)) <= 0) return (INVALID_CLK_IDENT); buf = name; @@ -148,7 +148,7 @@ int ti_hwmods_contains(device_t dev, const char *hwmod) if ((node = ofw_bus_get_node(dev)) == 0) return (0); - if ((len = OF_getprop_alloc(node, "ti,hwmods", 1, (void**)&name)) <= 0) + if ((len = OF_getprop_alloc(node, "ti,hwmods", (void**)&name)) <= 0) return (0); buf = name; @@ -182,7 +182,7 @@ ti_hwmods_get_unit(device_t dev, const char *hwmod) if ((node = ofw_bus_get_node(dev)) == 0) return (0); - if ((len = OF_getprop_alloc(node, "ti,hwmods", 1, (void**)&name)) <= 0) + if ((len = OF_getprop_alloc(node, "ti,hwmods", (void**)&name)) <= 0) return (0); buf = name; diff --git a/sys/arm/ti/usb/omap_host.c b/sys/arm/ti/usb/omap_host.c index 0bc1118db58b..304e80d33df8 100644 --- a/sys/arm/ti/usb/omap_host.c +++ b/sys/arm/ti/usb/omap_host.c @@ -392,7 +392,7 @@ omap_uhh_attach(device_t dev) snprintf(propname, sizeof(propname), "port%d-mode", i+1); - if (OF_getprop_alloc(node, propname, 1, (void**)&mode) <= 0) + if (OF_getprop_alloc(node, propname, (void**)&mode) <= 0) continue; if (strcmp(mode, "ehci-phy") == 0) isc->port_mode[i] = EHCI_HCD_OMAP_MODE_PHY; diff --git a/sys/dev/altera/avgen/altera_avgen_fdt.c b/sys/dev/altera/avgen/altera_avgen_fdt.c index 12a31d4e384c..50cf26bc56be 100644 --- a/sys/dev/altera/avgen/altera_avgen_fdt.c +++ b/sys/dev/altera/avgen/altera_avgen_fdt.c @@ -100,13 +100,13 @@ altera_avgen_fdt_attach(device_t dev) node = ofw_bus_get_node(dev); if (OF_getprop(node, "sri-cambridge,width", &cell, sizeof(cell)) > 0) sc->avg_width = cell; - (void)OF_getprop_alloc(node, "sri-cambridge,fileio", sizeof(char), + (void)OF_getprop_alloc(node, "sri-cambridge,fileio", (void **)&str_fileio); - (void)OF_getprop_alloc(node, "sri-cambridge,geomio", sizeof(char), + (void)OF_getprop_alloc(node, "sri-cambridge,geomio", (void **)&str_geomio); - (void)OF_getprop_alloc(node, "sri-cambridge,mmapio", sizeof(char), + (void)OF_getprop_alloc(node, "sri-cambridge,mmapio", (void **)&str_mmapio); - (void)OF_getprop_alloc(node, "sri-cambridge,devname", sizeof(char), + (void)OF_getprop_alloc(node, "sri-cambridge,devname", (void **)&str_devname); if (OF_getprop(node, "sri-cambridge,devunit", &cell, sizeof(cell)) > 0) devunit = cell; diff --git a/sys/dev/atkbdc/atkbdc_ebus.c b/sys/dev/atkbdc/atkbdc_ebus.c index 704837e39c6e..53c40433d6ba 100644 --- a/sys/dev/atkbdc/atkbdc_ebus.c +++ b/sys/dev/atkbdc/atkbdc_ebus.c @@ -238,7 +238,7 @@ atkbdc_ebus_attach(device_t dev) children = 0; for (child = OF_child(ofw_bus_get_node(dev)); child != 0; child = OF_peer(child)) { - if ((OF_getprop_alloc(child, "name", 1, (void **)&cname)) == -1) + if ((OF_getprop_alloc(child, "name", (void **)&cname)) == -1) continue; if (children >= 2) { device_printf(dev, diff --git a/sys/dev/etherswitch/e6000sw/e6000sw.c b/sys/dev/etherswitch/e6000sw/e6000sw.c index d9e3570bf69d..931d6ad33040 100644 --- a/sys/dev/etherswitch/e6000sw/e6000sw.c +++ b/sys/dev/etherswitch/e6000sw/e6000sw.c @@ -276,7 +276,7 @@ e6000sw_parse_child_fdt(e6000sw_softc_t *sc, phandle_t child, int *pport) return (ENXIO); *pport = port; - if (OF_getprop_alloc(child, "label", 1, (void **)&portlabel) > 0) { + if (OF_getprop_alloc(child, "label", (void **)&portlabel) > 0) { if (strncmp(portlabel, "cpu", 3) == 0) { device_printf(sc->dev, "CPU port at %d\n", port); sc->cpuports_mask |= (1 << port); @@ -287,7 +287,7 @@ e6000sw_parse_child_fdt(e6000sw_softc_t *sc, phandle_t child, int *pport) fixed_link = OF_child(child); if (fixed_link != 0 && - OF_getprop_alloc(fixed_link, "name", 1, (void **)&name) > 0) { + OF_getprop_alloc(fixed_link, "name", (void **)&name) > 0) { if (strncmp(name, "fixed-link", 10) == 0) { /* Assume defaults: 1g - full-duplex. */ sc->fixed_mask |= (1 << port); diff --git a/sys/dev/extres/regulator/regulator.c b/sys/dev/extres/regulator/regulator.c index 45129f068d42..d0528093e228 100644 --- a/sys/dev/extres/regulator/regulator.c +++ b/sys/dev/extres/regulator/regulator.c @@ -1007,7 +1007,7 @@ regulator_parse_ofw_stdparam(device_t pdev, phandle_t node, int rv; par = &def->std_param; - rv = OF_getprop_alloc(node, "regulator-name", 1, + rv = OF_getprop_alloc(node, "regulator-name", (void **)&def->name); if (rv <= 0) { device_printf(pdev, "%s: Missing regulator name\n", @@ -1057,7 +1057,7 @@ regulator_parse_ofw_stdparam(device_t pdev, phandle_t node, rv = OF_getencprop(node, "vin-supply", &supply_xref, sizeof(supply_xref)); if (rv >= 0) { - rv = OF_getprop_alloc(supply_xref, "regulator-name", 1, + rv = OF_getprop_alloc(supply_xref, "regulator-name", (void **)&def->parent_name); if (rv <= 0) def->parent_name = NULL; diff --git a/sys/dev/fdt/fdt_pinctrl.c b/sys/dev/fdt/fdt_pinctrl.c index 0c88e3fa908b..389dd0749c91 100644 --- a/sys/dev/fdt/fdt_pinctrl.c +++ b/sys/dev/fdt/fdt_pinctrl.c @@ -67,7 +67,7 @@ fdt_pinctrl_configure_by_name(device_t client, const char * name) int i, offset, nameslen; nameslen = OF_getprop_alloc(ofw_bus_get_node(client), "pinctrl-names", - sizeof(*names), (void **)&names); + (void **)&names); if (nameslen <= 0) return (ENOENT); for (i = 0, offset = 0; offset < nameslen; i++) { diff --git a/sys/dev/fdt/fdt_slicer.c b/sys/dev/fdt/fdt_slicer.c index 5470256073e0..312300e64d3b 100644 --- a/sys/dev/fdt/fdt_slicer.c +++ b/sys/dev/fdt/fdt_slicer.c @@ -94,12 +94,12 @@ fdt_flash_fill_slices(device_t dev, const char *provider __unused, /* * Retrieve label. */ - name_len = OF_getprop_alloc(dt_child, "label", sizeof(char), + name_len = OF_getprop_alloc(dt_child, "label", (void **)&slice_name); if (name_len <= 0) { /* Use node name if no label defined */ name_len = OF_getprop_alloc(dt_child, "name", - sizeof(char), (void **)&slice_name); + (void **)&slice_name); if (name_len <= 0) { debugf("slice i=%d with no name\n", i); slice_name = NULL; diff --git a/sys/dev/gpio/gpiokeys.c b/sys/dev/gpio/gpiokeys.c index d2662e17337c..3b727985b17e 100644 --- a/sys/dev/gpio/gpiokeys.c +++ b/sys/dev/gpio/gpiokeys.c @@ -271,8 +271,8 @@ gpiokeys_attach_key(struct gpiokeys_softc *sc, phandle_t node, callout_init_mtx(&key->repeat_callout, &key->mtx, 0); name = NULL; - if (OF_getprop_alloc(node, "label", 1, (void **)&name) == -1) - OF_getprop_alloc(node, "name", 1, (void **)&name); + if (OF_getprop_alloc(node, "label", (void **)&name) == -1) + OF_getprop_alloc(node, "name", (void **)&name); if (name != NULL) key_name = name; diff --git a/sys/dev/gpio/gpioled_fdt.c b/sys/dev/gpio/gpioled_fdt.c index 3c3478861dfa..3f627706860a 100644 --- a/sys/dev/gpio/gpioled_fdt.c +++ b/sys/dev/gpio/gpioled_fdt.c @@ -89,7 +89,7 @@ gpioleds_attach_led(struct gpioleds_softc *sc, phandle_t node, state = 0; if (OF_getprop_alloc(node, "default-state", - sizeof(char), (void **)&default_state) != -1) { + (void **)&default_state) != -1) { if (strcasecmp(default_state, "on") == 0) state = 1; else if (strcasecmp(default_state, "off") == 0) @@ -105,8 +105,8 @@ gpioleds_attach_led(struct gpioleds_softc *sc, phandle_t node, } name = NULL; - if (OF_getprop_alloc(node, "label", 1, (void **)&name) == -1) - OF_getprop_alloc(node, "name", 1, (void **)&name); + if (OF_getprop_alloc(node, "label", (void **)&name) == -1) + OF_getprop_alloc(node, "name", (void **)&name); if (name == NULL) { device_printf(sc->sc_dev, diff --git a/sys/dev/iicbus/adt746x.c b/sys/dev/iicbus/adt746x.c index bd4bb70103c6..3b908453a0d7 100644 --- a/sys/dev/iicbus/adt746x.c +++ b/sys/dev/iicbus/adt746x.c @@ -360,8 +360,8 @@ adt746x_fill_fan_prop(device_t dev) child = ofw_bus_get_node(dev); /* Fill the fan location property. */ - location_len = OF_getprop_alloc(child, "hwctrl-location", 1, (void **)&location); - id_len = OF_getprop_alloc(child, "hwctrl-id", sizeof(cell_t), (void **)&id); + location_len = OF_getprop_alloc(child, "hwctrl-location", (void **)&location); + id_len = OF_getprop_alloc_multi(child, "hwctrl-id", sizeof(cell_t), (void **)&id); if (location_len == -1 || id_len == -1) { OF_prop_free(location); OF_prop_free(id); diff --git a/sys/dev/le/lebuffer_sbus.c b/sys/dev/le/lebuffer_sbus.c index 9c5620dad918..f40aca1b6830 100644 --- a/sys/dev/le/lebuffer_sbus.c +++ b/sys/dev/le/lebuffer_sbus.c @@ -183,7 +183,7 @@ lebuffer_setup_dinfo(device_t dev, phandle_t node) } resource_list_init(&ldi->ldi_rl); slot = -1; - nreg = OF_getprop_alloc(node, "reg", sizeof(*reg), (void **)®); + nreg = OF_getprop_alloc_multi(node, "reg", sizeof(*reg), (void **)®); if (nreg == -1) { device_printf(dev, "<%s>: incomplete\n", ldi->ldi_obdinfo.obd_name); @@ -217,7 +217,7 @@ lebuffer_setup_dinfo(device_t dev, phandle_t node) /* * The `interrupts' property contains the SBus interrupt level. */ - nintr = OF_getprop_alloc(node, "interrupts", sizeof(*intr), + nintr = OF_getprop_alloc_multi(node, "interrupts", sizeof(*intr), (void **)&intr); if (nintr != -1) { for (i = 0; i < nintr; i++) { diff --git a/sys/dev/neta/if_mvneta_fdt.c b/sys/dev/neta/if_mvneta_fdt.c index a858babf06ec..6b773e379e88 100644 --- a/sys/dev/neta/if_mvneta_fdt.c +++ b/sys/dev/neta/if_mvneta_fdt.c @@ -159,7 +159,7 @@ mvneta_fdt_phy_acquire(device_t dev) /* Test for fixed-link (present i.e. in 388-gp) */ for (child = OF_child(node); child != 0; child = OF_peer(child)) { if (OF_getprop_alloc(child, - "name", 1, (void **)&name) <= 0) { + "name", (void **)&name) <= 0) { continue; } if (strncmp(name, "fixed-link", 10) == 0) { diff --git a/sys/dev/ofw/ofw_bus_subr.c b/sys/dev/ofw/ofw_bus_subr.c index 3e2da5a2e8ce..80b59f43708a 100644 --- a/sys/dev/ofw/ofw_bus_subr.c +++ b/sys/dev/ofw/ofw_bus_subr.c @@ -57,12 +57,12 @@ ofw_bus_gen_setup_devinfo(struct ofw_bus_devinfo *obd, phandle_t node) if (obd == NULL) return (ENOMEM); /* The 'name' property is considered mandatory. */ - if ((OF_getprop_alloc(node, "name", 1, (void **)&obd->obd_name)) == -1) + if ((OF_getprop_alloc(node, "name", (void **)&obd->obd_name)) == -1) return (EINVAL); - OF_getprop_alloc(node, "compatible", 1, (void **)&obd->obd_compat); - OF_getprop_alloc(node, "device_type", 1, (void **)&obd->obd_type); - OF_getprop_alloc(node, "model", 1, (void **)&obd->obd_model); - OF_getprop_alloc(node, "status", 1, (void **)&obd->obd_status); + OF_getprop_alloc(node, "compatible", (void **)&obd->obd_compat); + OF_getprop_alloc(node, "device_type", (void **)&obd->obd_type); + OF_getprop_alloc(node, "model", (void **)&obd->obd_model); + OF_getprop_alloc(node, "status", (void **)&obd->obd_status); obd->obd_node = node; return (0); } @@ -502,7 +502,7 @@ ofw_bus_reg_to_rl_helper(device_t dev, phandle_t node, pcell_t acells, pcell_t s * This may be just redundant when having ofw_bus_devinfo * but makes this routine independent of it. */ - ret = OF_getprop_alloc(node, "name", sizeof(*name), (void **)&name); + ret = OF_getprop_alloc(node, "name", (void **)&name); if (ret == -1) name = NULL; @@ -720,7 +720,7 @@ ofw_bus_find_child(phandle_t start, const char *child_name) phandle_t child; for (child = OF_child(start); child != 0; child = OF_peer(child)) { - ret = OF_getprop_alloc(child, "name", sizeof(*name), (void **)&name); + ret = OF_getprop_alloc(child, "name", (void **)&name); if (ret == -1) continue; if (strcmp(name, child_name) == 0) { @@ -916,7 +916,7 @@ ofw_bus_find_string_index(phandle_t node, const char *list_name, int rv, i, cnt, nelems; elems = NULL; - nelems = OF_getprop_alloc(node, list_name, 1, (void **)&elems); + nelems = OF_getprop_alloc(node, list_name, (void **)&elems); if (nelems <= 0) return (ENOENT); @@ -947,7 +947,7 @@ ofw_bus_string_list_to_array(phandle_t node, const char *list_name, int i, cnt, nelems, len; elems = NULL; - nelems = OF_getprop_alloc(node, list_name, 1, (void **)&elems); + nelems = OF_getprop_alloc(node, list_name, (void **)&elems); if (nelems <= 0) return (nelems); diff --git a/sys/dev/ofw/openfirm.c b/sys/dev/ofw/openfirm.c index dc781d42ad8c..4f1066e1cb14 100644 --- a/sys/dev/ofw/openfirm.c +++ b/sys/dev/ofw/openfirm.c @@ -438,13 +438,37 @@ OF_searchencprop(phandle_t node, const char *propname, void *buf, size_t len) return (-1); } +/* + * Store the value of a property of a package into newly allocated memory + * (using the M_OFWPROP malloc pool and M_WAITOK). + */ +ssize_t +OF_getprop_alloc(phandle_t package, const char *propname, void **buf) +{ + int len; + + *buf = NULL; + if ((len = OF_getproplen(package, propname)) == -1) + return (-1); + + if (len > 0) { + *buf = malloc(len, M_OFWPROP, M_WAITOK); + if (OF_getprop(package, propname, *buf, len) == -1) { + free(*buf, M_OFWPROP); + *buf = NULL; + return (-1); + } + } + return (len); +} + /* * Store the value of a property of a package into newly allocated memory * (using the M_OFWPROP malloc pool and M_WAITOK). elsz is the size of a * single element, the number of elements is return in number. */ ssize_t -OF_getprop_alloc(phandle_t package, const char *propname, int elsz, void **buf) +OF_getprop_alloc_multi(phandle_t package, const char *propname, int elsz, void **buf) { int len; @@ -453,15 +477,18 @@ OF_getprop_alloc(phandle_t package, const char *propname, int elsz, void **buf) len % elsz != 0) return (-1); - *buf = malloc(len, M_OFWPROP, M_WAITOK); - if (OF_getprop(package, propname, *buf, len) == -1) { - free(*buf, M_OFWPROP); - *buf = NULL; - return (-1); + if (len > 0) { + *buf = malloc(len, M_OFWPROP, M_WAITOK); + if (OF_getprop(package, propname, *buf, len) == -1) { + free(*buf, M_OFWPROP); + *buf = NULL; + return (-1); + } } return (len / elsz); } + ssize_t OF_getencprop_alloc(phandle_t package, const char *name, int elsz, void **buf) { @@ -469,7 +496,7 @@ OF_getencprop_alloc(phandle_t package, const char *name, int elsz, void **buf) pcell_t *cell; int i; - retval = OF_getprop_alloc(package, name, elsz, buf); + retval = OF_getprop_alloc_multi(package, name, elsz, buf); if (retval == -1) return (-1); if (retval * elsz % 4 != 0) { diff --git a/sys/dev/ofw/openfirm.h b/sys/dev/ofw/openfirm.h index e17011640b55..4983a00b015c 100644 --- a/sys/dev/ofw/openfirm.h +++ b/sys/dev/ofw/openfirm.h @@ -116,6 +116,8 @@ ssize_t OF_searchprop(phandle_t node, const char *propname, void *buf, ssize_t OF_searchencprop(phandle_t node, const char *propname, void *buf, size_t len); ssize_t OF_getprop_alloc(phandle_t node, const char *propname, + void **buf); +ssize_t OF_getprop_alloc_multi(phandle_t node, const char *propname, int elsz, void **buf); ssize_t OF_getencprop_alloc(phandle_t node, const char *propname, int elsz, void **buf); diff --git a/sys/dev/usb/controller/ehci_fsl.c b/sys/dev/usb/controller/ehci_fsl.c index 525a2c49a8c3..726c40a4b31f 100644 --- a/sys/dev/usb/controller/ehci_fsl.c +++ b/sys/dev/usb/controller/ehci_fsl.c @@ -175,7 +175,7 @@ enable_usb(device_t dev, bus_space_tag_t iot, bus_space_handle_t ioh) node = ofw_bus_get_node(dev); if ((node != 0) && - (OF_getprop_alloc(node, "phy_type", 1, (void **)&phy_type) > 0)) { + (OF_getprop_alloc(node, "phy_type", (void **)&phy_type) > 0)) { if (strncasecmp(phy_type, "utmi", strlen("utmi")) == 0) tmp |= UTMI_PHY_EN; OF_prop_free(phy_type); diff --git a/sys/dev/vnic/thunder_bgx_fdt.c b/sys/dev/vnic/thunder_bgx_fdt.c index 380d7f90697e..bdb7594a0fb4 100644 --- a/sys/dev/vnic/thunder_bgx_fdt.c +++ b/sys/dev/vnic/thunder_bgx_fdt.c @@ -396,7 +396,7 @@ bgx_fdt_init_phy(struct bgx *bgx) continue; } } else { - len = OF_getprop_alloc(child, "name", 1, + len = OF_getprop_alloc(child, "name", (void **)&node_name); if (len <= 0) { continue; diff --git a/sys/mips/mediatek/mtk_pinctrl.c b/sys/mips/mediatek/mtk_pinctrl.c index 8897e73cf6fc..a965c75ac4b2 100644 --- a/sys/mips/mediatek/mtk_pinctrl.c +++ b/sys/mips/mediatek/mtk_pinctrl.c @@ -136,7 +136,7 @@ mtk_pinctrl_process_node(device_t dev, struct mtk_pin_group *table, if (num_groups <= 0) return (ENOENT); - if (OF_getprop_alloc(node, "ralink,function", sizeof(*pin_function), + if (OF_getprop_alloc_multi(node, "ralink,function", sizeof(*pin_function), (void **)&pin_function) == -1) { ret = ENOENT; goto out; diff --git a/sys/powerpc/mpc85xx/fsl_diu.c b/sys/powerpc/mpc85xx/fsl_diu.c index df925a6de3e9..b899bdbe752f 100644 --- a/sys/powerpc/mpc85xx/fsl_diu.c +++ b/sys/powerpc/mpc85xx/fsl_diu.c @@ -362,7 +362,7 @@ diu_attach(device_t dev) } /* TODO: Eventually, allow EDID to be dynamically provided. */ - if (OF_getprop_alloc(node, "edid", 1, &edid_cells) <= 0) { + if (OF_getprop_alloc(node, "edid", &edid_cells) <= 0) { /* * u-boot uses the environment variable name 'video-mode', so * just use the same name here. Should allow another variable diff --git a/sys/powerpc/powermac/macio.c b/sys/powerpc/powermac/macio.c index b8e52f52edb0..42eb5dcd8c58 100644 --- a/sys/powerpc/powermac/macio.c +++ b/sys/powerpc/powermac/macio.c @@ -203,10 +203,10 @@ macio_add_intr(phandle_t devnode, struct macio_devinfo *dinfo) return; } - nintr = OF_getprop_alloc(devnode, "interrupts", sizeof(*intr), + nintr = OF_getprop_alloc_multi(devnode, "interrupts", sizeof(*intr), (void **)&intr); if (nintr == -1) { - nintr = OF_getprop_alloc(devnode, "AAPL,interrupts", + nintr = OF_getprop_alloc_multi(devnode, "AAPL,interrupts", sizeof(*intr), (void **)&intr); if (nintr == -1) return; @@ -243,7 +243,7 @@ macio_add_reg(phandle_t devnode, struct macio_devinfo *dinfo) char buf[8]; int i, layout_id = 0, nreg, res; - nreg = OF_getprop_alloc(devnode, "reg", sizeof(*reg), (void **)®); + nreg = OF_getprop_alloc_multi(devnode, "reg", sizeof(*reg), (void **)®); if (nreg == -1) return; @@ -269,7 +269,7 @@ macio_add_reg(phandle_t devnode, struct macio_devinfo *dinfo) sizeof(layout_id)); if (res > 0 && (layout_id == 36 || layout_id == 76)) { - res = OF_getprop_alloc(OF_parent(devnode), "reg", + res = OF_getprop_alloc_multi(OF_parent(devnode), "reg", sizeof(*regp), (void **)®p); reg[0] = regp[0]; reg[1].mr_base = regp[1].mr_base; diff --git a/sys/powerpc/powermac/uninorth.c b/sys/powerpc/powermac/uninorth.c index 490277bebd8c..314b3f8949b8 100644 --- a/sys/powerpc/powermac/uninorth.c +++ b/sys/powerpc/powermac/uninorth.c @@ -164,10 +164,10 @@ unin_chip_add_intr(phandle_t devnode, struct unin_chip_devinfo *dinfo) return; } - nintr = OF_getprop_alloc(devnode, "interrupts", sizeof(*intr), + nintr = OF_getprop_alloc_multi(devnode, "interrupts", sizeof(*intr), (void **)&intr); if (nintr == -1) { - nintr = OF_getprop_alloc(devnode, "AAPL,interrupts", + nintr = OF_getprop_alloc_multi(devnode, "AAPL,interrupts", sizeof(*intr), (void **)&intr); if (nintr == -1) return; @@ -207,7 +207,7 @@ unin_chip_add_reg(phandle_t devnode, struct unin_chip_devinfo *dinfo) struct unin_chip_reg *reg; int i, nreg; - nreg = OF_getprop_alloc(devnode, "reg", sizeof(*reg), (void **)®); + nreg = OF_getprop_alloc_multi(devnode, "reg", sizeof(*reg), (void **)®); if (nreg == -1) return; diff --git a/sys/powerpc/psim/iobus.c b/sys/powerpc/psim/iobus.c index 320d3a880b6d..a4c0d77d110e 100644 --- a/sys/powerpc/psim/iobus.c +++ b/sys/powerpc/psim/iobus.c @@ -221,7 +221,7 @@ iobus_attach(device_t dev) root = sc->sc_node; for (child = OF_child(root); child != 0; child = OF_peer(child)) { - OF_getprop_alloc(child, "name", 1, (void **)&name); + OF_getprop_alloc(child, "name", (void **)&name); cdev = device_add_child(dev, NULL, -1); if (cdev != NULL) { diff --git a/sys/sparc64/central/central.c b/sys/sparc64/central/central.c index c09373619aef..a376fd2bee20 100644 --- a/sys/sparc64/central/central.c +++ b/sys/sparc64/central/central.c @@ -140,7 +140,7 @@ central_attach(device_t dev) sc = device_get_softc(dev); node = ofw_bus_get_node(dev); - sc->sc_nrange = OF_getprop_alloc(node, "ranges", + sc->sc_nrange = OF_getprop_alloc_multi(node, "ranges", sizeof(*sc->sc_ranges), (void **)&sc->sc_ranges); if (sc->sc_nrange == -1) { device_printf(dev, "can't get ranges\n"); @@ -153,7 +153,7 @@ central_attach(device_t dev) free(cdi, M_DEVBUF); continue; } - nreg = OF_getprop_alloc(child, "reg", sizeof(*reg), + nreg = OF_getprop_alloc_multi(child, "reg", sizeof(*reg), (void **)®); if (nreg == -1) { device_printf(dev, "<%s>: incomplete\n", diff --git a/sys/sparc64/ebus/ebus.c b/sys/sparc64/ebus/ebus.c index e0edb7d068d9..df9e3c29d17f 100644 --- a/sys/sparc64/ebus/ebus.c +++ b/sys/sparc64/ebus/ebus.c @@ -292,7 +292,7 @@ ebus_nexus_attach(device_t dev) } #endif - sc->sc_nrange = OF_getprop_alloc(node, "ranges", + sc->sc_nrange = OF_getprop_alloc_multi(node, "ranges", sizeof(struct ebus_nexus_ranges), &sc->sc_range); if (sc->sc_nrange == -1) { device_printf(dev, "could not get ranges property\n"); @@ -321,7 +321,7 @@ ebus_pci_attach(device_t dev) pci_write_config(dev, PCIR_LATTIMER, 64 /* 64 PCI cycles */, 1); node = ofw_bus_get_node(dev); - sc->sc_nrange = OF_getprop_alloc(node, "ranges", + sc->sc_nrange = OF_getprop_alloc_multi(node, "ranges", sizeof(struct isa_ranges), &sc->sc_range); if (sc->sc_nrange == -1) { device_printf(dev, "could not get ranges property\n"); @@ -660,7 +660,7 @@ ebus_setup_dinfo(device_t dev, struct ebus_softc *sc, phandle_t node) return (NULL); } resource_list_init(&edi->edi_rl); - nreg = OF_getprop_alloc(node, "reg", sizeof(*regs), (void **)®s); + nreg = OF_getprop_alloc_multi(node, "reg", sizeof(*regs), (void **)®s); if (nreg == -1) { device_printf(dev, "<%s>: incomplete\n", edi->edi_obdinfo.obd_name); @@ -674,7 +674,7 @@ ebus_setup_dinfo(device_t dev, struct ebus_softc *sc, phandle_t node) } OF_prop_free(regs); - nintr = OF_getprop_alloc(node, "interrupts", sizeof(*intrs), + nintr = OF_getprop_alloc_multi(node, "interrupts", sizeof(*intrs), (void **)&intrs); if (nintr == -1) return (edi); diff --git a/sys/sparc64/fhc/fhc.c b/sys/sparc64/fhc/fhc.c index d55e2ddef698..cc858cfc9544 100644 --- a/sys/sparc64/fhc/fhc.c +++ b/sys/sparc64/fhc/fhc.c @@ -205,7 +205,7 @@ fhc_attach(device_t dev) } device_printf(dev, "board %d, ", board); - if (OF_getprop_alloc(node, "board-model", 1, (void **)&name) != -1) { + if (OF_getprop_alloc(node, "board-model", (void **)&name) != -1) { printf("model %s\n", name); OF_prop_free(name); } else @@ -227,7 +227,7 @@ fhc_attach(device_t dev) bus_write_4(sc->sc_memres[FHC_INTERNAL], FHC_CTRL, ctrl); (void)bus_read_4(sc->sc_memres[FHC_INTERNAL], FHC_CTRL); - sc->sc_nrange = OF_getprop_alloc(node, "ranges", + sc->sc_nrange = OF_getprop_alloc_multi(node, "ranges", sizeof(*sc->sc_ranges), (void **)&sc->sc_ranges); if (sc->sc_nrange == -1) { device_printf(dev, "cannot get ranges\n"); @@ -285,7 +285,7 @@ fhc_attach(device_t dev) free(fdi, M_DEVBUF); continue; } - i = OF_getprop_alloc(child, "reg", sizeof(*reg), + i = OF_getprop_alloc_multi(child, "reg", sizeof(*reg), (void **)®); if (i == -1) { device_printf(dev, "<%s>: incomplete\n", @@ -301,7 +301,7 @@ fhc_attach(device_t dev) reg[j].sbr_size, reg[j].sbr_size); OF_prop_free(reg); if (central == 1) { - i = OF_getprop_alloc(child, "interrupts", + i = OF_getprop_alloc_multi(child, "interrupts", sizeof(*intr), (void **)&intr); if (i != -1) { for (j = 0; j < i; j++) { diff --git a/sys/sparc64/isa/isa.c b/sys/sparc64/isa/isa.c index f65bec484b63..f035ddc8c8d6 100644 --- a/sys/sparc64/isa/isa.c +++ b/sys/sparc64/isa/isa.c @@ -92,7 +92,7 @@ isa_init(device_t dev) /* The parent of the bus must be a PCI-ISA bridge. */ bridge = device_get_parent(dev); isab_node = ofw_bus_get_node(bridge); - isab_nrange = OF_getprop_alloc(isab_node, "ranges", + isab_nrange = OF_getprop_alloc_multi(isab_node, "ranges", sizeof(*isab_ranges), (void **)&isab_ranges); if (isab_nrange <= 0) panic("isa_init: cannot get bridge range property"); @@ -162,7 +162,7 @@ isa_setup_children(device_t dev, phandle_t parent) * allow for an isa_activate_resource(). */ for (node = OF_child(parent); node != 0; node = OF_peer(node)) { - if ((OF_getprop_alloc(node, "name", 1, (void **)&name)) == -1) + if ((OF_getprop_alloc(node, "name", (void **)&name)) == -1) continue; /* @@ -192,7 +192,7 @@ isa_setup_children(device_t dev, phandle_t parent) isa_set_vendorid(cdev, ofw_isa_pnp_map[i].id); rl = BUS_GET_RESOURCE_LIST(dev, cdev); - nreg = OF_getprop_alloc(node, "reg", sizeof(*regs), + nreg = OF_getprop_alloc_multi(node, "reg", sizeof(*regs), (void **)®s); for (i = 0; i < nreg; i++) { start = ISA_REG_PHYS(®s[i]); @@ -211,12 +211,12 @@ isa_setup_children(device_t dev, phandle_t parent) * the set of registers of the parent device like * with the nodes hanging off of the `8042' node. */ - nregidx = OF_getprop_alloc(node, "reg", sizeof(*regidx), + nregidx = OF_getprop_alloc_multi(node, "reg", sizeof(*regidx), (void **)®idx); if (nregidx > 2) panic("isa_setup_children: impossible number " "of register indices"); - if (nregidx != -1 && (nreg = OF_getprop_alloc(parent, + if (nregidx != -1 && (nreg = OF_getprop_alloc_multi(parent, "reg", sizeof(*regs), (void **)®s)) >= nregidx) { for (i = 0; i < nregidx; i++) { start = ISA_REG_PHYS(®s[regidx[i]]); @@ -237,7 +237,7 @@ isa_setup_children(device_t dev, phandle_t parent) if (regs != NULL) OF_prop_free(regs); - nintr = OF_getprop_alloc(node, "interrupts", sizeof(*intrs), + nintr = OF_getprop_alloc_multi(node, "interrupts", sizeof(*intrs), (void **)&intrs); for (i = 0; i < nintr; i++) { if (intrs[i] > 7) @@ -255,7 +255,7 @@ isa_setup_children(device_t dev, phandle_t parent) if (intrs != NULL) OF_prop_free(intrs); - ndrq = OF_getprop_alloc(node, "dma-channel", sizeof(*drqs), + ndrq = OF_getprop_alloc_multi(node, "dma-channel", sizeof(*drqs), (void **)&drqs); for (i = 0; i < ndrq; i++) bus_set_resource(cdev, SYS_RES_DRQ, i, drqs[i], 1); diff --git a/sys/sparc64/pci/ofw_pci.c b/sys/sparc64/pci/ofw_pci.c index 9c8b46bb5022..67b07b727cd6 100644 --- a/sys/sparc64/pci/ofw_pci.c +++ b/sys/sparc64/pci/ofw_pci.c @@ -93,7 +93,7 @@ ofw_pci_attach_common(device_t dev, bus_dma_tag_t dmat, u_long iosize, * start addresses of the ranges are the configuration, I/O and * memory handles. There should not be multiple ones of one kind. */ - nrange = OF_getprop_alloc(node, "ranges", sizeof(*range), + nrange = OF_getprop_alloc_multi(node, "ranges", sizeof(*range), (void **)&range); for (i = 0; i < nrange; i++) { j = OFW_PCI_RANGE_CS(&range[i]); diff --git a/sys/sparc64/sbus/dma_sbus.c b/sys/sparc64/sbus/dma_sbus.c index e93d2bbea211..7e4887e56e24 100644 --- a/sys/sparc64/sbus/dma_sbus.c +++ b/sys/sparc64/sbus/dma_sbus.c @@ -209,7 +209,7 @@ dma_attach(device_t dev) * the user can change it via a "media" option to ifconfig. */ csr = L64854_GCSR(lsc); - if ((OF_getprop_alloc(node, "cable-selection", 1, + if ((OF_getprop_alloc(node, "cable-selection", (void **)&cabletype)) == -1) { /* assume TP if nothing there */ csr |= E_TP_AUI; @@ -295,7 +295,7 @@ dma_setup_dinfo(device_t dev, struct dma_softc *dsc, phandle_t node) } resource_list_init(&ddi->ddi_rl); slot = -1; - nreg = OF_getprop_alloc(node, "reg", sizeof(*reg), (void **)®); + nreg = OF_getprop_alloc_multi(node, "reg", sizeof(*reg), (void **)®); if (nreg == -1) { device_printf(dev, "<%s>: incomplete\n", ddi->ddi_obdinfo.obd_name); @@ -329,7 +329,7 @@ dma_setup_dinfo(device_t dev, struct dma_softc *dsc, phandle_t node) /* * The `interrupts' property contains the SBus interrupt level. */ - nintr = OF_getprop_alloc(node, "interrupts", sizeof(*intr), + nintr = OF_getprop_alloc_multi(node, "interrupts", sizeof(*intr), (void **)&intr); if (nintr != -1) { for (i = 0; i < nintr; i++) { diff --git a/sys/sparc64/sbus/sbus.c b/sys/sparc64/sbus/sbus.c index 30c10fb4ef77..7731d97fb471 100644 --- a/sys/sparc64/sbus/sbus.c +++ b/sys/sparc64/sbus/sbus.c @@ -299,7 +299,7 @@ sbus_attach(device_t dev) /* * Collect address translations from the OBP. */ - if ((sc->sc_nrange = OF_getprop_alloc(node, "ranges", + if ((sc->sc_nrange = OF_getprop_alloc_multi(node, "ranges", sizeof(*range), (void **)&range)) == -1) { panic("%s: error getting ranges property", __func__); } @@ -478,7 +478,7 @@ sbus_setup_dinfo(device_t dev, struct sbus_softc *sc, phandle_t node) } resource_list_init(&sdi->sdi_rl); slot = -1; - nreg = OF_getprop_alloc(node, "reg", sizeof(*reg), (void **)®); + nreg = OF_getprop_alloc_multi(node, "reg", sizeof(*reg), (void **)®); if (nreg == -1) { if (sdi->sdi_obdinfo.obd_type == NULL || strcmp(sdi->sdi_obdinfo.obd_type, "hierarchical") != 0) { @@ -512,7 +512,7 @@ sbus_setup_dinfo(device_t dev, struct sbus_softc *sc, phandle_t node) /* * The `interrupts' property contains the SBus interrupt level. */ - nintr = OF_getprop_alloc(node, "interrupts", sizeof(*intr), + nintr = OF_getprop_alloc_multi(node, "interrupts", sizeof(*intr), (void **)&intr); if (nintr != -1) { for (i = 0; i < nintr; i++) { diff --git a/sys/sparc64/sparc64/nexus.c b/sys/sparc64/sparc64/nexus.c index 2c5ed92f8e5f..5075b02637a1 100644 --- a/sys/sparc64/sparc64/nexus.c +++ b/sys/sparc64/sparc64/nexus.c @@ -545,7 +545,7 @@ nexus_setup_dinfo(device_t dev, phandle_t node) return (NULL); } resource_list_init(&ndi->ndi_rl); - nreg = OF_getprop_alloc(node, "reg", sizeof(*reg), (void **)®); + nreg = OF_getprop_alloc_multi(node, "reg", sizeof(*reg), (void **)®); if (nreg == -1) { device_printf(dev, "<%s>: incomplete\n", ndi->ndi_obdinfo.obd_name); @@ -561,7 +561,7 @@ nexus_setup_dinfo(device_t dev, phandle_t node) } OF_prop_free(reg); - nintr = OF_getprop_alloc(node, "interrupts", sizeof(*intr), + nintr = OF_getprop_alloc_multi(node, "interrupts", sizeof(*intr), (void **)&intr); if (nintr > 0) { if (OF_getprop(node, PCPU_GET(impl) < CPU_IMPL_ULTRASPARCIII ? diff --git a/sys/sparc64/sparc64/upa.c b/sys/sparc64/sparc64/upa.c index 77c8c9401fcb..533cc148ccd1 100644 --- a/sys/sparc64/sparc64/upa.c +++ b/sys/sparc64/sparc64/upa.c @@ -285,7 +285,7 @@ upa_attach(device_t dev) goto fail; } - sc->sc_nrange = OF_getprop_alloc(node, "ranges", sizeof(*sc->sc_ranges), + sc->sc_nrange = OF_getprop_alloc_multi(node, "ranges", sizeof(*sc->sc_ranges), (void **)&sc->sc_ranges); if (sc->sc_nrange == -1) { device_printf(dev, "could not determine ranges\n"); @@ -553,7 +553,7 @@ upa_setup_dinfo(device_t dev, struct upa_softc *sc, phandle_t node, } resource_list_init(&udi->udi_rl); - nreg = OF_getprop_alloc(node, "reg", sizeof(*reg), (void **)®); + nreg = OF_getprop_alloc_multi(node, "reg", sizeof(*reg), (void **)®); if (nreg == -1) { device_printf(dev, "<%s>: incomplete\n", udi->udi_obdinfo.obd_name);