An open API service for software projects hosted on Open Collective.

github.com/QubesOS/qubes-vmm-xen-win-pvdrivers-xenbus

Xen Windows pvdrivers: xenbus
https://github.com/QubesOS/qubes-vmm-xen-win-pvdrivers-xenbus

Merge branch 'master' of git://xenbits.xen.org/pvdrivers/win/xenbus

Upstream repo now contains all needed code.

d45a3f96a6d56ed606b0911736f9a11bcadbb2c1 authored almost 10 years ago
Define a new PDO revision for updated interfaces

PDO revision 0x0800000B includes STORE interface version 2 (added
StorePermissionsSet()) and GNT...

2be55467fcabbfa6c2bb15b16bbe2b1dc3856217 authored almost 10 years ago
Add support for changing key permissions to the STORE interface

STORE interface now includes a function to change key permissions. This
allows granting key acce...

5096ab7a917f0ea3892c00da8b7119a2d728767d authored almost 10 years ago
Add foreign page mapping functions to the GNTTAB interface

GNTTAB interface now includes functions to map and unmap memory pages
granted by a foreign domai...

586415551f759089e136a75924aca4e4448cffe4 authored almost 10 years ago
Fix list walking in hash_table.c

Neither HashTableLookup() nor HashTableRemove() update the iterator in their
attempted list walk...

8b332a8ee5912d72cba40ac2a66741d7e64eb424 authored almost 10 years ago
Add Wait method to XENBUS_EVTCHN and use it in XENBUS_STORE

This patch adds a Wait method to the XENBUS_EVTCHN interface to allow
a subscriber to wait for a...

42b744a2dbddb3644d2c835e886e353efc426629 authored almost 10 years ago
Fix hash table overflow

There is a flaw in HashTableHash() which means that, for example, an Array
value of 0xff added t...

07736d005a77c94679fd1671820d576454b22016 authored almost 10 years ago
Parameterize vendor prefix and PCI device id

The XenServer PV vendor prefix ('XS') and PCI device (C000) are still
hard-coded into the XENBUS...

98f0db98ac25acade51878b009dfc4550a241b39 authored almost 10 years ago
Don't treat a missing Driver key as a hard failure

When looking to see whether an incumbent child driver will patch the
PDO names created by the ne...

996e13596c18f4fdbc73cd4ce7d44ab13b5f51ca authored almost 10 years ago
Prepare for upstream patch

- Removed event channel status query function (unused).
- General cleanup.

875400348fbd58d66136fac37924b0f7ada971c5 authored almost 10 years ago
Update to 8.2.0

I also removed CHANGELOG as it's pretty useless and will likely become
misleading.

Signed-off-b...

e0c4dee5c130978bbf42242ef026992f7ed7a273 authored almost 10 years ago
Update for new revision scheme

0a3c3dc79bd1b0e250414b2f2149726c53b89232 authored almost 10 years ago
Merge branch 'master' of git://xenbits.xen.org/pvdrivers/win/xenbus

e4cb9ce50723114fc3d11a13fa1f1ce96f94f77a authored almost 10 years ago
Add Type parameter to RegistryQuerySzValue()

This allows the type of any existent UpperFilters value to be verified and
brings the registry c...

9779176a678be5deb522eaa294f94e5739f484b0 authored almost 10 years ago
don't mess with system debug print filters

0d009cf99b6d01dcb07f8df3d3c2680cfb9ee304 authored almost 10 years ago
Fix SDV build

Signed-off-by: Paul Durrant <[email protected]>

bd2117751701fe82315fb0a49f7a17d1998cbb74 authored almost 10 years ago
Fix potential NULL-pointer dereference...

...in parsing SystemStartOptions.

Signed-off-by: Paul Durrant <[email protected]>

ecf23191be505c5433b58a7c89afb9356866fa0e authored almost 10 years ago
Revert commit 632cc904 "Remove PDO set/is-missing logic from...

... XENFILT" and re-work PnP code again.

In WHQL testing I suspect the removal and re-creation ...

ed3c9abd34faed88ae8bc05ff5e96de2df1458ae authored almost 10 years ago
Registry string value types cannot be inferred

For instance, the UpperFilters key needs to be a REG_MULTI_SZ
even if it contains only one strin...

32dfb09994b6db940c0e19506d91e363a4db4990 authored almost 10 years ago
Fix incorrect registry key setting

