[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 3/7] x86/hyperv: provide Hyper-V hypercall functions
On Thu, Jan 30, 2020 at 09:12:14AM +0100, Jan Beulich wrote: > On 29.01.2020 19:37, Wei Liu wrote: > > On Thu, Jan 23, 2020 at 12:28:00PM +0100, Jan Beulich wrote: > >> On 22.01.2020 21:23, Wei Liu wrote: > >>> --- /dev/null > >>> +++ b/xen/include/asm-x86/guest/hyperv-hcall.h > >>> @@ -0,0 +1,98 @@ > >>> +/****************************************************************************** > >>> + * asm-x86/guest/hyperv-hcall.h > >>> + * > >>> + * This program is free software; you can redistribute it and/or > >>> + * modify it under the terms and conditions of the GNU General Public > >>> + * License, version 2, as published by the Free Software Foundation. > >>> + * > >>> + * This program is distributed in the hope that it will be useful, > >>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of > >>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > >>> + * General Public License for more details. > >>> + * > >>> + * You should have received a copy of the GNU General Public > >>> + * License along with this program; If not, see > >>> <http://www.gnu.org/licenses/>. > >>> + * > >>> + * Copyright (c) 2019 Microsoft. > >>> + */ > >>> + > >>> +#ifndef __X86_HYPERV_HCALL_H__ > >>> +#define __X86_HYPERV_HCALL_H__ > >>> + > >>> +#include <xen/lib.h> > >>> +#include <xen/types.h> > >>> + > >>> +#include <asm/asm_defns.h> > >>> +#include <asm/fixmap.h> > >>> +#include <asm/guest/hyperv-tlfs.h> > >>> +#include <asm/page.h> > >>> + > >>> +static inline uint64_t hv_do_hypercall(uint64_t control, paddr_t > >>> input_addr, > >>> + paddr_t output_addr) > >>> +{ > >>> + uint64_t status; > >>> + register unsigned long r8 asm("r8") = output_addr; > >>> + > >>> + asm volatile ("INDIRECT_CALL %P[hcall_page]" > >>> + : "=a" (status), "+c" (control), > >>> + "+d" (input_addr) ASM_CALL_CONSTRAINT > >>> + : "r" (r8), > >>> + [hcall_page] "p" (fix_x_to_virt(FIX_X_HYPERV_HCALL)) > >>> + : "memory"); > >>> + > >>> + return status; > >>> +} > >>> + > >>> +static inline uint64_t hv_do_fast_hypercall(uint16_t code, > >>> + uint64_t input1, uint64_t > >>> input2) > >>> +{ > >>> + uint64_t status; > >>> + uint64_t control = code | HV_HYPERCALL_FAST_BIT; > >>> + register unsigned long r8 asm("r8") = input2; > >>> + > >>> + asm volatile ("INDIRECT_CALL %P[hcall_page]" > >>> + : "=a" (status), "+c" (control), > >>> + "+d" (input1) ASM_CALL_CONSTRAINT > >>> + : "r" (r8), > >>> + [hcall_page] "p" (fix_x_to_virt(FIX_X_HYPERV_HCALL)) > >>> + :); > >> > >> This comes through as a smiley in my mail viewer, because of the > >> missing blanks immediately inside the outermost parentheses. > > > > Fixed. > > By dropping the :, I assume? My suggestion of just the missing blank > may have been misleading here (albeit the blanks still need adding). No, by adding a blank. I will drop that ":" locally in my tree for next round of posting. Wei. > > Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |