github.com/QubesOS/qubes-vmm-xen-win-pvdrivers-xenbus
Xen Windows pvdrivers: xenbus
https://github.com/QubesOS/qubes-vmm-xen-win-pvdrivers-xenbus
Upstream repo now contains all needed code.
d45a3f96a6d56ed606b0911736f9a11bcadbb2c1 authored almost 10 years ago
PDO revision 0x0800000B includes STORE interface version 2 (added
StorePermissionsSet()) and GNT...
STORE interface now includes a function to change key permissions. This
allows granting key acce...
GNTTAB interface now includes functions to map and unmap memory pages
granted by a foreign domai...
Neither HashTableLookup() nor HashTableRemove() update the iterator in their
attempted list walk...
This patch adds a Wait method to the XENBUS_EVTCHN interface to allow
a subscriber to wait for a...
There is a flaw in HashTableHash() which means that, for example, an Array
value of 0xff added t...
The XenServer PV vendor prefix ('XS') and PCI device (C000) are still
hard-coded into the XENBUS...
When looking to see whether an incumbent child driver will patch the
PDO names created by the ne...
- Removed event channel status query function (unused).
- General cleanup.
I also removed CHANGELOG as it's pretty useless and will likely become
misleading.
Signed-off-b...
e0c4dee5c130978bbf42242ef026992f7ed7a273 authored almost 10 years ago0a3c3dc79bd1b0e250414b2f2149726c53b89232 authored almost 10 years ago
e4cb9ce50723114fc3d11a13fa1f1ce96f94f77a authored almost 10 years ago
This allows the type of any existent UpperFilters value to be verified and
brings the registry c...
0d009cf99b6d01dcb07f8df3d3c2680cfb9ee304 authored almost 10 years ago
Signed-off-by: Paul Durrant <[email protected]>
bd2117751701fe82315fb0a49f7a17d1998cbb74 authored almost 10 years ago...in parsing SystemStartOptions.
Signed-off-by: Paul Durrant <[email protected]>
ecf23191be505c5433b58a7c89afb9356866fa0e authored almost 10 years ago... XENFILT" and re-work PnP code again.
In WHQL testing I suspect the removal and re-creation ...
ed3c9abd34faed88ae8bc05ff5e96de2df1458ae authored almost 10 years ago
For instance, the UpperFilters key needs to be a REG_MULTI_SZ
even if it contains only one strin...
Signed-off-by: Paul Durrant <[email protected]>
ddb7604c1bb99c7a6751e363a9f77ae9d551c083 authored almost 10 years ago...rather then merely when the functions are called.
Signed-off-by: Paul Durrant <paul.durrant@...
b5b656cbaaa74f23435a226de8610a5eabb704a0 authored almost 10 years agoSigned-off-by: Paul Durrant <[email protected]>
150fb91a5af259ae6cdb4a5d6eb2519bb3321412 authored about 10 years ago...and populate the hypercall table.
Signed-off-by: Paul Durrant <[email protected]>
fc3293cac642f8a57dbbf28e4a5d8ee0d9d44861 authored about 10 years agoSigned-off-by: Paul Durrant <[email protected]>
45a56b2e9dd7b73a8223c681098140f2aa132192 authored about 10 years ago
When XENBUS binds to two devices (as it may when the vendor PCI device
is present) then installi...
The code to adjust the state was mistakenly removed in a previous patch.
Signed-off-by: Paul Du...
1d695be82812dc30184817b335185ae0e46cdabf authored about 10 years ago
Add a new List member to XENBUS_FDO for this purpose and hence bring it
into line with XENFILT_F...
...similar to that in XENFILT.
Also add a missing mutex acquisition around FdoCreate() in XENFI...
dd319a1762774d95a746cfe4737445977155fc41 authored about 10 years agoIt is used to hold I/O space ranges so call it IoRangeSet.
Signed-off-by: Paul Durrant <paul.du...
0c53807e2d8a053a34feecb79f118218f94a0c26 authored about 10 years agoThe list contains interrupt tracking structures so call it InterruptList.
Signed-off-by: Paul D...
bdb4a12c06746ffd9037e9a13d6446c66bf3bee8 authored about 10 years agoGetDeviceInstanceID() is not used by anything any more, so it can go.
Signed-off-by: Paul Durra...
f7327d6f4b4bf94859ddebb9988eedaccfbddfa8 authored about 10 years agoSigned-off-by: Paul Durrant <[email protected]>
8124111ead5c03cc878a82bc269bf73e3d1e9bb4 authored about 10 years ago
When XENBUS creates its FDO object it will query up to XENFILT for a new
PDEVICE interface. This...
XENBUS can set the friendly name directly in the device hardware key at
the end of FDO creation....
...to bring it in line with XENVIF
Signed-off-by: Paul Durrant <[email protected]>
f4f1fd28860dc86dcf62cfeb7c3109d09bea3956 authored about 10 years ago
This makes an incompatible change and so the PDO revision is bumped up
without retaining any pre...
...and replace with a scan of child driver software keys to check that
the revision number in th...
This patch also removes XENFILT_UNPLUG_INTERFACE from the set that can
be queried by a child dri...
It's all completely unnecessary for a filter driver
Signed-off-by: Paul Durrant <paul.durrant@c...
632cc904ac6e2badcc3803bddc8935bb8815dde5 authored about 10 years ago
The buffer allocation in FdoQueryDeviceRelations() is completely bogus. Fix
it.
Signed-off-by: ...
e45c44fe09b2c54871270e26591a89d969a258e3 authored about 10 years ago
...by encoding the driver major version in the upper byte of the
revision.
This clearly implies...
089abc9e5fc71c0b86257d2fc21e3b63852a5569 authored about 10 years agoc15a5bc94372c2a30030b05322ac699862dbee6e authored about 10 years ago
When the EVTCHN code attempts to acquire the FIFO ABI it may fail to do
so because the version o...
The __min in XENFILT's FdoQueryDeviceRelations() should be a __max. The only
reason this mistake...
Windows does not present them well and they are somewhat ugly. The relation-
ship between interf...
...and break out of the per-CPU loop at that point.
Also mention that the callback via has been...
bea66f33eb791f5b7c04eaa4190479f337dada57 authored about 10 years ago
This is a workaround for the current interface architecture creating
too many PDO revisions. See...
77d0742dc092f09674d9221de0c23100a7b11261 authored about 10 years ago
0ebdbec48eda4882d94801e048065d2b59de529e authored about 10 years ago
505808331d7e576dc9692c8959df08fb45c0358e authored about 10 years ago
Without this option signing fails when the UTC date is different than local
time date (stampinf ...
3584e0996808eecd103a6e2699ec81de19964962 authored about 10 years ago
a85393768c316ba88ab79ed29bfe6e62c2a2d072 authored about 10 years ago
72d1063e45cff382a38d399a3fdbe733a04099a2 authored about 10 years ago
Due to a mis-ordering of the interface initialization calls in FdoCreate(),
the SUSPEND interfac...
Signed-off-by: Paul Durrant <[email protected]>
e879a75b781b5071f74af9da4562bc6410d117ed authored over 10 years ago
Since the per-processor data in the SYNC code was split out from the
main context structure, the...
Use of the CONNECT_FULLY_SPECIFIED_GROUP flag to IoConnectInterruptEx() is
not supported prior t...
Whilst this is believed to be safe, there is no documentation to say that
Windows does not make ...
The Prcoessor array pointer in the EVTCHN code is not being NULLed, leading
to an ASSERT faiure....
Add 'Get' and 'Put' counters to CACHEs which can then be checked for
equality at destruction tim...
Signed-off-by: Paul Durrant <[email protected]>
767d1c17981dfe4f14b064db4d2b095cb35e9fc6 authored over 10 years ago
Processor groups have been around for a long time in Windows and
contnuing to ignore them become...
Because the ABI between XEN and the other drivers in the package is
(intentionally) unstable, ad...
Signed-off-by: Paul Durrant <[email protected]>
050987a099d7edb0c6cdbd6e8fcc65f1f0befa39 authored over 10 years ago
The code relies on post-4.5.0 header changes so we need a more recent
repository. The commit id ...
It should be co-located with headers such as assert.h and names.h
Signed-off-by: Paul Durrant <...
676d7e92dd7c3afd5600facaac1a3fcf1023c264 authored over 10 years agoSigned-off-by: Paul Durrant <[email protected]>
b9c71f7220939e0594b49e41adaa7280704fa682 authored over 10 years ago
The event is being signalled but nothing ever takes notice of it so one
can only conclude that i...
Prefast warns that following the Flink pointer of the EVTCHN context list
may be unsafe due to i...
The lack of execute persmission causes clones done using cygwin git to
leave scripts in a non-ex...
The system power up code in XENFILT re-enables DbgPrint hooking.
Unfortunately the undocumented ...
Some of the fakery done by this test causes a BSOD in the code in the
XEN driver that attempts t...
The FDO code calls PdoSuspend() and PdoResume() when a PDO is removed or
added (respectively) to...
The last set of fixes was not complete. SDV failed again, later on, in
building xenbus.sys.
Sig...
642818c64a406fba0dfc920de1b96e48cb6e315c authored over 10 years ago
A mis-annotation of some ZwQueryXXX operations is causing SDV to fail
when it notices code in re...
Add a registry tweak called 'AllowPdoEject' so that PDOs can be made
ejectable and rename the tw...
If the PDO is surprised removed then the FDO tries to retain its
reference to the PDO's bus inte...
The two-level ABI requires that an event is masked for the unmask
hypercall to raise the event, ...
The filtering code was removed in commit
ff034f7ebd4010f7b502c56cb1cca6ba40a7f1aa when it was re...
SDV builds are failing with this error:
..\..\src\xenbus\fdo.c(758) : error C2220: warning trea...
5b110baae5e3500cfb060f8ad2fb1b24b50463db authored over 10 years ago
There is currently only one shadow head per priority which means that
polling event channels of ...
The function is called at > DISPATCH_LEVEL so it cannot wait, even with a
zero timeout. Having t...
KeNumberProcessors is used in the DEBUG callback. Use
KeQueryActiveProcessorCount() instead.
Si...
9132049c2c18210cf160a28663923f18a8459f11 authored over 10 years agoRemoving the gratuitous Bind means we don't make use of KeNumberProcessors.
Signed-off-by: Paul...
2d399c1671dd9733d994ba88ecc3adadfcbad5b4 authored over 10 years ago
The crucial things are the virtual CPUs to which the ABI can steer
interrupts and the number of ...
The Xen SYSTEM module queries system information, including per-cpu
information. It is therefore...
KeNumberProcessors is obsolete so replace it with an inital call to
KeQueryActiveProcessorCount(...
We should sanity check the magic number in an event channel whenever one is
passed to an EVTCHN ...
When using the FIFO ABI, the Close operation needs to be synchronized with
polling. This require...
By re-working the event channel poll callback to add pending channels to a
list and then service...
Using a single DPC potentially means re-afinitizing it for each use, and
this potentially means ...
Since the Unmask method no longer returns any useful information, make it
void. This means we ne...
The methods should not care whether the current thread is responsible for
clearing the mask.
Si...
f2bb0568261502f809f6870a48a7a0b53563ac90 authored over 10 years ago
Just use the hypercall if the event channel is pending. It's a lot safer
than trying to avoid it...
There's really no need to lazily enable event channel interrupts. It makes
the code simpler to e...
It's kind of redundant as we have a Cpu index value. Also, remove code that
tries to ensure ever...
The __EvtchnAcquire/ReleaseInterruptLock functions are only used in one
place. Remove them and c...
Any method which performs ABI operations should check whether the channel is
active.
Signed-off...
cfde5a8163930ccdce030f02e684640406702e1e authored over 10 years ago
There is no interaction with the ABI that necessitates a check whether the
channel is active.
S...
ad5da83c7cb817678bd4369128761c8545949fa7 authored over 10 years ago