DRVMGR: KEY_TYPE now a enum drvmgr_kt

This commit is contained in:
Daniel Hellstrom
2015-04-13 11:26:52 +02:00
parent 14d55debf1
commit 4d3e70f4a6
27 changed files with 105 additions and 101 deletions

View File

@@ -497,7 +497,7 @@ static int at697pci_init(struct at697pci_priv *priv)
/* User may override hardcoded IRQ setup */ /* User may override hardcoded IRQ setup */
keyname_sysirq[3] = 'A' + (pin-1); keyname_sysirq[3] = 'A' + (pin-1);
value = drvmgr_dev_key_get(priv->dev, value = drvmgr_dev_key_get(priv->dev,
keyname_sysirq, KEY_TYPE_INT); keyname_sysirq, DRVMGR_KT_INT);
if ( value ) if ( value )
at697_pci_irq_table[pin-1] = value->i; at697_pci_irq_table[pin-1] = value->i;
} }
@@ -505,7 +505,7 @@ static int at697pci_init(struct at697pci_priv *priv)
/* User may override hardcoded IRQ setup */ /* User may override hardcoded IRQ setup */
keyname_pio[3] = 'A' + (pin-1); keyname_pio[3] = 'A' + (pin-1);
value = drvmgr_dev_key_get(priv->dev, value = drvmgr_dev_key_get(priv->dev,
keyname_pio, KEY_TYPE_INT); keyname_pio, DRVMGR_KT_INT);
if ( value ) if ( value )
at697_pci_irq_pio_table[pin-1] = value->i; at697_pci_irq_pio_table[pin-1] = value->i;
} }
@@ -517,13 +517,13 @@ static int at697pci_init(struct at697pci_priv *priv)
* Defualt is to map system RAM at pci address 0x40000000 and system * Defualt is to map system RAM at pci address 0x40000000 and system
* SDRAM to pci address 0x60000000 * SDRAM to pci address 0x60000000
*/ */
value = drvmgr_dev_key_get(priv->dev, "tgtbar1", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "tgtbar1", DRVMGR_KT_INT);
if (value) if (value)
priv->bar1_pci_adr = value->i; priv->bar1_pci_adr = value->i;
else else
priv->bar1_pci_adr = SYSTEM_MAINMEM_START; /* default */ priv->bar1_pci_adr = SYSTEM_MAINMEM_START; /* default */
value = drvmgr_dev_key_get(priv->dev, "tgtbar2", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "tgtbar2", DRVMGR_KT_INT);
if (value) if (value)
priv->bar2_pci_adr = value->i; priv->bar2_pci_adr = value->i;
else else

View File

@@ -454,7 +454,7 @@ int b1553brm_device_init(brm_priv *pDev)
#endif #endif
/* Get memory configuration from bus resources */ /* Get memory configuration from bus resources */
value = drvmgr_dev_key_get(pDev->dev, "dmaBaseAdr", KEY_TYPE_POINTER); value = drvmgr_dev_key_get(pDev->dev, "dmaBaseAdr", DRVMGR_KT_POINTER);
if (value) if (value)
mem = (unsigned int)value->ptr; mem = (unsigned int)value->ptr;
@@ -505,17 +505,17 @@ int b1553brm_device_init(brm_priv *pDev)
pDev->cfg_clkdiv = 0; pDev->cfg_clkdiv = 0;
pDev->cfg_freq = BRM_FREQ_24MHZ; pDev->cfg_freq = BRM_FREQ_24MHZ;
value = drvmgr_dev_key_get(pDev->dev, "clkSel", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "clkSel", DRVMGR_KT_INT);
if ( value ) { if ( value ) {
pDev->cfg_clksel = value->i & CLKSEL_MASK; pDev->cfg_clksel = value->i & CLKSEL_MASK;
} }
value = drvmgr_dev_key_get(pDev->dev, "clkDiv", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "clkDiv", DRVMGR_KT_INT);
if ( value ) { if ( value ) {
pDev->cfg_clkdiv = value->i & CLKDIV_MASK; pDev->cfg_clkdiv = value->i & CLKDIV_MASK;
} }
value = drvmgr_dev_key_get(pDev->dev, "coreFreq", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "coreFreq", DRVMGR_KT_INT);
if ( value ) { if ( value ) {
pDev->cfg_freq = value->i & BRM_FREQ_MASK; pDev->cfg_freq = value->i & BRM_FREQ_MASK;
} }

View File

@@ -300,7 +300,7 @@ int b1553rt_device_init(rt_priv *pDev)
#endif #endif
/* Get memory configuration from bus resources */ /* Get memory configuration from bus resources */
value = drvmgr_dev_key_get(pDev->dev, "dmaBaseAdr", KEY_TYPE_POINTER); value = drvmgr_dev_key_get(pDev->dev, "dmaBaseAdr", DRVMGR_KT_POINTER);
if (value) if (value)
mem = (unsigned int)value->ptr; mem = (unsigned int)value->ptr;
@@ -362,7 +362,7 @@ int b1553rt_device_init(rt_priv *pDev)
} }
} }
value = drvmgr_dev_key_get(pDev->dev, "coreFreq", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "coreFreq", DRVMGR_KT_INT);
if ( value ) { if ( value ) {
pDev->cfg_freq = value->i & RT_FREQ_MASK; pDev->cfg_freq = value->i & RT_FREQ_MASK;
} }