Signed-off-by: Paul Durrant <[email protected]>

ddb7604c1bb99c7a6751e363a9f77ae9d551c083 authored almost 10 years ago
Log when filters are actually installed or removed

...rather then merely when the functions are called.

Signed-off-by: Paul Durrant <paul.durrant@...

b5b656cbaaa74f23435a226de8610a5eabb704a0 authored almost 10 years ago
Update docs and set version to 8.1.0

Signed-off-by: Paul Durrant <[email protected]>

150fb91a5af259ae6cdb4a5d6eb2519bb3321412 authored about 10 years ago
Only the active device should unplug emulated devices

...and populate the hypercall table.

Signed-off-by: Paul Durrant <[email protected]>

fc3293cac642f8a57dbbf28e4a5d8ee0d9d44861 authored about 10 years ago
Don't mess with default DbgPrint filters

Signed-off-by: Paul Durrant <[email protected]>

45a56b2e9dd7b73a8223c681098140f2aa132192 authored about 10 years ago
Install filters on first FDO creation and remove on last deletion

When XENBUS binds to two devices (as it may when the vendor PCI device
is present) then installi...

c6da1ba12b0b3b89cb4e0defe962aa8a62b30b55 authored about 10 years ago
Make sure XENFILT PDOs get moved from Present to Enumerated

The code to adjust the state was mistakenly removed in a previous patch.

Signed-off-by: Paul Du...

1d695be82812dc30184817b335185ae0e46cdabf authored about 10 years ago
Stop using XENBUS_DX ListEntry as the FDOs list of PDOs

Add a new List member to XENBUS_FDO for this purpose and hence bring it
into line with XENFILT_F...

b6e13f0bab329b64ef808ee647381e8c82d4ef39 authored about 10 years ago
Maintain a global list of FDOs in XENBUS

...similar to that in XENFILT.

Also add a missing mutex acquisition around FdoCreate() in XENFI...

dd319a1762774d95a746cfe4737445977155fc41 authored about 10 years ago
Give the RangeSet memmber of XENBUS_FDO a better name

It is used to hold I/O space ranges so call it IoRangeSet.

Signed-off-by: Paul Durrant <paul.du...

0c53807e2d8a053a34feecb79f118218f94a0c26 authored about 10 years ago
Give List member of XENBUS_FDO a better name

The list contains interrupt tracking structures so call it InterruptList.

Signed-off-by: Paul D...

bdb4a12c06746ffd9037e9a13d6446c66bf3bee8 authored about 10 years ago
Remove redundant function from the co-installer

GetDeviceInstanceID() is not used by anything any more, so it can go.

Signed-off-by: Paul Durra...

f7327d6f4b4bf94859ddebb9988eedaccfbddfa8 authored about 10 years ago
Add a missing newline in to a logging message

Signed-off-by: Paul Durrant <[email protected]>

8124111ead5c03cc878a82bc269bf73e3d1e9bb4 authored about 10 years ago
Move filter installation and active device selection logic into drivers

When XENBUS creates its FDO object it will query up to XENFILT for a new
PDEVICE interface. This...

a7924939f6da854342ac9018b5ea725b2ab67585 authored about 10 years ago
Move friendly name setting into driver

XENBUS can set the friendly name directly in the device hardware key at
the end of FDO creation....

5e55a3c866d05d0b17ed84ce77fa6f910a2855b0 authored about 10 years ago
Update registry code

...to bring it in line with XENVIF

Signed-off-by: Paul Durrant <[email protected]>

f4f1fd28860dc86dcf62cfeb7c3109d09bea3956 authored about 10 years ago
Introduce new mechanism to unplug emulated devices

This makes an incompatible change and so the PDO revision is bumped up
without retaining any pre...

963765d6d5f26b836a2c417fbb7fbb1013d3f578 authored about 10 years ago
Remove interface subscriber checks from the co-installer...

...and replace with a scan of child driver software keys to check that
the revision number in th...

d55a644a9962161354e0aa3eefb1cb2a6c6e9add authored about 10 years ago
Apply new PDO revision numbering policy

This patch also removes XENFILT_UNPLUG_INTERFACE from the set that can
be queried by a child dri...

a0db3245397d9255c860d43bfadbfd237283058d authored about 10 years ago
Remove PDO set/is-missing logic from XENFILT

It's all completely unnecessary for a filter driver

Signed-off-by: Paul Durrant <paul.durrant@c...

