|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 1/5] xen: define ACPI and DT device info sections macros
On 19.09.2024 23:05, Shawn Anastasio wrote:
> On 9/17/24 11:15 AM, Oleksii Kurochko wrote:
>> --- a/xen/include/xen/xen.lds.h
>> +++ b/xen/include/xen/xen.lds.h
>> @@ -114,6 +114,21 @@
>>
>> /* List of constructs other than *_SECTIONS in alphabetical order. */
>>
>> +#define USE_DECL_SECTION(x) DECL_SECTION(x)
>> +
>> +#define NOUSE_DECL_SECTION(x) x :
>> +
>> +#ifdef CONFIG_ACPI
>> +#define ACPI_DEV_INFO_SEC(secname, DECL_SECTION_MACROS_NAME) \
>> + DECL_SECTION_MACROS_NAME(secname) { \
>> + _asdevice = .; \
>> + *(secname) \
>> + _aedevice = .; \
>> + } :text
>> +#else
>> +#define ACPI_DEV_INFO_SEC(secname, DECL_SECTION_MACROS_NAME)
>> +#endif /* CONFIG_ACPI */
>
> This works, but is there a reason you didn't just define the actual
> entries themselves in the macro, like is done for most of the other
> macros in this file (including BUFRAMES right below this)? Something
> like:
>
> #define ADEV_INFO \
> _asdevice = .; \
> *(secname) \
> _aedevice = .; \
>
> Parameterizing the section name seems pointless since there are other
> parts of the code that rely on them, and parameterizing the macro for
> declaring a section adds unnecessary boilerplate for non-ppc/x86
> architectures (the NOUSE_DECL_SECTION no-op).
>
>> +
>> #define BUGFRAMES \
>> __start_bug_frames_0 = .; \
>> *(.bug_frames.0) \
>> @@ -131,6 +146,17 @@
>> *(.bug_frames.3) \
>> __stop_bug_frames_3 = .;
>>
>> +#ifdef CONFIG_HAS_DEVICE_TREE
>> +#define DT_DEV_INFO_SEC(secname, DECL_SECTION_MACROS_NAME) \
>> + DECL_SECTION_MACROS_NAME(secname) { \
>> + _sdevice = .; \
>> + *(secname) \
>> + _edevice = .; \
>> + } :text
>> +#else
>> +#define DECL_DT_DEV_INFO_SEC(secname, DECL_SECTION_MACROS_NAME)
>> +#endif /* CONFIG_HAS_DEVICE_TREE */
>
> Ditto. Also, if you go with the approach I mentioned, then you wouldn't
> need to guard these on CONFIG_HAS_DEVICE_TREE/CONFIG_ACPI since that
> would be done in the linker scripts themselves.
+1
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |