[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v3 06/13] xen/arm: Introduce a generic way to describe device



Hi Ian,

On 20/02/15 12:22, Ian Campbell wrote:
> On Fri, 2015-01-30 at 18:49 +0000, Julien Grall wrote:
>> @@ -2,8 +2,34 @@
>>  #define __ASM_ARM_DEVICE_H
>>  
>>  #include <xen/init.h>
>> +
>> +enum device_type
>> +{
>> +    DEV_DT,
> 
> I suppose no #ifdef here because an empty enum is a bit silly?

this code is ARM-specific and device tree is always supported for this
architecture.

>>  
>> +/* TODO: Correctly implement dev_is_pci when PCI will be supported on ARM */
> 
> s/will be/is/
> 
>> +#define dev_is_pci(dev) ((void)(dev), 0)
>> +#define dev_is_dt(dev)  ((dev->type == DEV_DT)
>> +
>>  enum device_class
>>  {
>>      DEVICE_SERIAL,
>> diff --git a/xen/include/asm-x86/device.h b/xen/include/asm-x86/device.h
>> new file mode 100644
>> index 0000000..a016112
>> --- /dev/null
>> +++ b/xen/include/asm-x86/device.h
>> @@ -0,0 +1,25 @@
>> +#ifndef __ASM_X86_DEVICE_H
>> +#define __ASM_X86_DEVICE_H
>> +
>> +#include <xen/pci.h>
>> +
>> +/*
>> + * x86 is only supported PCI. Therefore it's possible to directly use
> 
> "x86 is only supporting PCI" or (better) "x86 only supports PCI".
> 
>> +#define dt_to_dev(dt_node)  (&(dt_node)->dev)
>> +
>> +static inline struct dt_device_node *dev_to_dt(struct device *dev)
>> +{
>> +    ASSERT(dev->type == DEV_DT);
>> +
>> +    return container_of(dev, struct dt_device_node, dev);
>> +}
> 
> Given that x86 uses a difference struct and doesn't support DT shouldn't
> this either be wrapped in a HAVE_DEVICE_TREE or placed in the ARM header
> (or some other common-to-all-dt-platforms header)?

That would be a mistake to include <xen/device_tree.h> on x86. Currently
all the #include to this header are protected with #ifdef HAVE_DEVICE_TREE.

Regards,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.