View File

@@ -1267,19 +1267,19 @@ static rtems_device_driver grcan_open(rtems_device_major_number major, rtems_dev
pDev->rxbuf_size = RX_BUF_SIZE; pDev->rxbuf_size = RX_BUF_SIZE;
/* Override default buffer sizes if available from bus resource */ /* Override default buffer sizes if available from bus resource */
value = drvmgr_dev_key_get(pDev->dev, "txBufSize", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "txBufSize", DRVMGR_KT_INT);
if ( value ) if ( value )
pDev->txbuf_size = value->i; pDev->txbuf_size = value->i;
value = drvmgr_dev_key_get(pDev->dev, "rxBufSize", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "rxBufSize", DRVMGR_KT_INT);
if ( value ) if ( value )
pDev->rxbuf_size = value->i; pDev->rxbuf_size = value->i;
value = drvmgr_dev_key_get(pDev->dev, "txBufAdr", KEY_TYPE_POINTER); value = drvmgr_dev_key_get(pDev->dev, "txBufAdr", DRVMGR_KT_POINTER);
if ( value ) if ( value )
pDev->txbuf_adr = value->ptr; pDev->txbuf_adr = value->ptr;
value = drvmgr_dev_key_get(pDev->dev, "rxBufAdr", KEY_TYPE_POINTER); value = drvmgr_dev_key_get(pDev->dev, "rxBufAdr", DRVMGR_KT_POINTER);
if ( value ) if ( value )
pDev->rxbuf_adr = value->ptr; pDev->rxbuf_adr = value->ptr;

View File

@@ -157,7 +157,7 @@ int ambapp_leon2_init1(struct drvmgr_dev *dev)
/* Try to get Configuration from resource configuration */ /* Try to get Configuration from resource configuration */
value = drvmgr_dev_key_get(dev, "busFreq", KEY_TYPE_INT); value = drvmgr_dev_key_get(dev, "busFreq", DRVMGR_KT_INT);
if (value) { if (value) {
/* Set frequency of AMBA bus if specified by user. The frequency /* Set frequency of AMBA bus if specified by user. The frequency
* must be for AHB bus which IOAREA matches (AHB bus 0). * must be for AHB bus which IOAREA matches (AHB bus 0).
@@ -173,7 +173,7 @@ int ambapp_leon2_init1(struct drvmgr_dev *dev)
/* Note that this can be overrided by a driver on the AMBA PnP bus.*/ /* Note that this can be overrided by a driver on the AMBA PnP bus.*/
ambapp_freq_init(&priv->abus, NULL, freq_hz); ambapp_freq_init(&priv->abus, NULL, freq_hz);
value = drvmgr_dev_key_get(dev, "drvRes", KEY_TYPE_POINTER); value = drvmgr_dev_key_get(dev, "drvRes", DRVMGR_KT_POINTER);
if (!value) { if (!value) {
DBG("ambapp_leon2_init1: Failed getting resource drvRes\n"); DBG("ambapp_leon2_init1: Failed getting resource drvRes\n");
config->resources = NULL; config->resources = NULL;

View File

@@ -81,40 +81,40 @@ struct leon2_isr_handler {
struct drvmgr_key leon2_timers[] = struct drvmgr_key leon2_timers[] =
{ {
{"REG0", KEY_TYPE_INT, {0x80000040}}, {"REG0", DRVMGR_KT_INT, {0x80000040}},
{"IRQ0", KEY_TYPE_INT, {8}}, {"IRQ0", DRVMGR_KT_INT, {8}},
{"IRQ1", KEY_TYPE_INT, {9}}, {"IRQ1", DRVMGR_KT_INT, {9}},
KEY_EMPTY DRVMGR_KEY_EMPTY
}; };
struct drvmgr_key leon2_uart1[] = struct drvmgr_key leon2_uart1[] =
{ {
{"REG0", KEY_TYPE_INT, {0x80000070}}, {"REG0", DRVMGR_KT_INT, {0x80000070}},
{"IRQ0", KEY_TYPE_INT, {3}}, {"IRQ0", DRVMGR_KT_INT, {3}},
KEY_EMPTY DRVMGR_KEY_EMPTY
}; };
struct drvmgr_key leon2_uart2[] = struct drvmgr_key leon2_uart2[] =
{ {
{"REG0", KEY_TYPE_INT, {0x80000080}}, {"REG0", DRVMGR_KT_INT, {0x80000080}},
{"IRQ0", KEY_TYPE_INT, {2}}, {"IRQ0", DRVMGR_KT_INT, {2}},
KEY_EMPTY DRVMGR_KEY_EMPTY
}; };
struct drvmgr_key leon2_irqctrl[] = struct drvmgr_key leon2_irqctrl[] =
{ {
{"REG0", KEY_TYPE_INT, {0x80000090}}, {"REG0", DRVMGR_KT_INT, {0x80000090}},
KEY_EMPTY DRVMGR_KEY_EMPTY
}; };
struct drvmgr_key leon2_gpio0[] = struct drvmgr_key leon2_gpio0[] =
{ {
{"REG0", KEY_TYPE_INT, {0x800000A0}}, {"REG0", DRVMGR_KT_INT, {0x800000A0}},
{"IRQ0", KEY_TYPE_INT, {4}}, {"IRQ0", DRVMGR_KT_INT, {4}},
{"IRQ1", KEY_TYPE_INT, {5}}, {"IRQ1", DRVMGR_KT_INT, {5}},
{"IRQ2", KEY_TYPE_INT, {6}}, {"IRQ2", DRVMGR_KT_INT, {6}},
{"IRQ3", KEY_TYPE_INT, {7}}, {"IRQ3", DRVMGR_KT_INT, {7}},
KEY_EMPTY DRVMGR_KEY_EMPTY
}; };
struct leon2_core leon2_std_cores[] = struct leon2_core leon2_std_cores[] =
@@ -163,7 +163,7 @@ static int leon2_amba_dev_register(
info->core_id = core->id.core_id; info->core_id = core->id.core_id;
/* Get information from bus configuration */ /* Get information from bus configuration */
value = drvmgr_key_val_get(core->keys, "REG0", KEY_TYPE_INT); value = drvmgr_key_val_get(core->keys, "REG0", DRVMGR_KT_INT);
if ( !value ) { if ( !value ) {
printk("leon2_amba_dev_register: Failed getting resource REG0\n"); printk("leon2_amba_dev_register: Failed getting resource REG0\n");
info->reg_base = 0x00000000; info->reg_base = 0x00000000;
@@ -183,7 +183,7 @@ static int leon2_amba_dev_register(
irq_name[5] = '\0'; irq_name[5] = '\0';
} }
value = drvmgr_key_val_get(core->keys, irq_name, KEY_TYPE_INT); value = drvmgr_key_val_get(core->keys, irq_name, DRVMGR_KT_INT);
if ( !value ) { if ( !value ) {
DBG("leon2_amba_dev_register: Failed getting resource IRQ%d for REG 0x%x\n", i, info->reg_base); DBG("leon2_amba_dev_register: Failed getting resource IRQ%d for REG 0x%x\n", i, info->reg_base);
info->irqs[i] = 0; info->irqs[i] = 0;

View File

@@ -415,7 +415,7 @@ int grgpio_device_init(struct grgpio_priv *priv)
/* Let the user configure the port count, this might be needed /* Let the user configure the port count, this might be needed
* when the GPIO lines must not be changed (assigned during bootup) * when the GPIO lines must not be changed (assigned during bootup)
*/ */
value = drvmgr_dev_key_get(priv->dev, "nBits", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "nBits", DRVMGR_KT_INT);
if ( value ) { if ( value ) {
priv->port_cnt = value->i; priv->port_cnt = value->i;
} else { } else {
@@ -434,7 +434,7 @@ int grgpio_device_init(struct grgpio_priv *priv)
/* Let the user configure the BYPASS register, this might be needed /* Let the user configure the BYPASS register, this might be needed
* to select which cores can do I/O on a pin. * to select which cores can do I/O on a pin.
*/ */
value = drvmgr_dev_key_get(priv->dev, "bypass", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "bypass", DRVMGR_KT_INT);
if ( value ) { if ( value ) {
priv->bypass = value->i; priv->bypass = value->i;
} else { } else {

View File

@@ -153,7 +153,7 @@ static int mctrl_init1(struct drvmgr_dev *dev)
strcpy(res_name, "mcfgX"); strcpy(res_name, "mcfgX");
for(i=0; i<8; i++) { for(i=0; i<8; i++) {
res_name[4] = '1' + i; res_name[4] = '1' + i;
value = drvmgr_dev_key_get(priv->dev, res_name, KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, res_name, DRVMGR_KT_INT);
if ( value ) { if ( value ) {
priv->mcfg[i] = value->i; priv->mcfg[i] = value->i;
priv->configured |= (1<<i); priv->configured |= (1<<i);
@@ -174,12 +174,12 @@ static int mctrl_init1(struct drvmgr_dev *dev)
for (i=0; i<9; i++) { for (i=0; i<9; i++) {
strcpy(res_name, "washXStart"); strcpy(res_name, "washXStart");
res_name[4] = '0' + i; res_name[4] = '0' + i;
value = drvmgr_dev_key_get(priv->dev, res_name, KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, res_name, DRVMGR_KT_INT);
if ( value ) { if ( value ) {
start = value->i; start = value->i;
strcpy(res_name, "washXLength"); strcpy(res_name, "washXLength");
res_name[4] = '0' + i; res_name[4] = '0' + i;
value = drvmgr_dev_key_get(priv->dev, res_name, KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, res_name, DRVMGR_KT_INT);
if ( value ) { if ( value ) {
length = value->i; length = value->i;

View File

@@ -1443,15 +1443,15 @@ int greth_device_init(struct greth_softc *sc)
sc->rxbufs = 32; sc->rxbufs = 32;
sc->phyaddr = -1; sc->phyaddr = -1;
value = drvmgr_dev_key_get(sc->dev, "txDescs", KEY_TYPE_INT); value = drvmgr_dev_key_get(sc->dev, "txDescs", DRVMGR_KT_INT);
if ( value && (value->i <= 128) ) if ( value && (value->i <= 128) )
sc->txbufs = value->i; sc->txbufs = value->i;
value = drvmgr_dev_key_get(sc->dev, "rxDescs", KEY_TYPE_INT); value = drvmgr_dev_key_get(sc->dev, "rxDescs", DRVMGR_KT_INT);
if ( value && (value->i <= 128) ) if ( value && (value->i <= 128) )
sc->rxbufs = value->i; sc->rxbufs = value->i;
value = drvmgr_dev_key_get(sc->dev, "phyAdr", KEY_TYPE_INT); value = drvmgr_dev_key_get(sc->dev, "phyAdr", DRVMGR_KT_INT);
if ( value && (value->i < 32) ) if ( value && (value->i < 32) )
sc->phyaddr = value->i; sc->phyaddr = value->i;

View File

@@ -516,7 +516,7 @@ int gr_cpci_leon4_n2x_init1(struct drvmgr_dev *dev)
* *
* Only the 2 MSB bits have an effect. * Only the 2 MSB bits have an effect.
*/ */
value = drvmgr_dev_key_get(priv->dev, "ahbmst2pci", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "ahbmst2pci", DRVMGR_KT_INT);
if (value) if (value)
priv->ahbmst2pci_map = value->i; priv->ahbmst2pci_map = value->i;
else else
@@ -525,7 +525,7 @@ int gr_cpci_leon4_n2x_init1(struct drvmgr_dev *dev)
/* Let user override the default AMBA system frequency of the /* Let user override the default AMBA system frequency of the
* CPU-bus of the remote GR-CPCI-LEON4-N2X. Default is 200MHz. * CPU-bus of the remote GR-CPCI-LEON4-N2X. Default is 200MHz.
*/ */
value = drvmgr_dev_key_get(priv->dev, "ambaFreq", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "ambaFreq", DRVMGR_KT_INT);
if (value) if (value)
priv->amba_freq_hz = value->i; priv->amba_freq_hz = value->i;
else else
@@ -534,7 +534,7 @@ int gr_cpci_leon4_n2x_init1(struct drvmgr_dev *dev)
/* Let user determine clock-gating unit configuration. The default /* Let user determine clock-gating unit configuration. The default
* is to turn all cores on (disable gating). PCI is always turned ON. * is to turn all cores on (disable gating). PCI is always turned ON.
*/ */
value = drvmgr_dev_key_get(priv->dev, "cgEnMask", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "cgEnMask", DRVMGR_KT_INT);
if (value) if (value)
priv->cg_en_mask = (value->i & CG_MASK) | 0x08; priv->cg_en_mask = (value->i & CG_MASK) | 0x08;
else else

View File

@@ -418,7 +418,7 @@ int gr_rasta_adcdac_init1(struct drvmgr_dev *dev)
* goes out on the PCI bus. * goes out on the PCI bus.
* Only the 4 MSB bits have an effect; * Only the 4 MSB bits have an effect;
*/ */
value = drvmgr_dev_key_get(priv->dev, "ahbmst2pci", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "ahbmst2pci", DRVMGR_KT_INT);
if (value) if (value)
priv->ahbmst2pci_map = value->i; priv->ahbmst2pci_map = value->i;
else else

View File

@@ -597,7 +597,7 @@ int gr_rasta_io_init1(struct drvmgr_dev *dev)
* goes out on the PCI bus. * goes out on the PCI bus.
* Only the 4 MSB bits have an effect; * Only the 4 MSB bits have an effect;
*/ */
value = drvmgr_dev_key_get(priv->dev, "ahbmst2pci", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "ahbmst2pci", DRVMGR_KT_INT);
if (value) if (value)
priv->ahbmst2pci_map = value->i; priv->ahbmst2pci_map = value->i;
else else

View File

@@ -430,7 +430,7 @@ int gr_rasta_spw_router_init1(struct drvmgr_dev *dev)
* goes out on the PCI bus. * goes out on the PCI bus.
* Only the 4 MSB bits have an effect; * Only the 4 MSB bits have an effect;
*/ */
value = drvmgr_dev_key_get(priv->dev, "ahbmst2pci", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "ahbmst2pci", DRVMGR_KT_INT);
if (value) if (value)
priv->ahbmst2pci_map = value->i; priv->ahbmst2pci_map = value->i;
else else

View File

@@ -609,7 +609,7 @@ int gr_rasta_tmtc_init1(struct drvmgr_dev *dev)
* goes out on the PCI bus. * goes out on the PCI bus.
* Only the 4 MSB bits have an effect; * Only the 4 MSB bits have an effect;
*/ */
value = drvmgr_dev_key_get(priv->dev, "ahbmst2pci", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "ahbmst2pci", DRVMGR_KT_INT);
if (value) if (value)
priv->ahbmst2pci_map = value->i; priv->ahbmst2pci_map = value->i;
else else

View File

@@ -545,21 +545,21 @@ static int grpci_init(struct grpci_priv *priv)
/* User may override Both hardcoded IRQ setup and Plug & Play IRQ */ /* User may override Both hardcoded IRQ setup and Plug & Play IRQ */
keyname[3] = 'A' + (pin-1); keyname[3] = 'A' + (pin-1);
value = drvmgr_dev_key_get(priv->dev, keyname, KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, keyname, DRVMGR_KT_INT);
if ( value ) if ( value )
grpci_pci_irq_table[pin-1] = value->i; grpci_pci_irq_table[pin-1] = value->i;
} }
} }
/* User may override DEFAULT_BT_ENABLED to enable/disable byte twisting */ /* User may override DEFAULT_BT_ENABLED to enable/disable byte twisting */
value = drvmgr_dev_key_get(priv->dev, "byteTwisting", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "byteTwisting", DRVMGR_KT_INT);
if ( value ) if ( value )
priv->bt_enabled = value->i; priv->bt_enabled = value->i;
/* Use GRPCI target BAR1 to map CPU RAM to PCI, this is to make it /* Use GRPCI target BAR1 to map CPU RAM to PCI, this is to make it
* possible for PCI peripherals to do DMA directly to CPU memory. * possible for PCI peripherals to do DMA directly to CPU memory.
*/ */
value = drvmgr_dev_key_get(priv->dev, "tgtbar1", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "tgtbar1", DRVMGR_KT_INT);
if (value) if (value)
priv->bar1_pci_adr = value->i; priv->bar1_pci_adr = value->i;
else else

View File

@@ -761,7 +761,7 @@ static int grpci2_init(struct grpci2_priv *priv)
/* User may override Both hardcoded IRQ setup and Plug & Play IRQ */ /* User may override Both hardcoded IRQ setup and Plug & Play IRQ */
keyname[3] = 'A' + (pin-1); keyname[3] = 'A' + (pin-1);
value = drvmgr_dev_key_get(priv->dev, keyname, KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, keyname, DRVMGR_KT_INT);
if (value) if (value)
grpci2_pci_irq_table[pin-1] = value->i; grpci2_pci_irq_table[pin-1] = value->i;
} }
@@ -772,12 +772,12 @@ static int grpci2_init(struct grpci2_priv *priv)
} }
/* User may override DEFAULT_BT_ENABLED to enable/disable byte twisting */ /* User may override DEFAULT_BT_ENABLED to enable/disable byte twisting */
value = drvmgr_dev_key_get(priv->dev, "byteTwisting", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "byteTwisting", DRVMGR_KT_INT);
if (value) if (value)
priv->bt_enabled = value->i; priv->bt_enabled = value->i;
/* Let user Configure the 6 target BARs */ /* Let user Configure the 6 target BARs */
value = drvmgr_dev_key_get(priv->dev, "tgtBarCfg", KEY_TYPE_POINTER); value = drvmgr_dev_key_get(priv->dev, "tgtBarCfg", DRVMGR_KT_POINTER);
if (value) if (value)
priv->barcfg = value->ptr; priv->barcfg = value->ptr;
else else

View File

@@ -457,14 +457,14 @@ static int pcif_init(struct pcif_priv *priv)
/* User may override Plug & Play IRQ */ /* User may override Plug & Play IRQ */
keyname[3] = 'A' + (pin-1); keyname[3] = 'A' + (pin-1);
value = drvmgr_dev_key_get(priv->dev, keyname, KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, keyname, DRVMGR_KT_INT);
if ( value ) if ( value )
pcif_pci_irq_table[pin-1] = value->i; pcif_pci_irq_table[pin-1] = value->i;
} }
} }
priv->irq_mask = 0xf; priv->irq_mask = 0xf;
value = drvmgr_dev_key_get(priv->dev, "", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "", DRVMGR_KT_INT);
if ( value ) if ( value )
priv->irq_mask = value->i & 0xf; priv->irq_mask = value->i & 0xf;

View File

@@ -1005,7 +1005,7 @@ int spictrl_device_init(struct spictrl_priv *priv)
priv->regs->mode = 0; priv->regs->mode = 0;
/* Get custom */ /* Get custom */
value = drvmgr_dev_key_get(priv->dev, "slvSelFunc", KEY_TYPE_POINTER); value = drvmgr_dev_key_get(priv->dev, "slvSelFunc", DRVMGR_KT_POINTER);
if ( value ) { if ( value ) {
priv->slvSelFunc = value->ptr; priv->slvSelFunc = value->ptr;
} }

View File

@@ -536,39 +536,39 @@ int grspw_device_init(GRSPW_DEV *pDev)
/* Get Configuration from Bus resources (Let user override defaults) */ /* Get Configuration from Bus resources (Let user override defaults) */
value = drvmgr_dev_key_get(pDev->dev, "txBdCnt", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "txBdCnt", DRVMGR_KT_INT);
if ( value ) if ( value )
pDev->txbufcnt = value->i; pDev->txbufcnt = value->i;
value = drvmgr_dev_key_get(pDev->dev, "rxBdCnt", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "rxBdCnt", DRVMGR_KT_INT);
if ( value ) if ( value )
pDev->rxbufcnt = value->i; pDev->rxbufcnt = value->i;
value = drvmgr_dev_key_get(pDev->dev, "txDataSize", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "txDataSize", DRVMGR_KT_INT);
if ( value ) if ( value )
pDev->txdbufsize = value->i; pDev->txdbufsize = value->i;
value = drvmgr_dev_key_get(pDev->dev, "txHdrSize", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "txHdrSize", DRVMGR_KT_INT);
if ( value ) if ( value )
pDev->txhbufsize = value->i; pDev->txhbufsize = value->i;
value = drvmgr_dev_key_get(pDev->dev, "rxPktSize", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "rxPktSize", DRVMGR_KT_INT);
if ( value ) if ( value )
pDev->rxbufsize = value->i; pDev->rxbufsize = value->i;
value = drvmgr_dev_key_get(pDev->dev, "rxDmaArea", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "rxDmaArea", DRVMGR_KT_INT);
if ( value ) if ( value )
pDev->rx_dma_area = value->i; pDev->rx_dma_area = value->i;
value = drvmgr_dev_key_get(pDev->dev, "txDataDmaArea", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "txDataDmaArea", DRVMGR_KT_INT);
if ( value ) if ( value )
pDev->tx_data_dma_area = value->i; pDev->tx_data_dma_area = value->i;
value = drvmgr_dev_key_get(pDev->dev, "txHdrDmaArea", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "txHdrDmaArea", DRVMGR_KT_INT);
if ( value ) if ( value )
pDev->tx_hdr_dma_area = value->i; pDev->tx_hdr_dma_area = value->i;
value = drvmgr_dev_key_get(pDev->dev, "bdDmaArea", KEY_TYPE_INT); value = drvmgr_dev_key_get(pDev->dev, "bdDmaArea", DRVMGR_KT_INT);
if ( value ) if ( value )
pDev->bd_dma_area = value->i; pDev->bd_dma_area = value->i;

View File

@@ -547,7 +547,7 @@ void *grspw_open(int dev_no)
* - 64 TX descriptors per DMA Channel * - 64 TX descriptors per DMA Channel
*/ */
bdtabsize = 2 * BDTAB_SIZE * priv->hwsup.ndma_chans; bdtabsize = 2 * BDTAB_SIZE * priv->hwsup.ndma_chans;
value = drvmgr_dev_key_get(priv->dev, "bdDmaArea", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "bdDmaArea", DRVMGR_KT_INT);
if (value) { if (value) {
priv->bd_mem = value->i; priv->bd_mem = value->i;
priv->bd_mem_alloced = 0; priv->bd_mem_alloced = 0;
@@ -2830,7 +2830,7 @@ static int grspw2_init3(struct drvmgr_dev *dev)
/* Let user limit the number of DMA channels on this core to save /* Let user limit the number of DMA channels on this core to save
* space. Only the first nDMA channels will be available. * space. Only the first nDMA channels will be available.
*/ */
value = drvmgr_dev_key_get(priv->dev, "nDMA", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "nDMA", DRVMGR_KT_INT);
if (value && (value->i < priv->hwsup.ndma_chans)) if (value && (value->i < priv->hwsup.ndma_chans))
priv->hwsup.ndma_chans = value->i; priv->hwsup.ndma_chans = value->i;

View File

@@ -213,12 +213,12 @@ int gptimer_init1(struct drvmgr_dev *dev)
timer_start = LEON3_Cpu_Index; timer_start = LEON3_Cpu_Index;
} }
#endif #endif
value = drvmgr_dev_key_get(dev, "timerStart", KEY_TYPE_INT); value = drvmgr_dev_key_get(dev, "timerStart", DRVMGR_KT_INT);
if ( value) { if ( value) {
timer_start = value->i; timer_start = value->i;
timer_cnt = timer_hw_cnt - timer_start; timer_cnt = timer_hw_cnt - timer_start;
} }
value = drvmgr_dev_key_get(dev, "timerCnt", KEY_TYPE_INT); value = drvmgr_dev_key_get(dev, "timerCnt", DRVMGR_KT_INT);
if ( value && (value->i < timer_cnt) ) { if ( value && (value->i < timer_cnt) ) {
timer_cnt = value->i; timer_cnt = value->i;
} }
@@ -264,7 +264,7 @@ int gptimer_init1(struct drvmgr_dev *dev)
* that doing so for the Root-Bus GPTIMER may affect the RTEMS Clock * that doing so for the Root-Bus GPTIMER may affect the RTEMS Clock
* so that Clock frequency is wrong. * so that Clock frequency is wrong.
*/ */
value = drvmgr_dev_key_get(priv->dev, "prescaler", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "prescaler", DRVMGR_KT_INT);
if ( value ) if ( value )
regs->scaler_reload = value->i; regs->scaler_reload = value->i;
@@ -312,7 +312,7 @@ int gptimer_init1(struct drvmgr_dev *dev)
* the timer must be registered at the Clock Driver. * the timer must be registered at the Clock Driver.
*/ */
#if defined(LEON3) && defined(RTEMS_DRVMGR_STARTUP) #if defined(LEON3) && defined(RTEMS_DRVMGR_STARTUP)
value = drvmgr_dev_key_get(priv->dev, "clockTimer", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "clockTimer", DRVMGR_KT_INT);
if ( value && (value->i < timer_cnt) ) { if ( value && (value->i < timer_cnt) ) {
LEON3_Timer_Regs = (void *)regs; LEON3_Timer_Regs = (void *)regs;
Clock_timer_register(timer_index[value->i]); Clock_timer_register(timer_index[value->i]);

View File

@@ -578,7 +578,7 @@ static int grtm_device_init(struct grtm_priv *pDev)
/* Allocate Memory for Buffer Descriptor Table, or let user provide a custom /* Allocate Memory for Buffer Descriptor Table, or let user provide a custom
* address. * address.
*/ */
value = drvmgr_dev_key_get(pDev->dev, "bdTabAdr", KEY_TYPE_POINTER); value = drvmgr_dev_key_get(pDev->dev, "bdTabAdr", DRVMGR_KT_POINTER);
if ( value ) { if ( value ) {
pDev->bds = (struct grtm_bd *)value->ptr; pDev->bds = (struct grtm_bd *)value->ptr;
pDev->_bds = (void *)value->ptr; pDev->_bds = (void *)value->ptr;

View File

@@ -238,7 +238,7 @@ int apbuart_init1(struct drvmgr_dev *dev)
priv->condev.flags = 0; priv->condev.flags = 0;
} }
value = drvmgr_dev_key_get(priv->dev, "syscon", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "syscon", DRVMGR_KT_INT);
if (value) { if (value) {
if (value->i) if (value->i)
priv->condev.flags |= CONSOLE_FLAG_SYSCON; priv->condev.flags |= CONSOLE_FLAG_SYSCON;
@@ -250,7 +250,7 @@ int apbuart_init1(struct drvmgr_dev *dev)
priv->condev.ops.get_uart_attrs = apbuart_get_attributes; priv->condev.ops.get_uart_attrs = apbuart_get_attributes;
/* Select 0=Polled, 1=IRQ, 2=Task-Driven UART Mode */ /* Select 0=Polled, 1=IRQ, 2=Task-Driven UART Mode */
value = drvmgr_dev_key_get(priv->dev, "mode", KEY_TYPE_INT); value = drvmgr_dev_key_get(priv->dev, "mode", DRVMGR_KT_INT);
if (value) if (value)
priv->mode = value->i; priv->mode = value->i;
else else

View File

@@ -170,12 +170,15 @@ struct drvmgr_func {
*/ */
/* Key Data Types */ /* Key Data Types */
#define KEY_TYPE_NONE 0 enum drvmgr_kt {
#define KEY_TYPE_INT 1 DRVMGR_KT_ANY = -1,
#define KEY_TYPE_STRING 2 DRVMGR_KT_NONE = 0,
#define KEY_TYPE_POINTER 3 DRVMGR_KT_INT = 1,
DRVMGR_KT_STRING = 2,
DRVMGR_KT_POINTER = 3,
};
#define KEY_EMPTY {NULL, KEY_TYPE_NONE, {0}} #define DRVMGR_KEY_EMPTY {NULL, DRVMGR_KT_NONE, {0}}
#define RES_EMPTY {0, 0, NULL} #define RES_EMPTY {0, 0, NULL}
#define MMAP_EMPTY {0, 0, 0} #define MMAP_EMPTY {0, 0, 0}
@@ -189,7 +192,7 @@ union drvmgr_key_value {
/* One key. One Value. Holding information relevant to the driver. */ /* One key. One Value. Holding information relevant to the driver. */
struct drvmgr_key { struct drvmgr_key {
char *key_name; /* Name of key */ char *key_name; /* Name of key */
int key_type; /* How to interpret key_value */ enum drvmgr_kt key_type; /* How to interpret key_value */
union drvmgr_key_value key_value; /* The value or pointer to value */ union drvmgr_key_value key_value; /* The value or pointer to value */
}; };
@@ -438,7 +441,7 @@ extern int drvmgr_keys_get(struct drvmgr_dev *dev, struct drvmgr_key **keys);
/*! Return the one key that matches key name from a driver keys array. The keys /*! Return the one key that matches key name from a driver keys array. The keys
* can be obtained using drvmgr_keys_get(). * can be obtained using drvmgr_keys_get().
* *
* \param keys An array of keys ended with KEY_EMPTY to search among. * \param keys An array of keys ended with DRVMGR_KEY_EMPTY to search among.
* \param key_name Name of key to search for among the keys. * \param key_name Name of key to search for among the keys.
*/ */
extern struct drvmgr_key *drvmgr_key_get(struct drvmgr_key *keys, char *key_name); extern struct drvmgr_key *drvmgr_key_get(struct drvmgr_key *keys, char *key_name);
@@ -449,7 +452,7 @@ extern struct drvmgr_key *drvmgr_key_get(struct drvmgr_key *keys, char *key_name
* name), then determines if the type is correct. A pointer to the key value * name), then determines if the type is correct. A pointer to the key value
* is returned. * is returned.
* *
* \param keys An array of keys ended with KEY_EMPTY to search among. * \param keys An array of keys ended with DRVMGR_KEY_EMPTY to search among.
* \param key_name Name of key to search for among the keys. * \param key_name Name of key to search for among the keys.
* \param key_type Data Type of value. INTEGER, ADDRESS, STRING. * \param key_type Data Type of value. INTEGER, ADDRESS, STRING.
* \return Returns NULL if no value found matching Key Name and Key * \return Returns NULL if no value found matching Key Name and Key
@@ -458,7 +461,7 @@ extern struct drvmgr_key *drvmgr_key_get(struct drvmgr_key *keys, char *key_name
extern union drvmgr_key_value *drvmgr_key_val_get( extern union drvmgr_key_value *drvmgr_key_val_get(
struct drvmgr_key *keys, struct drvmgr_key *keys,
char *key_name, char *key_name,
int key_type); enum drvmgr_kt key_type);
/*! Get key value from the bus resources matching [device, key name, key type] /*! Get key value from the bus resources matching [device, key name, key type]
* if no matching key is found NULL is returned. * if no matching key is found NULL is returned.
@@ -475,7 +478,7 @@ extern union drvmgr_key_value *drvmgr_key_val_get(
extern union drvmgr_key_value *drvmgr_dev_key_get( extern union drvmgr_key_value *drvmgr_dev_key_get(
struct drvmgr_dev *dev, struct drvmgr_dev *dev,
char *key_name, char *key_name,
int key_type); enum drvmgr_kt key_type);
/*** DRIVER INTERACE USED TO REQUEST INFORMATION/SERVICES FROM BUS DRIVER ***/ /*** DRIVER INTERACE USED TO REQUEST INFORMATION/SERVICES FROM BUS DRIVER ***/

View File

@@ -135,7 +135,7 @@ void drvmgr_print_mem(void)
resmem += sizeof(struct drvmgr_drv_res); resmem += sizeof(struct drvmgr_drv_res);
key = res->keys; key = res->keys;
while (key->key_type != KEY_TYPE_NONE) { while (key->key_type != DRVMGR_KT_NONE) {
resmem += sizeof resmem += sizeof
(struct drvmgr_key); (struct drvmgr_key);
key++; key++;

View File

@@ -61,7 +61,7 @@ struct drvmgr_key *drvmgr_key_get(
return NULL; return NULL;
key = keys; key = keys;
while (key->key_type != KEY_TYPE_NONE) { while (key->key_type != DRVMGR_KT_NONE) {
if (strcmp(key_name, key->key_name) == 0) if (strcmp(key_name, key->key_name) == 0)
return key; return key;
key++; key++;
@@ -72,14 +72,15 @@ struct drvmgr_key *drvmgr_key_get(
union drvmgr_key_value *drvmgr_key_val_get( union drvmgr_key_value *drvmgr_key_val_get(
struct drvmgr_key *keys, struct drvmgr_key *keys,
char *key_name, char *key_name,
int key_type) enum drvmgr_kt key_type)
{ {
struct drvmgr_key *key_match; struct drvmgr_key *key_match;
key_match = drvmgr_key_get(keys, key_name); key_match = drvmgr_key_get(keys, key_name);
if (key_match) { if (key_match) {
/* Found key, put pointer to value into */ /* Found key, put pointer to value into */
if ((key_type == -1) || (key_match->key_type == key_type)) if ((key_type == DRVMGR_KT_ANY) ||
(key_match->key_type == key_type))
return &key_match->key_value; return &key_match->key_value;
} }
return NULL; return NULL;
@@ -88,7 +89,7 @@ union drvmgr_key_value *drvmgr_key_val_get(
union drvmgr_key_value *drvmgr_dev_key_get( union drvmgr_key_value *drvmgr_dev_key_get(
struct drvmgr_dev *dev, struct drvmgr_dev *dev,
char *key_name, char *key_name,
int key_type) enum drvmgr_kt key_type)
{ {
struct drvmgr_key *keys = NULL; struct drvmgr_key *keys = NULL;

View File

@@ -149,7 +149,7 @@ static void shell_drvmgr_print_key_array(struct drvmgr_key *keys)
{ {
struct drvmgr_key *key; struct drvmgr_key *key;
static char *type_strs[4] = {"UNKNOWN","INTEGER","STRING ","POINTER"}; static char *type_strs[4] = {"UNKNOWN","INTEGER","STRING ","POINTER"};
int type; enum drvmgr_kt type;
union drvmgr_key_value *val; union drvmgr_key_value *val;
if (keys == NULL) { if (keys == NULL) {
@@ -158,23 +158,23 @@ static void shell_drvmgr_print_key_array(struct drvmgr_key *keys)
} }
key = &keys[0]; key = &keys[0];
while (key->key_type != KEY_TYPE_NONE) { while (key->key_type != DRVMGR_KT_NONE) {
if (key->key_type > KEY_TYPE_POINTER) if (key->key_type > DRVMGR_KT_POINTER)
type = 0; type = DRVMGR_KT_NONE;
else else
type = key->key_type; type = key->key_type;
printf(" NAME=%-14s TYPE=%s VALUE=", key->key_name, type_strs[type]); printf(" NAME=%-14s TYPE=%s VALUE=", key->key_name, type_strs[type]);
val = &key->key_value; val = &key->key_value;
switch (type) { switch (type) {
default: default:
case 0: case DRVMGR_KT_NONE:
case KEY_TYPE_INT: case DRVMGR_KT_INT:
printf("0x%x (%d)\n", val->i, val->i); printf("0x%x (%d)\n", val->i, val->i);
break; break;
case KEY_TYPE_STRING: case DRVMGR_KT_STRING:
printf("%s\n", val->str); printf("%s\n", val->str);
break; break;
case KEY_TYPE_POINTER: case DRVMGR_KT_POINTER:
printf("%p\n", val->ptr); printf("%p\n", val->ptr);
break; break;
} }