632cc904ac6e2badcc3803bddc8935bb8815dde5 authored about 10 years ago
Fix potential buffer overflow

The buffer allocation in FdoQueryDeviceRelations() is completely bogus. Fix
it.

Signed-off-by: ...

e45c44fe09b2c54871270e26591a89d969a258e3 authored about 10 years ago
Avoid PDO namespace conflicts...

...by encoding the driver major version in the upper byte of the
revision.

This clearly implies...

089abc9e5fc71c0b86257d2fc21e3b63852a5569 authored about 10 years ago
Merge branch 'master' of git://xenbits.xen.org/pvdrivers/win/xenbus

c15a5bc94372c2a30030b05322ac699862dbee6e authored about 10 years ago
Fix fall-back to two-level EVTCHN ABI

When the EVTCHN code attempts to acquire the FIFO ABI it may fail to do
so because the version o...

021d1f91ff9c1c10fa59e6d4200628b9d0d37eab authored about 10 years ago
Fix potential buffer overflow

The __min in XENFILT's FdoQueryDeviceRelations() should be a __max. The only
reason this mistake...

7e406c83f4ecc655ef3c22b2d9c2e11cdcadd7bb authored about 10 years ago
Dispense with long PDO descriptions

Windows does not present them well and they are somewhat ugly. The relation-
ship between interf...

bb988cbd7e1ea21c56904d148a690946b0be97f4 authored about 10 years ago
Make it more obvious when per-CPU upcalls are not implemented...

...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
Retired old EVTCHN interface versions (v1 and v2)

This is a workaround for the current interface architecture creating
too many PDO revisions. See...

54cccbfa513fa160f920361f39f03f20a4f2c5ba authored about 10 years ago
fixed SDV warning

77d0742dc092f09674d9221de0c23100a7b11261 authored about 10 years ago
fixed documentation typos

0ebdbec48eda4882d94801e048065d2b59de529e authored about 10 years ago
support non-NULL Prefix in StorePermissionsSet

505808331d7e576dc9692c8959df08fb45c0358e authored about 10 years ago
vs2013: added /uselocaltime to inf2cat options

Without this option signing fails when the UTC date is different than local
time date (stampinf ...

3d4510a25b8cbfa019daccf1a1efa72ccba0c1a3 authored about 10 years ago
xenbus: added StorePermissionsSet API (store v2)

3584e0996808eecd103a6e2699ec81de19964962 authored about 10 years ago
xenbus: added EvtchnStatus API (evtchn v5)

a85393768c316ba88ab79ed29bfe6e62c2a2d072 authored about 10 years ago
gnttab interface v2: added mapping foreign pages

72d1063e45cff382a38d399a3fdbe733a04099a2 authored about 10 years ago
Fix unplugging of emulated devices on resume from suspend

Due to a mis-ordering of the interface initialization calls in FdoCreate(),
the SUSPEND interfac...

08def993b6b920d4286dc5bbd03acdc2b5ad05cf authored over 10 years ago
Inline FunctionName and ReasonName in co-installer

Signed-off-by: Paul Durrant <[email protected]>

e879a75b781b5071f74af9da4562bc6410d117ed authored over 10 years ago
Make sure SYNC per-processor structures are zeroed after resume

Since the per-processor data in the SYNC code was split out from the
main context structure, the...

51812817397bcd83c92ab318e845b08040f31b50 authored over 10 years ago
Windows Server 2008 compatibility fix

Use of the CONNECT_FULLY_SPECIFIED_GROUP flag to IoConnectInterruptEx() is
not supported prior t...

da4fd5d2eda075bb5dda312cc3758fc7cf302284 authored over 10 years ago
Don't use a stack based DPC structure in the System per-CPU code

Whilst this is believed to be safe, there is no documentation to say that
Windows does not make ...

38f686931b4e1513d95a7d0bd0ea5ca805068f5c authored over 10 years ago
Fix an ASSERT failure and BugCheck on XENBUS unload

The Prcoessor array pointer in the EVTCHN code is not being NULLed, leading
to an ASSERT faiure....

9945bf31fca8a3e6f2b826a839482d041a16759c authored over 10 years ago
Improve auditing in CACHE and GNTTAB interfaces

Add 'Get' and 'Put' counters to CACHEs which can then be checked for
equality at destruction tim...

6d195645b99240b6bb3dbf7f69db6a6518e2dd71 authored over 10 years ago
Fix VS2013 SDV failure

Signed-off-by: Paul Durrant <[email protected]>

767d1c17981dfe4f14b064db4d2b095cb35e9fc6 authored over 10 years ago
Make XEN, XENFILT and XENBUS processor group aware

Processor groups have been around for a long time in Windows and
contnuing to ignore them become...

07cad5af61bec13abe18142cce245b4e3f7d8d33 authored over 10 years ago
Add strict version check between XEN and XENFILT/XENBUS

Because the ABI between XEN and the other drivers in the package is
(intentionally) unstable, ad...

6816d0501b58bfa7583eae7bc798ac1abfd9781b authored over 10 years ago
Fix various bits of (largely autogen) stupidity in vcxproj files

Signed-off-by: Paul Durrant <[email protected]>

050987a099d7edb0c6cdbd6e8fcc65f1f0befa39 authored over 10 years ago
Update headers to xen.git:f919dbc0583797d1c5c09da815518084ce77eb81

The code relies on post-4.5.0 header changes so we need a more recent
repository. The commit id ...

597aa271f5f412c0696893687f7044054624fd95 authored over 10 years ago
Move util.h from include to src/common

It should be co-located with headers such as assert.h and names.h

Signed-off-by: Paul Durrant <...

676d7e92dd7c3afd5600facaac1a3fcf1023c264 authored over 10 years ago
Fix line endings

Signed-off-by: Paul Durrant <[email protected]>

b9c71f7220939e0594b49e41adaa7280704fa682 authored over 10 years ago
Get rid of the MonitorEvent from CACHE context

The event is being signalled but nothing ever takes notice of it so one
can only conclude that i...

0951dc6deff265da23bb87894f45d8463da71062 authored over 10 years ago
Squash a prefast warning

Prefast warns that following the Flink pointer of the EVTCHN context list
may be unsafe due to i...

83d76b92d51c103876be27164ab990d77a410bb1 authored over 10 years ago
Set script file execute permissions

The lack of execute persmission causes clones done using cygwin git to
leave scripts in a non-ex...

c5f8753760eb0061d869859cf6e7101e70d78246 authored over 10 years ago
__DbgPrintEnable() cannot be called on paging path

The system power up code in XENFILT re-enables DbgPrint hooking.
Unfortunately the undocumented ...

8b60511f41b51d80d373286531b12d24c847b4d9 authored over 10 years ago
Fix WHQL Multiple processor group device test BSOD

Some of the fakery done by this test causes a BSOD in the code in the
XEN driver that attempts t...

2f11d0001740edfed1bf25a5b79f0b9edffeff84 authored over 10 years ago
Only call PdoSuspend() and PdoResume() when in the correct state

The FDO code calls PdoSuspend() and PdoResume() when a PDO is removed or
added (respectively) to...

124869c8aa6acf07986cc72a02355e8ad1cf4284 authored over 10 years ago
Further VS2013 SDV fixes

The last set of fixes was not complete. SDV failed again, later on, in
building xenbus.sys.

Sig...

642818c64a406fba0dfc920de1b96e48cb6e315c authored over 10 years ago
Fix VS2013 SDV failures

A mis-annotation of some ZwQueryXXX operations is causing SDV to fail
when it notices code in re...

53f53f1d5e3e2cf682af3e42482170a81075515c authored over 10 years ago
Add registry tweak to make PDOs ejectable

Add a registry tweak called 'AllowPdoEject' so that PDOs can be made
ejectable and rename the tw...

c6f376bb594449137bbb2efb95c88f8a6c8293df authored over 10 years ago
Release lower bus interface before passing removal IRP to PDO

If the PDO is surprised removed then the FDO tries to retain its
reference to the PDO's bus inte...

60e90295bc8232b4cc83e325d2bf16456e9dee17 authored over 10 years ago
Fix event channel unmasking for two-level ABI

The two-level ABI requires that an event is masked for the unmask
hypercall to raise the event, ...

f321e204a081f9c4dcc732e71283a401751a241b authored over 10 years ago
Re-instate bus enumation filtering in XENFILT

The filtering code was removed in commit
ff034f7ebd4010f7b502c56cb1cca6ba40a7f1aa when it was re...

9fccb0b211572a59d9f317418db23b292fc880ac authored over 10 years ago
Fix SDV build

SDV builds are failing with this error:

..\..\src\xenbus\fdo.c(758) : error C2220: warning trea...

5b110baae5e3500cfb060f8ad2fb1b24b50463db authored over 10 years ago
EVTCHN FIFO ABI should keep per-vcpu queue head shadow

There is currently only one shadow head per priority which means that
polling event channels of ...

18b586a9ea03730183053046f35d974a8991fb68 authored over 10 years ago
SystemVirtualCpuIndex() cannot use KeWaitForSingleObject()

The function is called at > DISPATCH_LEVEL so it cannot wait, even with a
zero timeout. Having t...

a02748e093853eb8c9618797b67de7a18e617cfc authored over 10 years ago
Remove use of KeNumberProcessors from SHARED_INFO code

KeNumberProcessors is used in the DEBUG callback. Use
KeQueryActiveProcessorCount() instead.

Si...

9132049c2c18210cf160a28663923f18a8459f11 authored over 10 years ago
Get rid of EVTCHN Bind from the STORE code

Removing the gratuitous Bind means we don't make use of KeNumberProcessors.

Signed-off-by: Paul...

2d399c1671dd9733d994ba88ecc3adadfcbad5b4 authored over 10 years ago
Remove use of KeNumberProcessors from EVTCHN code

The crucial things are the virtual CPUs to which the ABI can steer
interrupts and the number of ...

9b04798a7610ece264996705837b3ec585f8da54 authored over 10 years ago
Remove use of KeNumberProcessors from SYSTEM code

The Xen SYSTEM module queries system information, including per-cpu
information. It is therefore...

d32559765d9a36721e2fb9f2d063ea29b61d8afa authored over 10 years ago
Remove use of KeNumberProcessors from SYNC code

KeNumberProcessors is obsolete so replace it with an inital call to
KeQueryActiveProcessorCount(...

2cfdb25f7d1e0831e2180b7ee3e9429c7866db1a authored over 10 years ago
Add missing magic number checks

We should sanity check the magic number in an event channel whenever one is
passed to an EVTCHN ...

134f2e6030d56cc9270673089cd71c27f14dcdfd authored over 10 years ago
Re-work EVTCHN Close

When using the FIFO ABI, the Close operation needs to be synchronized with
polling. This require...

a0ac2cf03379ec577f0016a5852abdd034cf589e authored over 10 years ago
Re-work EVTCHN Trigger

By re-working the event channel poll callback to add pending channels to a
list and then service...

c7dc56794ff4f04b08d6e42b8f9086ed01629a12 authored over 10 years ago
Use a DPC per CPU for EVTCHN Trigger

Using a single DPC potentially means re-afinitizing it for each use, and
this potentially means ...

72a98704828763a40f7f2ad50259b5402424e492 authored over 10 years ago
Update EVTCHN to version 3

Since the Unmask method no longer returns any useful information, make it
void. This means we ne...

b948073caae56db274de0eb39db612973a2f7f07 authored over 10 years ago
The EVTCHN ABI Unmask methods should simply return Pending state

The methods should not care whether the current thread is responsible for
clearing the mask.

Si...

f2bb0568261502f809f6870a48a7a0b53563ac90 authored over 10 years ago
Simplify EVTCHN Unmask

Just use the hypercall if the event channel is pending. It's a lot safer
than trying to avoid it...

3ad02ccc6c68e98ad9a83f340cd5787e45924ace authored over 10 years ago
Eagerly enable and disable interrupts

There's really no need to lazily enable event channel interrupts. It makes
the code simpler to e...

bcae95bdfee96c96d49396a359e572329cd6fb84 authored over 10 years ago
Get rid of per-channel interrupt pointer

It's kind of redundant as we have a Cpu index value. Also, remove code that
tries to ensure ever...

2b9c2093e21a411ce24e28a62b6d037b4458add1 authored over 10 years ago
Remove unnecessary helper function

The __EvtchnAcquire/ReleaseInterruptLock functions are only used in one
place. Remove them and c...

3338291b192180b380af1b9faed4e710467fbc32 authored over 10 years ago
EVTCHN Bind method should check that the channel is active

Any method which performs ABI operations should check whether the channel is
active.

Signed-off...

cfde5a8163930ccdce030f02e684640406702e1e authored over 10 years ago
EvtchnCallback() does not need to check that the channel is active

There is no interaction with the ABI that necessitates a check whether the
channel is active.

S...

ad5da83c7cb817678bd4369128761c8545949fa7 authored over 10 years ago