Lines Matching +full:ecx +full:- +full:1000

20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
55 #define STEALCLOCK_NOT_AVAILABLE (-1)
59 #define VMWARE_PORT(cmd, eax, ebx, ecx, edx) \ argument
61 "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : \
67 #define VMWARE_VMCALL(cmd, eax, ebx, ecx, edx) \ argument
69 "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : \
75 #define VMWARE_VMMCALL(cmd, eax, ebx, ecx, edx) \ argument
77 "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : \
83 #define VMWARE_CMD(cmd, eax, ebx, ecx, edx) do { \ argument
86 VMWARE_VMCALL(cmd, eax, ebx, ecx, edx); \
89 VMWARE_VMMCALL(cmd, eax, ebx, ecx, edx); \
92 VMWARE_PORT(cmd, eax, ebx, ecx, edx); \
101 /* only for little-endian */
114 uint32_t eax, ebx, ecx, edx; in __vmware_platform() local
115 VMWARE_CMD(GETVERSION, eax, ebx, ecx, edx); in __vmware_platform()
116 return eax != (uint32_t)-1 && ebx == VMWARE_HYPERVISOR_MAGIC; in __vmware_platform()
136 early_param("no-vmw-sched-clock", setup_vmw_sched_clock);
143 early_param("no-steal-acc", parse_no_stealacc);
151 ns -= vmware_cyc2ns.cyc2ns_offset; in vmware_sched_clock()
160 clocks_calc_mult_shift(&d->cyc2ns_mul, &d->cyc2ns_shift, in vmware_cyc2ns_setup()
162 d->cyc2ns_offset = mul_u64_u32_shr(tsc_now, d->cyc2ns_mul, in vmware_cyc2ns_setup()
163 d->cyc2ns_shift); in vmware_cyc2ns_setup()
165 pr_info("using clock offset of %llu ns\n", d->cyc2ns_offset); in vmware_cyc2ns_setup()
207 * vmware_steal_clock() - read the per-cpu steal clock
210 * The function reads the steal clock if we are on a 64-bit system, otherwise
223 clock = READ_ONCE(steal->clock); in vmware_steal_clock()
228 initial_high = READ_ONCE(steal->clock_high); in vmware_steal_clock()
231 low = READ_ONCE(steal->clock_low); in vmware_steal_clock()
234 high = READ_ONCE(steal->clock_high); in vmware_steal_clock()
257 pr_info("vmware-stealtime: cpu %d, pa %llx\n", in vmware_register_steal_time()
389 uint32_t eax, ebx, ecx, edx; in vmware_platform_setup() local
392 VMWARE_CMD(GETHZ, eax, ebx, ecx, edx); in vmware_platform_setup()
396 do_div(tsc_khz, 1000); in vmware_platform_setup()
399 (unsigned long) tsc_khz / 1000, in vmware_platform_setup()
400 (unsigned long) tsc_khz % 1000); in vmware_platform_setup()
413 lapic_timer_period = ecx / HZ; in vmware_platform_setup()
415 ecx); in vmware_platform_setup()
432 int eax, ebx, ecx, edx; in vmware_select_hypercall() local
434 cpuid(CPUID_VMWARE_FEATURES_LEAF, &eax, &ebx, &ecx, &edx); in vmware_select_hypercall()
435 return (ecx & (CPUID_VMWARE_FEATURES_ECX_VMMCALL | in vmware_select_hypercall()
471 /* Checks if hypervisor supports x2apic without VT-D interrupt remapping. */
474 uint32_t eax, ebx, ecx, edx; in vmware_legacy_x2apic_available() local
475 VMWARE_CMD(GETVCPU_INFO, eax, ebx, ecx, edx); in vmware_legacy_x2apic_available()
485 ghcb_set_rip(ghcb, regs->ip); in vmware_sev_es_hcall_prepare()
486 ghcb_set_rbx(ghcb, regs->bx); in vmware_sev_es_hcall_prepare()
487 ghcb_set_rcx(ghcb, regs->cx); in vmware_sev_es_hcall_prepare()
488 ghcb_set_rdx(ghcb, regs->dx); in vmware_sev_es_hcall_prepare()
489 ghcb_set_rsi(ghcb, regs->si); in vmware_sev_es_hcall_prepare()
490 ghcb_set_rdi(ghcb, regs->di); in vmware_sev_es_hcall_prepare()
491 ghcb_set_rbp(ghcb, regs->bp); in vmware_sev_es_hcall_prepare()
504 regs->bx = ghcb->save.rbx; in vmware_sev_es_hcall_finish()
505 regs->cx = ghcb->save.rcx; in vmware_sev_es_hcall_finish()
506 regs->dx = ghcb->save.rdx; in vmware_sev_es_hcall_finish()
507 regs->si = ghcb->save.rsi; in vmware_sev_es_hcall_finish()
508 regs->di = ghcb->save.rdi; in vmware_sev_es_hcall_finish()
509 regs->bp = ghcb->save.rbp; in vmware_sev_es_hcall_finish()