[PR 13] LEON3: make SHM driver configurable using weak

Daniel Hellstrom daniel at gaisler.com
Mon Feb 6 16:11:54 UTC 2012


On 02/06/2012 04:50 PM, Gedare Bloom wrote:
> On Mon, Feb 6, 2012 at 9:15 AM, Daniel Hellstrom<daniel at gaisler.com>  wrote:
>> Since the configuration struct is always present one can let
>> DATA initialize it to reduce footprint, at the same time it
>> is made weak to let the user able to configure the SHM driver
>> without editing the driver code.
>>
>> Signed-off-by: Daniel Hellstrom<daniel at gaisler.com>
>> ---
>>   c/src/lib/libbsp/sparc/leon3/shmsupp/getcfg.c |   10 ++++++----
>>   1 files changed, 6 insertions(+), 4 deletions(-)
>>
>> diff --git a/c/src/lib/libbsp/sparc/leon3/shmsupp/getcfg.c b/c/src/lib/libbsp/sparc/leon3/shmsupp/getcfg.c
>> index 3711777..55b5659 100644
>> --- a/c/src/lib/libbsp/sparc/leon3/shmsupp/getcfg.c
>> +++ b/c/src/lib/libbsp/sparc/leon3/shmsupp/getcfg.c
>> @@ -76,8 +76,12 @@ extern rtems_mpci_entry Shm_Send_packet(
>>   #define INTERRUPT 0        /* XXX: */
>>   #define POLLING   1        /* XXX: fix me -- is polling ONLY!!! */
>>
>> -
>> -shm_config_table BSP_shm_cfgtbl;
>> +/* Let user override this configuration by declaring this a weak variable */
>> +shm_config_table BSP_shm_cfgtbl __attribute__((weak)) =
>> +{
>> +  (vol_u32 *)0x40000000,
>> +  0x00001000,
>> +};
>>
>>   void Shm_Get_configuration(
>>    uint32_t   localnode,
>> @@ -88,8 +92,6 @@ void Shm_Get_configuration(
>>    int i;
>>    unsigned int tmp;
>>
>> -  BSP_shm_cfgtbl.base         = 0x40000000;
>> -  BSP_shm_cfgtbl.length       = 0x00001000;
>>    BSP_shm_cfgtbl.format       = SHM_BIG;
>>
>>    /*
>> --
>> 1.7.0.4
>>
>> _______________________________________________
>> rtems-devel mailing list
>> rtems-devel at rtems.org
>> http://www.rtems.org/mailman/listinfo/rtems-devel
> Any reason not to include other fields in the initialization?
The rest should be zero, format is forced big-endian regardless of configuration. Is this considered ugly coding style?

Thanks for reviewing!

Daniel




More information about the devel mailing list