qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Yang Zhong <yang.zhong@intel.com>
To: pbonzini@redhat.com
Cc: qemu-devel@nongnu.org, a.rigo@virtualopensystems.com,
	anthony.xu@intel.com, Yang Zhong <yang.zhong@intel.com>
Subject: [Qemu-devel] [PATCH 14/15] tcg: add the CONFIG_TCG for header
Date: Wed, 21 Jun 2017 18:20:00 +0800	[thread overview]
Message-ID: <1498040401-16361-15-git-send-email-yang.zhong@intel.com> (raw)
In-Reply-To: <1498040401-16361-1-git-send-email-yang.zhong@intel.com>

Add the CONFIG_TCG for exec-all.h. Since function tlb_set_page_with_attrs()
is defined in ./accel/tcg/cputlb.c, which will be disabled if tcg is disabled.
This function need be implemented in accel/stubs/tcg-stub.c for disable-tcg.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
---
 accel/stubs/tcg-stub.c      |  6 +++++
 include/exec/cputlb.h       |  2 +-
 include/exec/exec-all.h     | 53 ++++++++++++++++++++++++---------------------
 include/exec/helper-proto.h |  2 ++
 4 files changed, 37 insertions(+), 26 deletions(-)

diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
index 85b0239..a189493 100644
--- a/accel/stubs/tcg-stub.c
+++ b/accel/stubs/tcg-stub.c
@@ -63,6 +63,12 @@ bool cpu_restore_state(CPUState *cpu, uintptr_t searched_pc)
     return false;
 }
 
+void tlb_set_page_with_attrs(CPUState *cpu, target_ulong vaddr,
+                             hwaddr paddr, MemTxAttrs attrs,
+                             int prot, int mmu_idx, target_ulong size)
+{
+}
+
 void update_fp_status(CPUX86State *env)
 {
 }
diff --git a/include/exec/cputlb.h b/include/exec/cputlb.h
index 3f94178..cf296d9 100644
--- a/include/exec/cputlb.h
+++ b/include/exec/cputlb.h
@@ -19,7 +19,7 @@
 #ifndef CPUTLB_H
 #define CPUTLB_H
 
-#if !defined(CONFIG_USER_ONLY)
+#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG)
 /* cputlb.c */
 void tlb_protect_code(ram_addr_t ram_addr);
 void tlb_unprotect_code(ram_addr_t ram_addr);
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index 87ae10b..f5d01eb 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.h
@@ -82,6 +82,34 @@ void cpu_reloading_memory_map(void);
  * Note that with KVM only one address space is supported.
  */
 void cpu_address_space_init(CPUState *cpu, AddressSpace *as, int asidx);
+/**
+ * tlb_set_page_with_attrs:
+ * @cpu: CPU to add this TLB entry for
+ * @vaddr: virtual address of page to add entry for
+ * @paddr: physical address of the page
+ * @attrs: memory transaction attributes
+ * @prot: access permissions (PAGE_READ/PAGE_WRITE/PAGE_EXEC bits)
+ * @mmu_idx: MMU index to insert TLB entry for
+ * @size: size of the page in bytes
+ *
+ * Add an entry to this CPU's TLB (a mapping from virtual address
+ * @vaddr to physical address @paddr) with the specified memory
+ * transaction attributes. This is generally called by the target CPU
+ * specific code after it has been called through the tlb_fill()
+ * entry point and performed a successful page table walk to find
+ * the physical address and attributes for the virtual address
+ * which provoked the TLB miss.
+ *
+ * At most one entry for a given virtual address is permitted. Only a
+ * single TARGET_PAGE_SIZE region is mapped; the supplied @size is only
+ * used by tlb_flush_page.
+ */
+void tlb_set_page_with_attrs(CPUState *cpu, target_ulong vaddr,
+                             hwaddr paddr, MemTxAttrs attrs,
+                             int prot, int mmu_idx, target_ulong size);
+#endif
+
+#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG)
 /* cputlb.c */
 /**
  * tlb_flush_page:
@@ -205,31 +233,6 @@ void tlb_flush_by_mmuidx_all_cpus(CPUState *cpu, uint16_t idxmap);
  * depend on when the guests translation ends the TB.
  */
 void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *cpu, uint16_t idxmap);
