[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [win-pv-devel] [PATCH] Fix missing imports for NTDDI < WIN7
> -----Original Message----- > From: win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx [mailto:win-pv-devel- > bounces@xxxxxxxxxxxxxxxxxxxx] On Behalf Of Owen Smith > Sent: 27 October 2015 17:55 > To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx > Cc: Owen Smith > Subject: [win-pv-devel] [PATCH] Fix missing imports for NTDDI < WIN7 > > Some APIs are used that are not available before Win7. > Use preprocessor to substitute equivilent calls when NTDDI_VERSION > is less than NTDDI_WIN7 > > Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> I think there's less icky macro magic for this. XENBUS uses the new APIs all over the place and there's no problem with pre-Win7 OS. Paul > --- > src/xeniface/fdo.c | 13 +++++++++++++ > src/xeniface/ioctl_evtchn.c | 9 +++++++-- > 2 files changed, 20 insertions(+), 2 deletions(-) > > diff --git a/src/xeniface/fdo.c b/src/xeniface/fdo.c > index 71ffbe2..d6b006e 100644 > --- a/src/xeniface/fdo.c > +++ b/src/xeniface/fdo.c > @@ -2385,7 +2385,11 @@ FdoCreate( > if (!NT_SUCCESS(status)) > goto fail14; > > +#if (NTDDI_VERSION >= NTDDI_WIN7) > ProcessorCount = > KeQueryMaximumProcessorCountEx(ALL_PROCESSOR_GROUPS); > +#else // NTDDI_VISTA / NTDDI_VISTASP1 / NTDDI_WS08 > + ProcessorCount = KeQueryMaximumProcessorCount(); > +#endif > > status = STATUS_NO_MEMORY; > Fdo->EvtchnDpc = __FdoAllocate(sizeof (KDPC) * ProcessorCount); > @@ -2393,6 +2397,7 @@ FdoCreate( > goto fail15; > > for (Index = 0; Index < ProcessorCount; Index++) { > +#if (NTDDI_VERSION >= NTDDI_WIN7) > PROCESSOR_NUMBER ProcNumber; > > status = KeGetProcessorNumberFromIndex(Index, &ProcNumber); > @@ -2401,6 +2406,10 @@ FdoCreate( > KeInitializeDpc(&Fdo->EvtchnDpc[Index], EvtchnNotificationDpc, NULL); > status = KeSetTargetProcessorDpcEx(&Fdo->EvtchnDpc[Index], > &ProcNumber); > ASSERT(NT_SUCCESS(status)); > +#else // NTDDI_VISTA / NTDDI_VISTASP1 / NTDDI_WS08 > + KeInitializeDpc(&Fdo->EvtchnDpc[Index], EvtchnNotificationDpc, > NULL); > + KeSetTargetProcessorDpc(&Fdo->EvtchnDpc[Index], (CCHAR)Index); > +#endif > } > > Info("%p (%s)\n", > @@ -2525,7 +2534,11 @@ FdoDestroy( > > Dx->Fdo = NULL; > > +#if (NTDDI_VERSION >= NTDDI_WIN7) > ProcessorCount = > KeQueryMaximumProcessorCountEx(ALL_PROCESSOR_GROUPS); > +#else // NTDDI_VISTA / NTDDI_VISTASP1 / NTDDI_WS08 > + ProcessorCount = KeQueryMaximumProcessorCount(); > +#endif > RtlZeroMemory(Fdo->EvtchnDpc, sizeof (KDPC) * ProcessorCount); > __FdoFree(Fdo->EvtchnDpc); > > diff --git a/src/xeniface/ioctl_evtchn.c b/src/xeniface/ioctl_evtchn.c > index 93f1931..1501157 100644 > --- a/src/xeniface/ioctl_evtchn.c > +++ b/src/xeniface/ioctl_evtchn.c > @@ -51,7 +51,7 @@ EvtchnNotificationDpc( > UNREFERENCED_PARAMETER(_Context); > UNREFERENCED_PARAMETER(Argument2); > > - ASSERT(Context); > + ASSERT(Context != NULL); > > #if DBG > XenIfaceDebugPrint(INFO, "Channel %p, LocalPort %d, Cpu %lu\n", > @@ -80,10 +80,15 @@ EvtchnInterruptHandler( > ULONG ProcIndex; > > UNREFERENCED_PARAMETER(Interrupt); > - ASSERT(Context); > + ASSERT(Context != NULL); > > +#if (NTDD_VERSION >= NTDDI_WIN7) > KeGetCurrentProcessorNumberEx(&ProcNumber); > ProcIndex = KeGetProcessorIndexFromNumber(&ProcNumber); > +#else // NTDDI_VISTA / NTDDI_VISTASP1 / NTDDI_WS08 > + UNREFERENCED_PARAMETER(ProcNumber); // keep compiler happy > + ProcIndex = KeGetCurrentProcessorNumber(); > +#endif > if (!KeInsertQueueDpc(&Context->Fdo->EvtchnDpc[ProcIndex], Context, > NULL)) { > XenIfaceDebugPrint(TRACE, "NOT INSERTED: Context %p, Port %lu, FO > %p, Cpu %lu\n", > Context, Context->LocalPort, Context->FileObject, > ProcIndex); > -- > 1.9.4.msysgit.1 > > > _______________________________________________ > win-pv-devel mailing list > win-pv-devel@xxxxxxxxxxxxxxxxxxxx > http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |