Message ID | 1459905949-10358-21-git-send-email-boris.ostrovsky@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
>>> On 06.04.16 at 03:25, <boris.ostrovsky@oracle.com> wrote: > --- a/xen/common/libacpi/Makefile > +++ b/xen/common/libacpi/Makefile > @@ -21,7 +21,16 @@ C_SRC = build.c dsdt_anycpu.c dsdt_15cpu.c static_tables.c > C_SRC += dsdt_anycpu_qemu_xen.c dsdt_empty.c > OBJS = $(patsubst %.c,%.o,$(C_SRC)) > > -CFLAGS_xeninclude = -I$(XEN_ROOT)/tools/include > +ifneq (,$(findstring -D__XEN__,$(CFLAGS))) > +# Hypervisor > +obj-y = $(OBJS) > +$(OBJS): all > +CFLAGS += -I$(XEN_ROOT)/xen/include/public > +CFLAGS_MKDSDT = -I$(XEN_ROOT)/xen/include/public/hvm -D__XEN__ > +else > +# Toolstack > +CFLAGS_MKDSDT = -I$(XEN_ROOT)/tools/include > +endif This again speaks against makefile sharing. Note that libelf doesn't have anything like that. > --- a/xen/common/libacpi/acpi2_0.h > +++ b/xen/common/libacpi/acpi2_0.h > @@ -17,10 +17,16 @@ > #ifndef _ACPI_2_0_H_ > #define _ACPI_2_0_H_ > > +#ifndef __XEN__ > #include <stdint.h> > #include <xen/xen.h> > #include <xen/hvm/ioreq.h> > #include <xen/memory.h> > +#else > +#include <xen/lib.h> > +#include <memory.h> > +#include <hvm/ioreq.h> > +#endif I'm not sure this should be done here, albeit I do see the analogy to how libelf deals with the dual use in this regard (perhaps doing this in .c files of header other than this particular one would be fine). In any event I am missing public/ prefixes above (preferably you would drop the explicit .../public include path, but even if that's needed for some reason, please don't obscure the inclusion of public headers here by omitting that prefix). > --- a/xen/common/libacpi/build.c > +++ b/xen/common/libacpi/build.c > @@ -15,8 +15,13 @@ > * this program; If not, see <http://www.gnu.org/licenses/>. > */ > > +#ifndef __XEN__ > #include <stdio.h> > #include <string.h> > +#else > +#include <xen/lib.h> > +#define printf printk > +#endif I think we should strive to not introduce bunches of new log-level-less printk()-s. (But I do appreciate you not introducing stdio.h here.) > @@ -24,14 +29,24 @@ > #include "ssdt_tpm.h" > #include "ssdt_pm.h" > #include "x86.h" > +#ifndef __XEN__ > #include <xen/hvm/hvm_info_table.h> > #include <xen/hvm/hvm_xs_strings.h> > #include <xen/hvm/params.h> > +#else > +#include <hvm/hvm_info_table.h> > +#include <hvm/hvm_xs_strings.h> > +#include <hvm/params.h> > +#endif > > #define ACPI_MAX_SECONDARY_TABLES 16 > > #define align16(sz) (((sz) + 15) & ~15) > +#ifndef __XEN__ > #define fixed_strcpy(d, s) strncpy((d), (s), sizeof(d)) > +#else > +#define fixed_strcpy(d, s) strlcpy((d), (s), sizeof(d)) > +#endif I'd rather see you ditch the stray parentheses in the pre-existing instance than introduce further ones. Jan
diff --git a/xen/common/Makefile b/xen/common/Makefile index 77de27e..6e0ac8b 100644 --- a/xen/common/Makefile +++ b/xen/common/Makefile @@ -73,5 +73,5 @@ subdir-$(CONFIG_X86) += hvm subdir-$(coverage) += gcov -subdir-y += libelf +subdir-y += libelf libacpi subdir-$(CONFIG_HAS_DEVICE_TREE) += libfdt diff --git a/xen/common/libacpi/Makefile b/xen/common/libacpi/Makefile index a1f233f..6cf98db 100644 --- a/xen/common/libacpi/Makefile +++ b/xen/common/libacpi/Makefile @@ -21,7 +21,16 @@ C_SRC = build.c dsdt_anycpu.c dsdt_15cpu.c static_tables.c C_SRC += dsdt_anycpu_qemu_xen.c dsdt_empty.c OBJS = $(patsubst %.c,%.o,$(C_SRC)) -CFLAGS_xeninclude = -I$(XEN_ROOT)/tools/include +ifneq (,$(findstring -D__XEN__,$(CFLAGS))) +# Hypervisor +obj-y = $(OBJS) +$(OBJS): all +CFLAGS += -I$(XEN_ROOT)/xen/include/public +CFLAGS_MKDSDT = -I$(XEN_ROOT)/xen/include/public/hvm -D__XEN__ +else +# Toolstack +CFLAGS_MKDSDT = -I$(XEN_ROOT)/tools/include +endif vpath iasl $(PATH) all: $(C_SRC) ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h @@ -32,7 +41,7 @@ ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h: %.h: %.asl iasl rm -f $*.hex $*.aml mk_dsdt: mk_dsdt.c - $(HOSTCC) $(HOSTCFLAGS) $(CFLAGS_xeninclude) -o $@ mk_dsdt.c + $(HOSTCC) $(HOSTCFLAGS) $(CFLAGS_MKDSDT) -o $@ mk_dsdt.c dsdt_anycpu_qemu_xen.asl: dsdt.asl mk_dsdt awk 'NR > 1 {print s} {s=$$0}' $< > $@ @@ -57,7 +66,7 @@ iasl: @echo @exit 1 -clean: +clean:: rm -rf *.o $(IASL_VER) $(IASL_VER).tar.gz $(DEPS) rm -rf ssdt_*.h dsdt*.c *~ *.aml *.hex mk_dsdt dsdt_*cpu*.asl diff --git a/xen/common/libacpi/acpi2_0.h b/xen/common/libacpi/acpi2_0.h index 458fb49..d47ad84 100644 --- a/xen/common/libacpi/acpi2_0.h +++ b/xen/common/libacpi/acpi2_0.h @@ -17,10 +17,16 @@ #ifndef _ACPI_2_0_H_ #define _ACPI_2_0_H_ +#ifndef __XEN__ #include <stdint.h> #include <xen/xen.h> #include <xen/hvm/ioreq.h> #include <xen/memory.h> +#else +#include <xen/lib.h> +#include <memory.h> +#include <hvm/ioreq.h> +#endif #define ASCII32(a,b,c,d) \ (((a) << 0) | ((b) << 8) | ((c) << 16) | ((d) << 24)) diff --git a/xen/common/libacpi/build.c b/xen/common/libacpi/build.c index 7f2662a..cbde7f9 100644 --- a/xen/common/libacpi/build.c +++ b/xen/common/libacpi/build.c @@ -15,8 +15,13 @@ * this program; If not, see <http://www.gnu.org/licenses/>. */ +#ifndef __XEN__ #include <stdio.h> #include <string.h> +#else +#include <xen/lib.h> +#define printf printk +#endif #include "acpi2_0.h" #include "ssdt_s3.h" @@ -24,14 +29,24 @@ #include "ssdt_tpm.h" #include "ssdt_pm.h" #include "x86.h" +#ifndef __XEN__ #include <xen/hvm/hvm_info_table.h> #include <xen/hvm/hvm_xs_strings.h> #include <xen/hvm/params.h> +#else +#include <hvm/hvm_info_table.h> +#include <hvm/hvm_xs_strings.h> +#include <hvm/params.h> +#endif #define ACPI_MAX_SECONDARY_TABLES 16 #define align16(sz) (((sz) + 15) & ~15) +#ifndef __XEN__ #define fixed_strcpy(d, s) strncpy((d), (s), sizeof(d)) +#else +#define fixed_strcpy(d, s) strlcpy((d), (s), sizeof(d)) +#endif #ifndef offsetof #define offsetof(t, m) ((unsigned long)&((t *)0)->m) #endif diff --git a/xen/common/libacpi/mk_dsdt.c b/xen/common/libacpi/mk_dsdt.c index b567b38..e38a2f2 100644 --- a/xen/common/libacpi/mk_dsdt.c +++ b/xen/common/libacpi/mk_dsdt.c @@ -5,7 +5,11 @@ #include <getopt.h> #include <stdlib.h> #include <stdbool.h> +#ifndef __XEN__ #include <xen/hvm/hvm_info_table.h> +#else +#include <hvm_info_table.h> +#endif static unsigned int indent_level; static bool debug = false;
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> --- xen/common/Makefile | 2 +- xen/common/libacpi/Makefile | 15 ++++++++++++--- xen/common/libacpi/acpi2_0.h | 6 ++++++ xen/common/libacpi/build.c | 15 +++++++++++++++ xen/common/libacpi/mk_dsdt.c | 4 ++++ 5 files changed, 38 insertions(+), 4 deletions(-)