]> xenbits.xensource.com Git - pvdrivers/win/xenbus.git/commitdiff
Update docs and set version to 8.1.0
authorPaul Durrant <paul.durrant@citrix.com>
Fri, 24 Jul 2015 11:50:04 +0000 (12:50 +0100)
committerPaul Durrant <paul.durrant@citrix.com>
Fri, 24 Jul 2015 11:50:04 +0000 (12:50 +0100)
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
CHANGELOG
INTERFACES.md [new file with mode: 0644]
README.md
build.py

index 1f5bd5952188a51fdabbe9212236c2449137657c..ba4344f0aa8335b22319fce49682aee345e93bc3 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -10,3 +10,6 @@
 
 8.0.0 (2014-07-24):
 * Drivers with new API version scheme
+
+8.1.0 (2015-07-24):
+* Revised API versioning and unplug mechanism
diff --git a/INTERFACES.md b/INTERFACES.md
new file mode 100644 (file)
index 0000000..9d296d5
--- /dev/null
@@ -0,0 +1,33 @@
+Interface Versions and PDO Revisions\r
+====================================\r
+\r
+It is important that introduction of a new API, introduction of a new\r
+version of an existing API or retirement of an old version of an API is\r
+managed carefully to avoid incompatibilities between clients and\r
+providers. The general API versioning policy is described below:\r
+\r
+Each distinct set of API versions exported by a bus driver maps to a PDO\r
+revision. The DeviceID of each PDO created will specify the latest\r
+revision supported and all others will be contained within the\r
+HardwareIDs and CompatibleIDs. When a new version of an API is added,\r
+a new PDO revision must be added. When a version of an API is removed\r
+then ALL revisions that API version maps to must be removed. The mapping\r
+of interface versions to PDO revisions is specified in the header file\r
+include/revision.h in the bus driver source repository.\r
+\r
+Whe introducing a new version of an interface in a bus driver it is good\r
+practice to continue to support the previous version so it is not\r
+necessary to simultaneously introduce a new PDO revision and retire a\r
+previous one that child drivers may still be binding to.\r
+Child drivers should, of course, always be built to use the latest\r
+interface versions (which can be copied from the include directory in the\r
+source repository of the bus driver providing them) but it may take\r
+some time to make the necessary changes and deploy new builds of child\r
+drivers and so some overlap is desirable.\r
+\r
+To try to avoid installation of a version of a bus driver that is\r
+incompatible with child drivers installed on a system. There is a check\r
+in the pre-install phase in the co-intaller which compares the\r
+MatchingDeviceId values for each child driver against the table in\r
+include/revision.h in the bus driver source to make sure that the\r
+matching revision number is present.\r
index 0b720b364516ac75fbf0a51785e0d4c7b46860f6..8df387b4d4074837aa5957b74c88133823ba3b40 100644 (file)
--- a/README.md
+++ b/README.md
@@ -27,36 +27,10 @@ Installing the driver
 
 See INSTALL.md
 
-Interfaces
-==========
-
-The XenBus package exports several APIs, as defined by the various
-'interface' headers in the include subdirectory. It is important that
-introduction of a new API, introduction of a new version of an existing
-API or retirement of an old version of an API is managed carefully to
-avoid incompatibilities between clients and providers. The general API
-versioning policy is described below:
-
-Each distinct set of API versions maps to a PDO revision. The DeviceID of
-each PDO created by xenbus.sys will specify the latest revision supported
-and all others will be contained within the HardwareIDs and CompatibleIDs.
-Hence, when a new version of an API is added, a new PDO revision will be
-added. When a version of an API is removed then ALL revisions that API
-version maps to will be removed. This is all handled automatically by the
-function PdoSetRevisions().
-
-To avoid a situation where a new version of the package is installed that
-is incompatible with any child drivers that make use of the APIs, each
-child 'subscribes' to an API by writing a registry value with the version
-number of that API that they consume into a registry key under the service
-key of the providing driver. E.g. if driver 'foo' consumes version 1 of
-driver 'bar''s 'widget' API, then it will write
-HLKM/CurrentControlSet/Services/BAR/Interfaces/FOO/WIDGET with the value 1.
-The 'bar' package co-installer can then check, prior to installation of a
-new version of a driver, that it can still support all of its subscribers.
-If any of the API versions subscribed to has been removed then installation
-will be vetoed until all the subscriber drivers have been updated to use
-the newer versions of the APIs exported by the newer providing driver.
+Driver Interfaces
+=================
+
+See INTERFACES.md
 
 Miscellaneous
 =============
@@ -79,4 +53,4 @@ get_xen_headers.py
 ------------------
 
 This will import any necessary headers from a given tag of that Xen
-repository at git://xenbits.xen.org/xen.git.
\ No newline at end of file
+repository at git://xenbits.xen.org/xen.git.
index ae34915b159b719ad2b5f5357aa50f49970c15a8..b4768fef820fe9d597d9e184b17aeb4ba4c95e7e 100755 (executable)
--- a/build.py
+++ b/build.py
@@ -340,7 +340,7 @@ if __name__ == '__main__':
         os.environ['PRODUCT_NAME'] = 'Xen'
 
     os.environ['MAJOR_VERSION'] = '8'
-    os.environ['MINOR_VERSION'] = '0'
+    os.environ['MINOR_VERSION'] = '1'
     os.environ['MICRO_VERSION'] = '0'
 
     if 'BUILD_NUMBER' not in os.environ.keys():