[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v2 14/34] cpu-defs: Allow multiple inclusions
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [RFC v2 14/34] cpu-defs: Allow multiple inclusions |
Date: |
Mon, 01 Jun 2015 09:59:46 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 |
On 31/05/2015 08:11, Peter Crosthwaite wrote:
> Allow subsequent inclusion of cpu-defs.h. This allows including
> multiple cpu.h's and each getting the right set of definitions for
> its env structure definition. All define symbols are undeffed and
> redeffed to the new values.
>
> CPUTLBEntry and CPUIOTLBEntry need to be renamed via #define by
> the caller to avoid namespace collisions.
Please document these things (#undeffing of preprocessor symbols and
what needs to be renamed) in the header.
Also the same is true for include/exec/target-long.h---where
additionally I am not sure about how you'd deal with a redefined
typedef. Some compilers flag it as an error even if the source type is
the same.
Paolo
> Signed-off-by: Peter Crosthwaite <address@hidden>
> ---
> include/exec/cpu-defs.h | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h
> index a1c418f..6b59e58 100644
> --- a/include/exec/cpu-defs.h
> +++ b/include/exec/cpu-defs.h
> @@ -16,8 +16,10 @@
> * You should have received a copy of the GNU Lesser General Public
> * License along with this library; if not, see
> <http://www.gnu.org/licenses/>.
> */
> -#ifndef CPU_DEFS_H
> -#define CPU_DEFS_H
> +
> +/* No multiple include guard intended. Multi-arch setups may require multiple
> + * cpu.h's included which means this can be and should be reached twice.
> + */
>
> #ifndef NEED_CPU_H
> #error cpu.h included from common code
> @@ -34,12 +36,19 @@
>
> #include "exec/target-long.h"
>
> +#undef CPU_COMMON
> +#undef CPU_COMMON_TLB
> +
> #if !defined(CONFIG_USER_ONLY)
> +#undef CPU_TLB_BITS
> +#undef CPU_TLB_SIZE
> +#undef CPU_VTLB_SIZE
> #define CPU_TLB_BITS 8
> #define CPU_TLB_SIZE (1 << CPU_TLB_BITS)
> /* use a fully associative victim tlb of 8 entries */
> #define CPU_VTLB_SIZE 8
>
> +#undef CPU_TLB_ENTRY_BITS
> #if HOST_LONG_BITS == 32 && TARGET_LONG_BITS == 32
> #define CPU_TLB_ENTRY_BITS 4
> #else
> @@ -100,4 +109,3 @@ typedef struct CPUIOTLBEntry {
> /* soft mmu support */ \
> CPU_COMMON_TLB \
>
> -#endif
>
- Re: [Qemu-devel] [RFC v2 14/34] cpu-defs: Allow multiple inclusions,
Paolo Bonzini <=