Re: [PATCH v3 3/5] hyperv: Add new Hyper-V headers in include/hyperv

Easwar Hariharan
2024-12-06T05:13:00Z

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@linux.microsoft.com>
> ---
> 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@linux.microsoft.com>