qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v4 06/10] qemu-ga: Add Windows VSS provider to q


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH v4 06/10] qemu-ga: Add Windows VSS provider to quiesce applications on fsfreeze
Date: Tue, 25 Jun 2013 18:19:16 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6

Il 25/06/2013 18:03, Laszlo Ersek ha scritto:
>> > @@ -113,6 +114,7 @@ nested-vars += \
>> >    stub-obj-y \
>> >    util-obj-y \
>> >    qga-obj-y \
>> > +  qga-prv-obj-y \
>> >    block-obj-y \
>> >    common-obj-y
>> >  dummy := $(call unnest-vars)
> What does this do? Does "qga-prv-obj-y" stand for "all objects under
> 'qga'"?
> 
> Or does it mean "look into qga/Makefile.objs for further objects"?

The latter.  I'd rather have it spelled fully, though
(qga-win32-provider-obj-y).

> > +qga-obj-y += vss-win32-provider/
> > +qga-prv-obj-y += vss-win32-provider/
> > +endif
> 
> So we're probably just saying "look into
> vss-win32-provider/Makefile.objs for further object files", for both
> variables.

Yes.

> Looks like "qga-prv-obj-y" consists of nothing more than "provider.o"
> and "install.o", and that "qga-provider.dll" depends on them. In theory,
> would it be possible *not* to introduce "qga-prv-obj-y" in the
> higher-level Makefile.obj files, only here?

No, you need to specify it at all levels.

> Why does "qga-provider.dll" depend on ""qga-provider.tlb"? It is not
> used in the link command.
> 
> Also, why is it necessary to collect the files "provider.o", "install.o"
> and "qga-provider.def" into a DLL, and link qemu-ga.exe against that DLL
> (via qga-obj-y)? Is this a VSS requirement? Can't we simply link these
> objects into qemu-ga.exe statically, like the rest of "qga-obj-y"?

I think dynamic linking is needed because VSS is loading the provider as
a COM component here:

+            hr = pVssbc->AddToSnapshotSet(buf, g_gProviderId, &pid);

But I don't know why you need to link the DLL to qemu-ga.exe.

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]