[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Introduce mechanism to check standard conformance of headers
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1245219663 -3600 # Node ID aaab04808ee7f7504abc0c6a4fe5daf14968f184 # Parent 0ea75c3b7743ecf4b8dffd0b559e62849d0be313 Introduce mechanism to check standard conformance of headers While pretty simplistic, it appears to serve the purpose at the moment (i.e. it spotted two places where a GNU extension was used withou proper preprocessor conditionals). The "simplistic" here includes that the checking gets only done for native builds, and ia64 gets excluded due to its arch-specific header intentionally (for whatever reason) checking that anonymous struct/unions can be used. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> --- extras/mini-os/fs-front.c | 32 ++++++++++++------------ tools/fs-back/fs-ops.c | 44 ++++++++++++++++----------------- xen/arch/ia64/xen/platform_hypercall.c | 2 - xen/arch/x86/platform_hypercall.c | 4 +-- xen/include/Makefile | 19 ++++++++++++++ xen/include/headers.chk | 39 +++++++++++++++++++++++++++++ xen/include/public/event_channel.h | 2 + xen/include/public/grant_table.h | 1 xen/include/public/hvm/hvm_op.h | 2 + xen/include/public/io/fsif.h | 2 - xen/include/public/io/xs_wire.h | 2 + xen/include/public/memory.h | 2 + xen/include/public/nmi.h | 2 + xen/include/public/physdev.h | 2 + xen/include/public/platform.h | 2 - xen/include/public/vcpu.h | 2 + 16 files changed, 116 insertions(+), 43 deletions(-) diff -r 0ea75c3b7743 -r aaab04808ee7 extras/mini-os/fs-front.c --- a/extras/mini-os/fs-front.c Wed Jun 17 07:14:02 2009 +0100 +++ b/extras/mini-os/fs-front.c Wed Jun 17 07:21:03 2009 +0100 @@ -218,7 +218,7 @@ int fs_open(struct fs_import *import, ch schedule(); /* Read the response */ - fd = (int)fsr->shadow_rsp.ret_val; + fd = (int)fsr->shadow_rsp.u.ret_val; DEBUG("The following FD returned: %d\n", fd); free_buffer_page(fsr); add_id_to_freelist(priv_req_id, import->freelist); @@ -256,7 +256,7 @@ int fs_close(struct fs_import *import, i schedule(); /* Read the response */ - ret = (int)fsr->shadow_rsp.ret_val; + ret = (int)fsr->shadow_rsp.u.ret_val; DEBUG("Close returned: %d\n", ret); add_id_to_freelist(priv_req_id, import->freelist); @@ -313,7 +313,7 @@ ssize_t fs_read(struct fs_import *import schedule(); /* Read the response */ - ret = (ssize_t)fsr->shadow_rsp.ret_val; + ret = (ssize_t)fsr->shadow_rsp.u.ret_val; DEBUG("The following ret value returned %d\n", ret); if(ret > 0) { @@ -391,7 +391,7 @@ ssize_t fs_write(struct fs_import *impor schedule(); /* Read the response */ - ret = (ssize_t)fsr->shadow_rsp.ret_val; + ret = (ssize_t)fsr->shadow_rsp.u.ret_val; DEBUG("The following ret value returned %d\n", ret); for(i=0; i<gnts.count; i++) { @@ -435,10 +435,10 @@ int fs_stat(struct fs_import *import, schedule(); /* Read the response */ - ret = (int)fsr->shadow_rsp.ret_val; + ret = (int)fsr->shadow_rsp.u.ret_val; DEBUG("Following ret from fstat: %d\n", ret); memcpy(stat, - &fsr->shadow_rsp.fstat, + &fsr->shadow_rsp.u.fstat, sizeof(struct fsif_stat_response)); add_id_to_freelist(priv_req_id, import->freelist); @@ -478,7 +478,7 @@ int fs_truncate(struct fs_import *import schedule(); /* Read the response */ - ret = (int)fsr->shadow_rsp.ret_val; + ret = (int)fsr->shadow_rsp.u.ret_val; DEBUG("Following ret from ftruncate: %d\n", ret); add_id_to_freelist(priv_req_id, import->freelist); @@ -520,7 +520,7 @@ int fs_remove(struct fs_import *import, schedule(); /* Read the response */ - ret = (int)fsr->shadow_rsp.ret_val; + ret = (int)fsr->shadow_rsp.u.ret_val; DEBUG("The following ret: %d\n", ret); free_buffer_page(fsr); add_id_to_freelist(priv_req_id, import->freelist); @@ -575,7 +575,7 @@ int fs_rename(struct fs_import *import, schedule(); /* Read the response */ - ret = (int)fsr->shadow_rsp.ret_val; + ret = (int)fsr->shadow_rsp.u.ret_val; DEBUG("The following ret: %d\n", ret); free_buffer_page(fsr); add_id_to_freelist(priv_req_id, import->freelist); @@ -621,7 +621,7 @@ int fs_create(struct fs_import *import, schedule(); /* Read the response */ - ret = (int)fsr->shadow_rsp.ret_val; + ret = (int)fsr->shadow_rsp.u.ret_val; DEBUG("The following ret: %d\n", ret); free_buffer_page(fsr); add_id_to_freelist(priv_req_id, import->freelist); @@ -670,7 +670,7 @@ char** fs_list(struct fs_import *import, schedule(); /* Read the response */ - *nr_files = (fsr->shadow_rsp.ret_val & NR_FILES_MASK) >> NR_FILES_SHIFT; + *nr_files = (fsr->shadow_rsp.u.ret_val & NR_FILES_MASK) >> NR_FILES_SHIFT; files = NULL; if(*nr_files <= 0) goto exit; files = malloc(sizeof(char*) * (*nr_files)); @@ -681,7 +681,7 @@ char** fs_list(struct fs_import *import, current_file += strlen(current_file) + 1; } if(has_more != NULL) - *has_more = fsr->shadow_rsp.ret_val & HAS_MORE_FLAG; + *has_more = fsr->shadow_rsp.u.ret_val & HAS_MORE_FLAG; free_buffer_page(fsr); add_id_to_freelist(priv_req_id, import->freelist); exit: @@ -719,7 +719,7 @@ int fs_chmod(struct fs_import *import, i schedule(); /* Read the response */ - ret = (int)fsr->shadow_rsp.ret_val; + ret = (int)fsr->shadow_rsp.u.ret_val; DEBUG("The following returned: %d\n", ret); add_id_to_freelist(priv_req_id, import->freelist); @@ -761,7 +761,7 @@ int64_t fs_space(struct fs_import *impor schedule(); /* Read the response */ - ret = (int64_t)fsr->shadow_rsp.ret_val; + ret = (int64_t)fsr->shadow_rsp.u.ret_val; DEBUG("The following returned: %lld\n", ret); free_buffer_page(fsr); add_id_to_freelist(priv_req_id, import->freelist); @@ -799,7 +799,7 @@ int fs_sync(struct fs_import *import, in schedule(); /* Read the response */ - ret = (int)fsr->shadow_rsp.ret_val; + ret = (int)fsr->shadow_rsp.u.ret_val; DEBUG("Close returned: %d\n", ret); add_id_to_freelist(priv_req_id, import->freelist); @@ -852,7 +852,7 @@ moretodo: rsp = RING_GET_RESPONSE(&import->ring, cons); DEBUG("Response at idx=%d to request id=%d, ret_val=%lx\n", - cons, rsp->id, rsp->ret_val); + cons, rsp->id, rsp->u.ret_val); req = &import->requests[rsp->id]; memcpy(&req->shadow_rsp, rsp, sizeof(struct fsif_response)); DEBUG("Waking up: %s\n", req->thread->name); diff -r 0ea75c3b7743 -r aaab04808ee7 tools/fs-back/fs-ops.c --- a/tools/fs-back/fs-ops.c Wed Jun 17 07:14:02 2009 +0100 +++ b/tools/fs-back/fs-ops.c Wed Jun 17 07:21:03 2009 +0100 @@ -89,7 +89,7 @@ static void dispatch_file_open(struct fs FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = (uint64_t)fd; + rsp->u.ret_val = (uint64_t)fd; } static void dispatch_file_close(struct fs_mount *mount, struct fsif_request *req) @@ -119,7 +119,7 @@ static void dispatch_file_close(struct f FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = (uint64_t)ret; + rsp->u.ret_val = (uint64_t)ret; } #define MAX_GNTS 16 @@ -190,7 +190,7 @@ static void end_file_read(struct fs_moun FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = (uint64_t)aio_return(&priv_req->aiocb); + rsp->u.ret_val = (uint64_t)aio_return(&priv_req->aiocb); } static void dispatch_file_write(struct fs_mount *mount, struct fsif_request *req) @@ -261,7 +261,7 @@ static void end_file_write(struct fs_mou FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = (uint64_t)aio_return(&priv_req->aiocb); + rsp->u.ret_val = (uint64_t)aio_return(&priv_req->aiocb); } static void dispatch_stat(struct fs_mount *mount, struct fsif_request *req) @@ -294,24 +294,24 @@ static void dispatch_stat(struct fs_moun FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->fstat.stat_ret = (uint32_t)ret; - rsp->fstat.stat_mode = stat.st_mode; - rsp->fstat.stat_uid = stat.st_uid; - rsp->fstat.stat_gid = stat.st_gid; + rsp->u.fstat.stat_ret = (uint32_t)ret; + rsp->u.fstat.stat_mode = stat.st_mode; + rsp->u.fstat.stat_uid = stat.st_uid; + rsp->u.fstat.stat_gid = stat.st_gid; #ifdef BLKGETSIZE if (S_ISBLK(stat.st_mode)) { unsigned long sectors; if (ioctl(fd, BLKGETSIZE, §ors)) { perror("getting device size\n"); - rsp->fstat.stat_size = 0; + rsp->u.fstat.stat_size = 0; } else - rsp->fstat.stat_size = sectors << 9; + rsp->u.fstat.stat_size = sectors << 9; } else #endif - rsp->fstat.stat_size = stat.st_size; - rsp->fstat.stat_atime = stat.st_atime; - rsp->fstat.stat_mtime = stat.st_mtime; - rsp->fstat.stat_ctime = stat.st_ctime; + rsp->u.fstat.stat_size = stat.st_size; + rsp->u.fstat.stat_atime = stat.st_atime; + rsp->u.fstat.stat_mtime = stat.st_mtime; + rsp->u.fstat.stat_ctime = stat.st_ctime; } @@ -344,7 +344,7 @@ static void dispatch_truncate(struct fs_ FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = (uint64_t)ret; + rsp->u.ret_val = (uint64_t)ret; } static void dispatch_remove(struct fs_mount *mount, struct fsif_request *req) @@ -382,7 +382,7 @@ static void dispatch_remove(struct fs_mo FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = (uint64_t)ret; + rsp->u.ret_val = (uint64_t)ret; } @@ -429,7 +429,7 @@ static void dispatch_rename(struct fs_mo FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = (uint64_t)ret; + rsp->u.ret_val = (uint64_t)ret; } @@ -490,7 +490,7 @@ static void dispatch_create(struct fs_mo FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = (uint64_t)ret; + rsp->u.ret_val = (uint64_t)ret; } static void dispatch_list(struct fs_mount *mount, struct fsif_request *req) @@ -560,7 +560,7 @@ error_out: FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = ret_val; + rsp->u.ret_val = ret_val; } static void dispatch_chmod(struct fs_mount *mount, struct fsif_request *req) @@ -591,7 +591,7 @@ static void dispatch_chmod(struct fs_mou FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = (uint64_t)ret; + rsp->u.ret_val = (uint64_t)ret; } static void dispatch_fs_space(struct fs_mount *mount, struct fsif_request *req) @@ -632,7 +632,7 @@ static void dispatch_fs_space(struct fs_ FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = (uint64_t)ret; + rsp->u.ret_val = (uint64_t)ret; } static void dispatch_file_sync(struct fs_mount *mount, struct fsif_request *req) @@ -681,7 +681,7 @@ static void end_file_sync(struct fs_moun FS_DEBUG("Writing response at: idx=%d, id=%d\n", rsp_idx, req_id); rsp = RING_GET_RESPONSE(&mount->ring, rsp_idx); rsp->id = req_id; - rsp->ret_val = (uint64_t)aio_return(&priv_req->aiocb); + rsp->u.ret_val = (uint64_t)aio_return(&priv_req->aiocb); } struct fs_op fopen_op = {.type = REQ_FILE_OPEN, diff -r 0ea75c3b7743 -r aaab04808ee7 xen/arch/ia64/xen/platform_hypercall.c --- a/xen/arch/ia64/xen/platform_hypercall.c Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/arch/ia64/xen/platform_hypercall.c Wed Jun 17 07:21:03 2009 +0100 @@ -48,7 +48,7 @@ long do_platform_op(XEN_GUEST_HANDLE(xen break; } ret = set_px_pminfo(op->u.set_pminfo.id, - &op->u.set_pminfo.perf); + &op->u.set_pminfo.u.perf); break; case XEN_PM_CX: diff -r 0ea75c3b7743 -r aaab04808ee7 xen/arch/x86/platform_hypercall.c --- a/xen/arch/x86/platform_hypercall.c Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/arch/x86/platform_hypercall.c Wed Jun 17 07:21:03 2009 +0100 @@ -359,7 +359,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe ret = -ENOSYS; break; } - ret = set_px_pminfo(op->u.set_pminfo.id, &op->u.set_pminfo.perf); + ret = set_px_pminfo(op->u.set_pminfo.id, &op->u.set_pminfo.u.perf); break; case XEN_PM_CX: @@ -368,7 +368,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe ret = -ENOSYS; break; } - ret = set_cx_pminfo(op->u.set_pminfo.id, &op->u.set_pminfo.power); + ret = set_cx_pminfo(op->u.set_pminfo.id, &op->u.set_pminfo.u.power); break; case XEN_PM_TX: diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/Makefile --- a/xen/include/Makefile Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/include/Makefile Wed Jun 17 07:21:03 2009 +0100 @@ -1,3 +1,6 @@ ifneq ($(CONFIG_COMPAT),) +XEN_ROOT:=$(BASEDIR)/.. +include $(XEN_ROOT)/Config.mk + ifneq ($(CONFIG_COMPAT),) compat-arch-$(CONFIG_X86) := x86_32 @@ -35,6 +38,9 @@ suffix-$(CONFIG_X86) := \#pragma pa endif +public-$(CONFIG_X86) := $(wildcard public/arch-x86/*.h public/arch-x86/*/*.h) +public-$(CONFIG_IA64) := $(wildcard public/arch-ia64/*.h public/arch-ia64/*/*.h) + .PHONY: all all: $(headers-y) @@ -67,5 +73,18 @@ compat/xlat.h: xlat.lst $(filter-out com done >$@.new mv -f $@.new $@ +ifeq ($(XEN_TARGET_ARCH),$(XEN_COMPILE_ARCH)) +# public/arch-ia64.h explicitly bails on __STRICT_ANSI__ +ifeq ($(CONFIG_IA64),) + +all: headers.chk + +headers.chk: $(filter-out public/arch-% public/%ctl.h public/xsm/% public/%hvm/save.h, $(wildcard public/*.h public/*/*.h) $(public-y)) Makefile + for i in $(filter %.h,$^); do $(CC) -ansi -include stdint.h -Wall -W -Werror -S -o /dev/null -xc $$i || exit 1; echo $$i; done >$@.new + mv $@.new $@ + +endif +endif + clean:: rm -rf compat diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/headers.chk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xen/include/headers.chk Wed Jun 17 07:21:03 2009 +0100 @@ -0,0 +1,39 @@ +public/callback.h +public/dom0_ops.h +public/elfnote.h +public/event_channel.h +public/features.h +public/grant_table.h +public/kexec.h +public/memory.h +public/nmi.h +public/physdev.h +public/platform.h +public/sched.h +public/tmem.h +public/trace.h +public/vcpu.h +public/version.h +public/xencomm.h +public/xen-compat.h +public/xen.h +public/xenoprof.h +public/hvm/e820.h +public/hvm/hvm_info_table.h +public/hvm/hvm_op.h +public/hvm/ioreq.h +public/hvm/params.h +public/io/blkif.h +public/io/console.h +public/io/fbif.h +public/io/fsif.h +public/io/kbdif.h +public/io/netif.h +public/io/pciif.h +public/io/protocols.h +public/io/ring.h +public/io/tpmif.h +public/io/usbif.h +public/io/vscsiif.h +public/io/xenbus.h +public/io/xs_wire.h diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/public/event_channel.h --- a/xen/include/public/event_channel.h Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/include/public/event_channel.h Wed Jun 17 07:21:03 2009 +0100 @@ -26,6 +26,8 @@ #ifndef __XEN_PUBLIC_EVENT_CHANNEL_H__ #define __XEN_PUBLIC_EVENT_CHANNEL_H__ + +#include "xen.h" /* * Prototype for this hypercall is: diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/public/grant_table.h --- a/xen/include/public/grant_table.h Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/include/public/grant_table.h Wed Jun 17 07:21:03 2009 +0100 @@ -28,6 +28,7 @@ #ifndef __XEN_PUBLIC_GRANT_TABLE_H__ #define __XEN_PUBLIC_GRANT_TABLE_H__ +#include "xen.h" /*********************************** * GRANT TABLE REPRESENTATION diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/public/hvm/hvm_op.h --- a/xen/include/public/hvm/hvm_op.h Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/include/public/hvm/hvm_op.h Wed Jun 17 07:21:03 2009 +0100 @@ -20,6 +20,8 @@ #ifndef __XEN_PUBLIC_HVM_HVM_OP_H__ #define __XEN_PUBLIC_HVM_HVM_OP_H__ + +#include "../xen.h" /* Get/set subcommands: extra argument == pointer to xen_hvm_param struct. */ #define HVMOP_set_param 0 diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/public/io/fsif.h --- a/xen/include/public/io/fsif.h Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/include/public/io/fsif.h Wed Jun 17 07:21:03 2009 +0100 @@ -169,7 +169,7 @@ struct fsif_response { union { uint64_t ret_val; struct fsif_stat_response fstat; - }; + } u; }; typedef struct fsif_response fsif_response_t; diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/public/io/xs_wire.h --- a/xen/include/public/io/xs_wire.h Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/include/public/io/xs_wire.h Wed Jun 17 07:21:03 2009 +0100 @@ -60,6 +60,7 @@ struct xsd_errors int errnum; const char *errstring; }; +#ifdef EINVAL #define XSD_ERROR(x) { x, #x } /* LINTED: static unused */ static struct xsd_errors xsd_errors[] @@ -82,6 +83,7 @@ __attribute__((unused)) XSD_ERROR(EAGAIN), XSD_ERROR(EISCONN) }; +#endif struct xsd_sockmsg { diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/public/memory.h --- a/xen/include/public/memory.h Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/include/public/memory.h Wed Jun 17 07:21:03 2009 +0100 @@ -27,6 +27,8 @@ #ifndef __XEN_PUBLIC_MEMORY_H__ #define __XEN_PUBLIC_MEMORY_H__ +#include "xen.h" + /* * Increase or decrease the specified domain's memory reservation. Returns the * number of extents successfully allocated or freed. diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/public/nmi.h --- a/xen/include/public/nmi.h Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/include/public/nmi.h Wed Jun 17 07:21:03 2009 +0100 @@ -26,6 +26,8 @@ #ifndef __XEN_PUBLIC_NMI_H__ #define __XEN_PUBLIC_NMI_H__ + +#include "xen.h" /* * NMI reason codes: diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/public/physdev.h --- a/xen/include/public/physdev.h Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/include/public/physdev.h Wed Jun 17 07:21:03 2009 +0100 @@ -21,6 +21,8 @@ #ifndef __XEN_PUBLIC_PHYSDEV_H__ #define __XEN_PUBLIC_PHYSDEV_H__ +#include "xen.h" + /* * Prototype for this hypercall is: * int physdev_op(int cmd, void *args) diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/public/platform.h --- a/xen/include/public/platform.h Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/include/public/platform.h Wed Jun 17 07:21:03 2009 +0100 @@ -307,7 +307,7 @@ struct xenpf_set_processor_pminfo { union { struct xen_processor_power power;/* Cx: _CST/_CSD */ struct xen_processor_performance perf; /* Px: _PPC/_PCT/_PSS/_PSD */ - }; + } u; }; typedef struct xenpf_set_processor_pminfo xenpf_set_processor_pminfo_t; DEFINE_XEN_GUEST_HANDLE(xenpf_set_processor_pminfo_t); diff -r 0ea75c3b7743 -r aaab04808ee7 xen/include/public/vcpu.h --- a/xen/include/public/vcpu.h Wed Jun 17 07:14:02 2009 +0100 +++ b/xen/include/public/vcpu.h Wed Jun 17 07:21:03 2009 +0100 @@ -26,6 +26,8 @@ #ifndef __XEN_PUBLIC_VCPU_H__ #define __XEN_PUBLIC_VCPU_H__ + +#include "xen.h" /* * Prototype for this hypercall is: _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |