From: Nuno Das Neves <nunodasneves@xxxxxxxxxxxxxxxxxxx> Sent: Monday, November 25, 2024 3:25 PM > > 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> Reviewed-by: Michael Kelley <mhklinux@xxxxxxxxxxx>