-/**
- * tlb_set_page_with_attrs:
- * @cpu: CPU to add this TLB entry for
- * @vaddr: virtual address of page to add entry for
- * @paddr: physical address of the page
- * @attrs: memory transaction attributes
- * @prot: access permissions (PAGE_READ/PAGE_WRITE/PAGE_EXEC bits)
- * @mmu_idx: MMU index to insert TLB entry for
- * @size: size of the page in bytes
- *
- * Add an entry to this CPU's TLB (a mapping from virtual address
- * @vaddr to physical address @paddr) with the specified memory
- * transaction attributes. This is generally called by the target CPU
- * specific code after it has been called through the tlb_fill()
- * entry point and performed a successful page table walk to find
- * the physical address and attributes for the virtual address
- * which provoked the TLB miss.
- *
- * At most one entry for a given virtual address is permitted. Only a
- * single TARGET_PAGE_SIZE region is mapped; the supplied @size is only
- * used by tlb_flush_page.
- */
-void tlb_set_page_with_attrs(CPUState *cpu, target_ulong vaddr,
-                             hwaddr paddr, MemTxAttrs attrs,
-                             int prot, int mmu_idx, target_ulong size);
 /* tlb_set_page:
  *
  * This function is equivalent to calling tlb_set_page_with_attrs()
diff --git a/include/exec/helper-proto.h b/include/exec/helper-proto.h
index 954bef8..417c7b0 100644
--- a/include/exec/helper-proto.h
+++ b/include/exec/helper-proto.h
@@ -28,7 +28,9 @@ dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3), \
 
 #include "helper.h"
 #include "trace/generated-helpers.h"
+#ifdef CONFIG_TCG
 #include "tcg-runtime.h"
+#endif
 
 #undef DEF_HELPER_FLAGS_0
 #undef DEF_HELPER_FLAGS_1
-- 
1.9.1

  parent reply	other threads:[~2017-06-21 10:20 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-21 10:19 [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 01/15] configure: add the disable-tcg option Yang Zhong
2017-06-21 22:33   ` Richard Henderson
2017-06-22  4:20   ` Thomas Huth
2017-06-22  6:22     ` Paolo Bonzini
2017-06-22  6:33       ` Thomas Huth
2017-06-22  9:26         ` Paolo Bonzini
2017-06-22  9:30           ` Thomas Huth
2017-06-22  9:32             ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 02/15] vl: add CONFIG_TCG for tcg related code Yang Zhong
2017-06-21 13:10   ` Paolo Bonzini
2017-06-22  6:54     ` Zhong Yang
2017-06-21 10:19 ` [Qemu-devel] [PATCH 03/15] tcg: tcg_handle_interrupt() function Yang Zhong
2017-06-21 13:10   ` Paolo Bonzini
2017-06-22  7:06     ` Zhong Yang
2017-06-22  9:29       ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 04/15] tcg: change tcg_enabled() Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 05/15] tcg: move page_size_init() function Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 06/15] kvmvapic: remove tcg related code Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 07/15] tcg: move cpu_sync_bndcs_hflags() function Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 08/15] tcg: make cpu_get_fp80()/cpu_set_fp80() static Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 09/15] tcg: add the tcg-stub.c file into accel/stubs/ Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 10/15] tcg: move tb related lock functions Yang Zhong
2017-06-21 10:19 ` [Qemu-devel] [PATCH 11/15] tcg: split cpu_set_mxcsr()/cpu_set_fpuc() Yang Zhong
2017-06-21 13:15   ` Paolo Bonzini
2017-06-22  8:03     ` Zhong Yang
2017-06-22  8:42       ` Paolo Bonzini
2017-06-21 22:36   ` Richard Henderson
2017-06-21 10:19 ` [Qemu-devel] [PATCH 12/15] tcg: remove inline definition of flush_icache_range() Yang Zhong
2017-06-21 13:17   ` Paolo Bonzini
2017-06-21 10:19 ` [Qemu-devel] [PATCH 13/15] tcg: disable tcg in CPUX86State struct Yang Zhong
2017-06-21 22:24   ` Richard Henderson
2017-06-22  9:32     ` Zhong Yang
2017-06-21 10:20 ` Yang Zhong [this message]
2017-06-21 10:20 ` [Qemu-devel] [PATCH 15/15] tcg: add the CONFIG_TCG into Makefiles Yang Zhong
2017-06-21 12:03 ` [Qemu-devel] [PATCH 00/15] add disable-tcg option for x86 build no-reply
2017-06-21 13:19 ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1498040401-16361-15-git-send-email-yang.zhong@intel.com \
    --to=yang.zhong@intel.com \
    --cc=a.rigo@virtualopensystems.com \
    --cc=anthony.xu@intel.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).