On 11/25/2024 3:24 PM, Nuno Das Neves wrote: > These headers contain definitions for regular Hyper-V guests (as in > hyperv-tlfs.h), as well as interfaces for more privileged guests like > the root partition (aka Dom0). > > These files are derived from headers exported from Hyper-V, rather than > being derived from the TLFS document. (Although, to preserve > compatibility with existing Linux code, some definitions are copied > directly from hyperv-tlfs.h too). > > The new files follow a naming convention according to their original > use: > - hdk "host development kit" > - gdk "guest development kit" > With postfix "_mini" implying userspace-only headers, and "_ext" for > extended hypercalls. > > The use of multiple files and their original names is primarily to > keep the provenance of exactly where they came from in Hyper-V > code, which is helpful for manual maintenance and extension > of these definitions. Microsoft maintainers importing new definitions > should take care to put them in the right file. However, Linux kernel > code that uses any of the definitions need not be aware of the multiple > files or assign any meaning to the new names. Linux kernel code should > always just include hvhdk.h > > Note the new headers contain both arm64 and x86_64 definitions. Some are > guarded by #ifdefs, and some are instead prefixed with the architecture, > e.g. hv_x64_*. These conventions are kept from Hyper-V code as another > tactic to simplify the process of importing and maintaining the > definitions, rather than splitting them up into their own files in > arch/x86/ and arch/arm64/. > > These headers are a step toward importing headers directly from Hyper-V > in the future, similar to Xen public files in include/xen/interface/. > > Signed-off-by: Nuno Das Neves <nunodasneves@xxxxxxxxxxxxxxxxxxx> > --- > MAINTAINERS | 5 + > include/hyperv/hvgdk.h | 308 +++++++++ > include/hyperv/hvgdk_ext.h | 46 ++ > include/hyperv/hvgdk_mini.h | 1306 +++++++++++++++++++++++++++++++++++ > include/hyperv/hvhdk.h | 733 ++++++++++++++++++++ > include/hyperv/hvhdk_mini.h | 311 +++++++++ > 6 files changed, 2709 insertions(+) > create mode 100644 include/hyperv/hvgdk.h > create mode 100644 include/hyperv/hvgdk_ext.h > create mode 100644 include/hyperv/hvgdk_mini.h > create mode 100644 include/hyperv/hvhdk.h > create mode 100644 include/hyperv/hvhdk_mini.h Reviewed-by: Easwar Hariharan <eahariha@xxxxxxxxxxxxxxxxxxx>