From: "Nicholas Piggin" <npiggin@gmail.com>
To: "BALATON Zoltan" <balaton@eik.bme.hu>, <qemu-devel@nongnu.org>,
<qemu-ppc@nongnu.org>
Cc: "Daniel Henrique Barboza" <danielhb413@gmail.com>
Subject: Re: [PATCH 31/43] target/ppc/mmu-radix64: Remove externally unused parts from header
Date: Thu, 04 Jul 2024 17:16:59 +1000 [thread overview]
Message-ID: <D2GKK1VXLXIM.20G0PWTUV1MP@gmail.com> (raw)
In-Reply-To: <3eccbbc40175cbf8e592fb62c0544202052c571c.1716763435.git.balaton@eik.bme.hu>
On Mon May 27, 2024 at 9:13 AM AEST, BALATON Zoltan wrote:
> Move the parts not needed outside of mmu-radix64.c from the header to
> the C file to leave only parts in the header that need to be exported.
> Also drop unneded include of this header.
>
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Acked-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> target/ppc/mmu-book3s-v3.c | 1 -
> target/ppc/mmu-radix64.c | 49 +++++++++++++++++++++++++++++++++++
> target/ppc/mmu-radix64.h | 53 +-------------------------------------
> 3 files changed, 50 insertions(+), 53 deletions(-)
>
> diff --git a/target/ppc/mmu-book3s-v3.c b/target/ppc/mmu-book3s-v3.c
> index c8f69b3df9..a812cb5113 100644
> --- a/target/ppc/mmu-book3s-v3.c
> +++ b/target/ppc/mmu-book3s-v3.c
> @@ -21,7 +21,6 @@
> #include "cpu.h"
> #include "mmu-hash64.h"
> #include "mmu-book3s-v3.h"
> -#include "mmu-radix64.h"
>
> bool ppc64_v3_get_pate(PowerPCCPU *cpu, target_ulong lpid, ppc_v3_pate_t *entry)
> {
> diff --git a/target/ppc/mmu-radix64.c b/target/ppc/mmu-radix64.c
> index 5a02e4963b..cf9619e847 100644
> --- a/target/ppc/mmu-radix64.c
> +++ b/target/ppc/mmu-radix64.c
> @@ -29,6 +29,37 @@
> #include "mmu-radix64.h"
> #include "mmu-book3s-v3.h"
>
> +/* Radix Partition Table Entry Fields */
> +#define PATE1_R_PRTB 0x0FFFFFFFFFFFF000
> +#define PATE1_R_PRTS 0x000000000000001F
> +
> +/* Radix Process Table Entry Fields */
> +#define PRTBE_R_GET_RTS(rts) \
> + ((((rts >> 58) & 0x18) | ((rts >> 5) & 0x7)) + 31)
> +#define PRTBE_R_RPDB 0x0FFFFFFFFFFFFF00
> +#define PRTBE_R_RPDS 0x000000000000001F
> +
> +/* Radix Page Directory/Table Entry Fields */
> +#define R_PTE_VALID 0x8000000000000000
> +#define R_PTE_LEAF 0x4000000000000000
> +#define R_PTE_SW0 0x2000000000000000
> +#define R_PTE_RPN 0x01FFFFFFFFFFF000
> +#define R_PTE_SW1 0x0000000000000E00
> +#define R_GET_SW(sw) (((sw >> 58) & 0x8) | ((sw >> 9) & 0x7))
> +#define R_PTE_R 0x0000000000000100
> +#define R_PTE_C 0x0000000000000080
> +#define R_PTE_ATT 0x0000000000000030
> +#define R_PTE_ATT_NORMAL 0x0000000000000000
> +#define R_PTE_ATT_SAO 0x0000000000000010
> +#define R_PTE_ATT_NI_IO 0x0000000000000020
> +#define R_PTE_ATT_TOLERANT_IO 0x0000000000000030
> +#define R_PTE_EAA_PRIV 0x0000000000000008
> +#define R_PTE_EAA_R 0x0000000000000004
> +#define R_PTE_EAA_RW 0x0000000000000002
> +#define R_PTE_EAA_X 0x0000000000000001
> +#define R_PDE_NLB PRTBE_R_RPDB
> +#define R_PDE_NLS PRTBE_R_RPDS
> +
> static bool ppc_radix64_get_fully_qualified_addr(const CPUPPCState *env,
> vaddr eaddr,
> uint64_t *lpid, uint64_t *pid)
> @@ -180,6 +211,24 @@ static void ppc_radix64_raise_hsi(PowerPCCPU *cpu, MMUAccessType access_type,
> }
> }
>
> +static int ppc_radix64_get_prot_eaa(uint64_t pte)
> +{
> + return (pte & R_PTE_EAA_R ? PAGE_READ : 0) |
> + (pte & R_PTE_EAA_RW ? PAGE_READ | PAGE_WRITE : 0) |
> + (pte & R_PTE_EAA_X ? PAGE_EXEC : 0);
> +}
> +
> +static int ppc_radix64_get_prot_amr(const PowerPCCPU *cpu)
> +{
> + const CPUPPCState *env = &cpu->env;
> + int amr = env->spr[SPR_AMR] >> 62; /* We only care about key0 AMR63:62 */
> + int iamr = env->spr[SPR_IAMR] >> 62; /* We only care about key0 IAMR63:62 */
> +
> + return (amr & 0x2 ? 0 : PAGE_WRITE) | /* Access denied if bit is set */
> + (amr & 0x1 ? 0 : PAGE_READ) |
> + (iamr & 0x1 ? 0 : PAGE_EXEC);
> +}
> +
> static bool ppc_radix64_check_prot(PowerPCCPU *cpu, MMUAccessType access_type,
> uint64_t pte, int *fault_cause, int *prot,
> int mmu_idx, bool partition_scoped)
> diff --git a/target/ppc/mmu-radix64.h b/target/ppc/mmu-radix64.h
> index c5c04a1527..6620b3d648 100644
> --- a/target/ppc/mmu-radix64.h
> +++ b/target/ppc/mmu-radix64.h
> @@ -3,7 +3,7 @@
>
> #ifndef CONFIG_USER_ONLY
>
> -#include "exec/page-protection.h"
> +#ifdef TARGET_PPC64
>
> /* Radix Quadrants */
> #define R_EADDR_MASK 0x3FFFFFFFFFFFFFFF
> @@ -14,61 +14,10 @@
> #define R_EADDR_QUADRANT2 0x8000000000000000
> #define R_EADDR_QUADRANT3 0xC000000000000000
>
> -/* Radix Partition Table Entry Fields */
> -#define PATE1_R_PRTB 0x0FFFFFFFFFFFF000
> -#define PATE1_R_PRTS 0x000000000000001F
> -
> -/* Radix Process Table Entry Fields */
> -#define PRTBE_R_GET_RTS(rts) \
> - ((((rts >> 58) & 0x18) | ((rts >> 5) & 0x7)) + 31)
> -#define PRTBE_R_RPDB 0x0FFFFFFFFFFFFF00
> -#define PRTBE_R_RPDS 0x000000000000001F
> -
> -/* Radix Page Directory/Table Entry Fields */
> -#define R_PTE_VALID 0x8000000000000000
> -#define R_PTE_LEAF 0x4000000000000000
> -#define R_PTE_SW0 0x2000000000000000
> -#define R_PTE_RPN 0x01FFFFFFFFFFF000
> -#define R_PTE_SW1 0x0000000000000E00
> -#define R_GET_SW(sw) (((sw >> 58) & 0x8) | ((sw >> 9) & 0x7))
> -#define R_PTE_R 0x0000000000000100
> -#define R_PTE_C 0x0000000000000080
> -#define R_PTE_ATT 0x0000000000000030
> -#define R_PTE_ATT_NORMAL 0x0000000000000000
> -#define R_PTE_ATT_SAO 0x0000000000000010
> -#define R_PTE_ATT_NI_IO 0x0000000000000020
> -#define R_PTE_ATT_TOLERANT_IO 0x0000000000000030
> -#define R_PTE_EAA_PRIV 0x0000000000000008
> -#define R_PTE_EAA_R 0x0000000000000004
> -#define R_PTE_EAA_RW 0x0000000000000002
> -#define R_PTE_EAA_X 0x0000000000000001
> -#define R_PDE_NLB PRTBE_R_RPDB
> -#define R_PDE_NLS PRTBE_R_RPDS
> -
> -#ifdef TARGET_PPC64
> -
> bool ppc_radix64_xlate(PowerPCCPU *cpu, vaddr eaddr, MMUAccessType access_type,
> hwaddr *raddr, int *psizep, int *protp, int mmu_idx,
> bool guest_visible);
>
> -static inline int ppc_radix64_get_prot_eaa(uint64_t pte)
> -{
> - return (pte & R_PTE_EAA_R ? PAGE_READ : 0) |
> - (pte & R_PTE_EAA_RW ? PAGE_READ | PAGE_WRITE : 0) |
> - (pte & R_PTE_EAA_X ? PAGE_EXEC : 0);
> -}
> -
> -static inline int ppc_radix64_get_prot_amr(const PowerPCCPU *cpu)
> -{
> - const CPUPPCState *env = &cpu->env;
> - int amr = env->spr[SPR_AMR] >> 62; /* We only care about key0 AMR63:62 */
> - int iamr = env->spr[SPR_IAMR] >> 62; /* We only care about key0 IAMR63:62 */
> -
> - return (amr & 0x2 ? 0 : PAGE_WRITE) | /* Access denied if bit is set */
> - (amr & 0x1 ? 0 : PAGE_READ) |
> - (iamr & 0x1 ? 0 : PAGE_EXEC);
> -}
> -
> #endif /* TARGET_PPC64 */
>
> #endif /* CONFIG_USER_ONLY */
next prev parent reply other threads:[~2024-07-04 7:18 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-26 23:12 [PATCH 00/43] Remaining MMU clean up patches BALATON Zoltan
2024-05-26 23:12 ` [PATCH 01/43] target/ppc: Reorganise and rename ppc_hash32_pp_prot() BALATON Zoltan
2024-07-04 5:57 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 02/43] target/ppc/mmu_common.c: Remove local name for a constant BALATON Zoltan
2024-07-04 5:57 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 03/43] target/ppc/mmu_common.c: Remove single use local variable BALATON Zoltan
2024-07-04 5:58 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 04/43] " BALATON Zoltan
2024-07-04 5:58 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 05/43] target/ppc/mmu_common.c: Remove another " BALATON Zoltan
2024-07-04 5:59 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 06/43] target/ppc/mmu_common.c: Remove yet " BALATON Zoltan
2024-07-04 5:59 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 07/43] target/ppc/mmu_common.c: Return directly in ppc6xx_tlb_pte_check() BALATON Zoltan
2024-07-04 6:00 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 08/43] target/ppc/mmu_common.c: Simplify ppc6xx_tlb_pte_check() BALATON Zoltan
2024-07-04 6:02 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 09/43] target/ppc/mmu_common.c: Remove unused field from mmu_ctx_t BALATON Zoltan
2024-07-04 6:02 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 10/43] target/ppc/mmu_common.c: Remove hash " BALATON Zoltan
2024-07-04 6:03 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 11/43] target/ppc/mmu_common.c: Remove pte_update_flags() BALATON Zoltan
2024-07-04 6:13 ` Nicholas Piggin
2024-07-04 12:34 ` BALATON Zoltan
2024-07-05 0:12 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 12/43] target/ppc/mmu_common.c: Remove nx field from mmu_ctx_t BALATON Zoltan
2024-07-04 6:14 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 13/43] target/ppc/mmu_common.c: Convert local variable to bool BALATON Zoltan
2024-07-04 6:15 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 14/43] target/ppc/mmu_common.c: Remove single use local variable BALATON Zoltan
2024-07-04 6:16 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 15/43] target/ppc/mmu_common.c: Simplify a switch statement BALATON Zoltan
2024-07-04 6:16 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 16/43] target/ppc/mmu_common.c: Inline and remove ppc6xx_tlb_pte_check() BALATON Zoltan
2024-07-04 6:20 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 17/43] target/ppc/mmu_common.c: Remove ptem field from mmu_ctx_t BALATON Zoltan
2024-07-04 6:26 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 18/43] target/ppc: Add function to get protection key for hash32 MMU BALATON Zoltan
2024-07-04 6:27 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 19/43] target/ppc/mmu-hash32.c: Inline and remove ppc_hash32_pte_prot() BALATON Zoltan
2024-07-04 6:29 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 20/43] target/ppc/mmu_common.c: Init variable in function that relies on it BALATON Zoltan
2024-07-04 6:29 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 21/43] target/ppc/mmu_common.c: Remove key field from mmu_ctx_t BALATON Zoltan
2024-07-04 6:31 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 22/43] target/ppc/mmu_common.c: Stop using ctx in ppc6xx_tlb_check() BALATON Zoltan
2024-07-04 6:32 ` Nicholas Piggin
2024-05-26 23:12 ` [PATCH 23/43] target/ppc/mmu_common.c: Rename function parameter BALATON Zoltan
2024-07-04 6:32 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 24/43] target/ppc/mmu_common.c: Use defines instead of numeric constants BALATON Zoltan
2024-07-04 6:34 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 25/43] target/ppc: Remove bat_size_prot() BALATON Zoltan
2024-07-04 6:55 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 26/43] target/ppc/mmu_common.c: Stop using ctx in get_bat_6xx_tlb() BALATON Zoltan
2024-07-04 7:09 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 27/43] target/ppc/mmu_common.c: Remove mmu_ctx_t BALATON Zoltan
2024-07-04 7:10 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 28/43] target/ppc/mmu-hash32.c: Inline and remove ppc_hash32_pte_raddr() BALATON Zoltan
2024-07-04 7:14 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 29/43] target/ppc/mmu-hash32.c: Move get_pteg_offset32() to the header BALATON Zoltan
2024-07-04 7:14 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 30/43] target/ppc: Unexport some functions from mmu-book3s-v3.h BALATON Zoltan
2024-07-04 7:16 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 31/43] target/ppc/mmu-radix64: Remove externally unused parts from header BALATON Zoltan
2024-07-04 7:16 ` Nicholas Piggin [this message]
2024-05-26 23:13 ` [PATCH 32/43] target/ppc: Remove includes from mmu-book3s-v3.h BALATON Zoltan
2024-07-04 7:17 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 33/43] target/ppc: Remove single use static inline function BALATON Zoltan
2024-07-04 7:18 ` Nicholas Piggin
2024-07-06 20:13 ` BALATON Zoltan
2024-05-26 23:13 ` [PATCH 34/43] target/ppc/internal.h: Consolidate ifndef CONFIG_USER_ONLY blocks BALATON Zoltan
2024-05-26 23:13 ` [PATCH 35/43] target/ppc/mmu-hash32.c: Change parameter type of ppc_hash32_bat_lookup() BALATON Zoltan
2024-07-04 7:19 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 36/43] target/ppc/mmu-hash32: Remove some static inlines from header BALATON Zoltan
2024-07-04 7:21 ` Nicholas Piggin
2024-07-06 20:18 ` BALATON Zoltan
2024-07-08 7:06 ` Nicholas Piggin
2024-07-08 10:42 ` BALATON Zoltan
2024-05-26 23:13 ` [PATCH 37/43] target/ppc/mmu-hash32.c: Return and use pte address instead of base + offset BALATON Zoltan
2024-07-04 7:23 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 38/43] target/ppc/mmu-hash32.c: Use pte address as parameter instead of offset BALATON Zoltan
2024-05-26 23:13 ` [PATCH 39/43] target/ppc: Change parameter type of some inline functions BALATON Zoltan
2024-07-04 7:24 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 40/43] target/ppc: Change parameter type of ppc64_v3_radix() BALATON Zoltan
2024-07-04 7:25 ` Nicholas Piggin
2024-05-26 23:13 ` [PATCH 41/43] target/ppc: Change MMU xlate functions to take CPUState BALATON Zoltan
2024-07-04 7:27 ` Nicholas Piggin
2024-07-06 20:19 ` BALATON Zoltan
2024-05-26 23:13 ` [PATCH 42/43] target/ppc/mmu-hash32.c: Change parameter type of ppc_hash32_set_[rc] BALATON Zoltan
2024-05-26 23:13 ` [PATCH 43/43] target/ppc/mmu-hash32.c: Change parameter type of ppc_hash32_direct_store BALATON Zoltan
2024-05-27 20:55 ` [PATCH 00/43] Remaining MMU clean up patches BALATON Zoltan
2024-06-18 10:11 ` BALATON Zoltan
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=D2GKK1VXLXIM.20G0PWTUV1MP@gmail.com \
--to=npiggin@gmail.com \
--cc=balaton@eik.bme.hu \
--cc=danielhb413@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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).