On Thu, Dec 05, 2019 at 12:38:34PM +0100, Martin Pieuchot wrote:
> ok?
I'm no kernel hacker but I really do not see the point.
boolean_t helps to see if a functions is supposed to return a boolean
instead of an error code. I hate reading a function and having to
guess if 0 is supposed to mean success or not.
-Otto
>
> Index: i386/pmap.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/i386/i386/pmap.c,v
> retrieving revision 1.204
> diff -u -p -r1.204 pmap.c
> --- i386/pmap.c 18 Jan 2019 01:34:50 -0000 1.204
> +++ i386/pmap.c 5 Dec 2019 11:23:20 -0000
> @@ -403,7 +403,7 @@ int pmap_pg_wc = PG_UCMINUS;
> */
>
> uint32_t protection_codes[8]; /* maps MI prot to i386 prot
> code */
> -boolean_t pmap_initialized = FALSE; /* pmap_init done yet? */
> +int pmap_initialized = 0; /* pmap_init done yet? */
>
> /*
> * MULTIPROCESSOR: special VAs/ PTEs are actually allocated inside a
> @@ -1120,7 +1120,7 @@ pmap_init(void)
> * done: pmap module is up (and ready for business)
> */
>
> - pmap_initialized = TRUE;
> + pmap_initialized = 1;
> }
>
> /*
> @@ -1525,7 +1525,7 @@ pmap_deactivate(struct proc *p)
> * pmap_extract: extract a PA for the given VA
> */
>
> -boolean_t
> +int
> pmap_extract_86(struct pmap *pmap, vaddr_t va, paddr_t *pap)
> {
> pt_entry_t *ptes, pte;
> @@ -1535,12 +1535,12 @@ pmap_extract_86(struct pmap *pmap, vaddr
> pte = ptes[atop(va)];
> pmap_unmap_ptes_86(pmap);
> if (!pmap_valid_entry(pte))
> - return (FALSE);
> + return 0;
> if (pap != NULL)
> *pap = (pte & PG_FRAME) | (va & ~PG_FRAME);
> - return (TRUE);
> + return 1;
> }
> - return (FALSE);
> + return 0;
> }
>
> /*
> @@ -1594,7 +1594,7 @@ pmap_zero_phys_86(paddr_t pa)
> * pmap_zero_page_uncached: the same, except uncached.
> */
>
> -boolean_t
> +int
> pmap_zero_page_uncached_86(paddr_t pa)
> {
> #ifdef MULTIPROCESSOR
> @@ -1613,7 +1613,7 @@ pmap_zero_page_uncached_86(paddr_t pa)
> pagezero(zerova, PAGE_SIZE); /* zero */
> *zpte = 0;
>
> - return (TRUE);
> + return 1;
> }
>
> /*
> @@ -2009,7 +2009,7 @@ pmap_page_remove_86(struct vm_page *pg)
> * pmap_test_attrs: test a page's attributes
> */
>
> -boolean_t
> +int
> pmap_test_attrs_86(struct vm_page *pg, int testbits)
> {
> struct pv_entry *pve;
> @@ -2020,7 +2020,7 @@ pmap_test_attrs_86(struct vm_page *pg, i
> testflags = pmap_pte2flags(testbits);
>
> if (pg->pg_flags & testflags)
> - return (TRUE);
> + return 1;
>
> mybits = 0;
> mtx_enter(&pg->mdpage.pv_mtx);
> @@ -2035,20 +2035,20 @@ pmap_test_attrs_86(struct vm_page *pg, i
> mtx_leave(&pg->mdpage.pv_mtx);
>
> if (mybits == 0)
> - return (FALSE);
> + return 0;
>
> atomic_setbits_int(&pg->pg_flags, pmap_pte2flags(mybits));
>
> - return (TRUE);
> + return 1;
> }
>
> /*
> * pmap_clear_attrs: change a page's attributes
> *
> - * => we return TRUE if we cleared one of the bits we were asked to
> + * => we return 1 if we cleared one of the bits we were asked to
> */
>
> -boolean_t
> +int
> pmap_clear_attrs_86(struct vm_page *pg, int clearbits)
> {
> struct pv_entry *pve;
> @@ -2075,7 +2075,7 @@ pmap_clear_attrs_86(struct vm_page *pg,
>
> opte = ptes[ptei(pve->pv_va)];
> if (opte & clearbits) {
> - result = TRUE;
> + result = 1;
> i386_atomic_clearbits_l(&ptes[ptei(pve->pv_va)],
> (opte & clearbits));
> pmap_tlb_shootpage(pve->pv_pmap, pve->pv_va);
> @@ -2276,9 +2276,9 @@ pmap_enter_86(struct pmap *pmap, vaddr_t
> pt_entry_t *ptes, opte, npte;
> struct vm_page *ptp;
> struct pv_entry *pve, *opve = NULL;
> - boolean_t wired = (flags & PMAP_WIRED) != 0;
> - boolean_t nocache = (pa & PMAP_NOCACHE) != 0;
> - boolean_t wc = (pa & PMAP_WC) != 0;
> + int wired = (flags & PMAP_WIRED) != 0;
> + int nocache = (pa & PMAP_NOCACHE) != 0;
> + int wc = (pa & PMAP_WC) != 0;
> struct vm_page *pg = NULL;
> int error, wired_count, resident_count, ptp_count;
>
> @@ -2449,7 +2449,7 @@ enter_now:
> npte |= PG_PVLIST;
> if (pg->pg_flags & PG_PMAP_WC) {
> KASSERT(nocache == 0);
> - wc = TRUE;
> + wc = 1;
> }
> pmap_sync_flags_pte_86(pg, npte);
> }
> @@ -2618,7 +2618,7 @@ pmap_growkernel_86(vaddr_t maxkvaddr)
>
> for (/*null*/ ; nkpde < needed_kpde ; nkpde++) {
>
> - if (uvm.page_init_done == FALSE) {
> + if (uvm.page_init_done == 0) {
>
> /*
> * we're growing the kernel pmap early (from
> @@ -2626,7 +2626,7 @@ pmap_growkernel_86(vaddr_t maxkvaddr)
> * handled a little differently.
> */
>
> - if (uvm_page_physget(&ptaddr) == FALSE)
> + if (uvm_page_physget(&ptaddr) == 0)
> panic("pmap_growkernel: out of memory");
> pmap_zero_phys_86(ptaddr);
>
> @@ -2640,7 +2640,7 @@ pmap_growkernel_86(vaddr_t maxkvaddr)
>
> /*
> * THIS *MUST* BE CODED SO AS TO WORK IN THE
> - * pmap_initialized == FALSE CASE! WE MAY BE
> + * pmap_initialized == 0 CASE! WE MAY BE
> * INVOKED WHILE pmap_init() IS RUNNING!
> */
>
> @@ -2878,26 +2878,26 @@ u_int32_t (*pmap_pte_setbits_p)(vaddr_t,
> pmap_pte_setbits_86;
> u_int32_t (*pmap_pte_bits_p)(vaddr_t) = pmap_pte_bits_86;
> paddr_t (*pmap_pte_paddr_p)(vaddr_t) = pmap_pte_paddr_86;
> -boolean_t (*pmap_clear_attrs_p)(struct vm_page *, int) =
> +int (*pmap_clear_attrs_p)(struct vm_page *, int) =
> pmap_clear_attrs_86;
> int (*pmap_enter_p)(pmap_t, vaddr_t, paddr_t, vm_prot_t, int) =
> pmap_enter_86;
> void (*pmap_enter_special_p)(vaddr_t, paddr_t, vm_prot_t,
> u_int32_t) = pmap_enter_special_86;
> -boolean_t (*pmap_extract_p)(pmap_t, vaddr_t, paddr_t *) =
> +int (*pmap_extract_p)(pmap_t, vaddr_t, paddr_t *) =
> pmap_extract_86;
> vaddr_t (*pmap_growkernel_p)(vaddr_t) = pmap_growkernel_86;
> void (*pmap_page_remove_p)(struct vm_page *) = pmap_page_remove_86;
> void (*pmap_do_remove_p)(struct pmap *, vaddr_t, vaddr_t, int) =
> pmap_do_remove_86;
> -boolean_t (*pmap_test_attrs_p)(struct vm_page *, int) =
> +int (*pmap_test_attrs_p)(struct vm_page *, int) =
> pmap_test_attrs_86;
> void (*pmap_unwire_p)(struct pmap *, vaddr_t) = pmap_unwire_86;
> void (*pmap_write_protect_p)(struct pmap *, vaddr_t, vaddr_t,
> vm_prot_t) = pmap_write_protect_86;
> void (*pmap_pinit_pd_p)(pmap_t) = pmap_pinit_pd_86;
> void (*pmap_zero_phys_p)(paddr_t) = pmap_zero_phys_86;
> -boolean_t (*pmap_zero_page_uncached_p)(paddr_t) =
> +int (*pmap_zero_page_uncached_p)(paddr_t) =
> pmap_zero_page_uncached_86;
> void (*pmap_copy_page_p)(struct vm_page *, struct vm_page *) =
> pmap_copy_page_86;
> Index: i386/pmapae.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/i386/i386/pmapae.c,v
> retrieving revision 1.57
> diff -u -p -r1.57 pmapae.c
> --- i386/pmapae.c 18 Jan 2019 01:34:50 -0000 1.57
> +++ i386/pmapae.c 5 Dec 2019 11:23:01 -0000
> @@ -439,7 +439,7 @@ typedef u_int64_t pt_entry_t; /* PTE */
> */
>
> extern u_int32_t protection_codes[]; /* maps MI prot to i386 prot code */
> -extern boolean_t pmap_initialized; /* pmap_init done yet? */
> +extern int pmap_initialized; /* pmap_init done yet? */
>
> /* Segment boundaries */
> extern vaddr_t kernel_text, etext, __rodata_start, erodata, __data_start;
> @@ -1038,7 +1038,7 @@ pmap_pinit_pd_pae(struct pmap *pmap)
> * pmap_extract: extract a PA for the given VA
> */
>
> -boolean_t
> +int
> pmap_extract_pae(struct pmap *pmap, vaddr_t va, paddr_t *pap)
> {
> pt_entry_t *ptes, pte;
> @@ -1048,12 +1048,12 @@ pmap_extract_pae(struct pmap *pmap, vadd
> pte = ptes[atop(va)];
> pmap_unmap_ptes_pae(pmap);
> if (!pmap_valid_entry(pte))
> - return (FALSE);
> + return 0;
> if (pap != NULL)
> *pap = (pte & PG_FRAME) | (va & ~PG_FRAME);
> - return (TRUE);
> + return 1;
> }
> - return (FALSE);
> + return 0;
> }
>
> extern void (*pagezero)(void *, size_t);
> @@ -1086,7 +1086,7 @@ pmap_zero_phys_pae(paddr_t pa)
> * pmap_zero_page_uncached: the same, except uncached.
> */
>
> -boolean_t
> +int
> pmap_zero_page_uncached_pae(paddr_t pa)
> {
> #ifdef MULTIPROCESSOR
> @@ -1105,7 +1105,7 @@ pmap_zero_page_uncached_pae(paddr_t pa)
> pagezero(zerova, PAGE_SIZE); /* zero */
> *zpte = 0;
>
> - return (TRUE);
> + return 1;
> }
>
> /*
> @@ -1448,7 +1448,7 @@ pmap_page_remove_pae(struct vm_page *pg)
> * => we set pv_head => pmap locking
> */
>
> -boolean_t
> +int
> pmap_test_attrs_pae(struct vm_page *pg, int testbits)
> {
> struct pv_entry *pve;
> @@ -1459,7 +1459,7 @@ pmap_test_attrs_pae(struct vm_page *pg,
> testflags = pmap_pte2flags(testbits);
>
> if (pg->pg_flags & testflags)
> - return (TRUE);
> + return 1;
>
> mybits = 0;
> mtx_enter(&pg->mdpage.pv_mtx);
> @@ -1474,19 +1474,19 @@ pmap_test_attrs_pae(struct vm_page *pg,
> mtx_leave(&pg->mdpage.pv_mtx);
>
> if (mybits == 0)
> - return (FALSE);
> + return 0;
>
> atomic_setbits_int(&pg->pg_flags, pmap_pte2flags(mybits));
>
> - return (TRUE);
> + return 1;
> }
>
> /*
> * pmap_clear_attrs: change a page's attributes
> *
> - * => we return TRUE if we cleared one of the bits we were asked to
> + * => we return 1 if we cleared one of the bits we were asked to
> */
> -boolean_t
> +int
> pmap_clear_attrs_pae(struct vm_page *pg, int clearbits)
> {
> struct pv_entry *pve;
> @@ -1513,7 +1513,7 @@ pmap_clear_attrs_pae(struct vm_page *pg,
>
> opte = ptes[ptei(pve->pv_va)];
> if (opte & clearbits) {
> - result = TRUE;
> + result = 1;
> npte = opte & ~clearbits;
> opte = i386_atomic_testset_uq(
> &ptes[ptei(pve->pv_va)], npte);
> @@ -1697,9 +1697,9 @@ pmap_enter_pae(struct pmap *pmap, vaddr_
> pt_entry_t *ptes, opte, npte;
> struct vm_page *ptp;
> struct pv_entry *pve, *opve = NULL;
> - boolean_t wired = (flags & PMAP_WIRED) != 0;
> - boolean_t nocache = (pa & PMAP_NOCACHE) != 0;
> - boolean_t wc = (pa & PMAP_WC) != 0;
> + int wired = (flags & PMAP_WIRED) != 0;
> + int nocache = (pa & PMAP_NOCACHE) != 0;
> + int wc = (pa & PMAP_WC) != 0;
> struct vm_page *pg = NULL;
> int error, wired_count, resident_count, ptp_count;
>
> @@ -1873,7 +1873,7 @@ enter_now:
> npte |= PG_PVLIST;
> if (pg->pg_flags & PG_PMAP_WC) {
> KASSERT(nocache == 0);
> - wc = TRUE;
> + wc = 1;
> }
> pmap_sync_flags_pte_pae(pg, npte);
> }
> @@ -2055,7 +2055,7 @@ pmap_growkernel_pae(vaddr_t maxkvaddr)
>
> for (/*null*/ ; nkpde < needed_kpde ; nkpde++) {
>
> - if (uvm.page_init_done == FALSE) {
> + if (uvm.page_init_done == 0) {
>
> /*
> * we're growing the kernel pmap early (from
> @@ -2063,7 +2063,7 @@ pmap_growkernel_pae(vaddr_t maxkvaddr)
> * handled a little differently.
> */
>
> - if (uvm_page_physget(&ptaddr) == FALSE)
> + if (uvm_page_physget(&ptaddr) == 0)
> panic("pmap_growkernel: out of memory");
> pmap_zero_phys_pae(ptaddr);
>
> @@ -2077,7 +2077,7 @@ pmap_growkernel_pae(vaddr_t maxkvaddr)
>
> /*
> * THIS *MUST* BE CODED SO AS TO WORK IN THE
> - * pmap_initialized == FALSE CASE! WE MAY BE
> + * pmap_initialized == 0 CASE! WE MAY BE
> * INVOKED WHILE pmap_init() IS RUNNING!
> */
>
> Index: include/pmap.h
> ===================================================================
> RCS file: /cvs/src/sys/arch/i386/include/pmap.h,v
> retrieving revision 1.86
> diff -u -p -r1.86 pmap.h
> --- include/pmap.h 18 Jan 2019 01:34:50 -0000 1.86
> +++ include/pmap.h 5 Dec 2019 11:22:55 -0000
> @@ -240,13 +240,13 @@ void pmap_zero_page(struct vm_page *);
> void pmap_copy_page(struct vm_page *, struct vm_page *);
> void pmap_enter_pv(struct vm_page *, struct pv_entry *,
> struct pmap *, vaddr_t, struct vm_page *);
> -boolean_t pmap_clear_attrs(struct vm_page *, int);
> +int pmap_clear_attrs(struct vm_page *, int);
> static void pmap_page_protect(struct vm_page *, vm_prot_t);
> void pmap_page_remove(struct vm_page *);
> static void pmap_protect(struct pmap *, vaddr_t,
> vaddr_t, vm_prot_t);
> void pmap_remove(struct pmap *, vaddr_t, vaddr_t);
> -boolean_t pmap_test_attrs(struct vm_page *, int);
> +int pmap_test_attrs(struct vm_page *, int);
> void pmap_write_protect(struct pmap *, vaddr_t,
> vaddr_t, vm_prot_t);
> int pmap_exec_fixup(struct vm_map *, struct trapframe *,
> @@ -265,38 +265,38 @@ extern u_int32_t (*pmap_pte_set_p)(vaddr
> extern u_int32_t (*pmap_pte_setbits_p)(vaddr_t, u_int32_t, u_int32_t);
> extern u_int32_t (*pmap_pte_bits_p)(vaddr_t);
> extern paddr_t (*pmap_pte_paddr_p)(vaddr_t);
> -extern boolean_t (*pmap_clear_attrs_p)(struct vm_page *, int);
> +extern int (*pmap_clear_attrs_p)(struct vm_page *, int);
> extern int (*pmap_enter_p)(pmap_t, vaddr_t, paddr_t, vm_prot_t, int);
> extern void (*pmap_enter_special_p)(vaddr_t, paddr_t, vm_prot_t, u_int32_t);
> -extern boolean_t (*pmap_extract_p)(pmap_t, vaddr_t, paddr_t *);
> +extern int (*pmap_extract_p)(pmap_t, vaddr_t, paddr_t *);
> extern vaddr_t (*pmap_growkernel_p)(vaddr_t);
> extern void (*pmap_page_remove_p)(struct vm_page *);
> extern void (*pmap_do_remove_p)(struct pmap *, vaddr_t, vaddr_t, int);
> -extern boolean_t (*pmap_test_attrs_p)(struct vm_page *, int);
> +extern int (*pmap_test_attrs_p)(struct vm_page *, int);
> extern void (*pmap_unwire_p)(struct pmap *, vaddr_t);
> extern void (*pmap_write_protect_p)(struct pmap*, vaddr_t, vaddr_t,
> vm_prot_t);
> extern void (*pmap_pinit_pd_p)(pmap_t);
> extern void (*pmap_zero_phys_p)(paddr_t);
> -extern boolean_t (*pmap_zero_page_uncached_p)(paddr_t);
> +extern int (*pmap_zero_page_uncached_p)(paddr_t);
> extern void (*pmap_copy_page_p)(struct vm_page *, struct vm_page *);
>
> u_int32_t pmap_pte_set_pae(vaddr_t, paddr_t, u_int32_t);
> u_int32_t pmap_pte_setbits_pae(vaddr_t, u_int32_t, u_int32_t);
> u_int32_t pmap_pte_bits_pae(vaddr_t);
> paddr_t pmap_pte_paddr_pae(vaddr_t);
> -boolean_t pmap_clear_attrs_pae(struct vm_page *, int);
> +int pmap_clear_attrs_pae(struct vm_page *, int);
> int pmap_enter_pae(pmap_t, vaddr_t, paddr_t, vm_prot_t, int);
> void pmap_enter_special_pae(vaddr_t, paddr_t, vm_prot_t, u_int32_t);
> -boolean_t pmap_extract_pae(pmap_t, vaddr_t, paddr_t *);
> +int pmap_extract_pae(pmap_t, vaddr_t, paddr_t *);
> vaddr_t pmap_growkernel_pae(vaddr_t);
> void pmap_page_remove_pae(struct vm_page *);
> void pmap_do_remove_pae(struct pmap *, vaddr_t, vaddr_t, int);
> -boolean_t pmap_test_attrs_pae(struct vm_page *, int);
> +int pmap_test_attrs_pae(struct vm_page *, int);
> void pmap_unwire_pae(struct pmap *, vaddr_t);
> void pmap_write_protect_pae(struct pmap *, vaddr_t, vaddr_t, vm_prot_t);
> void pmap_pinit_pd_pae(pmap_t);
> void pmap_zero_phys_pae(paddr_t);
> -boolean_t pmap_zero_page_uncached_pae(paddr_t);
> +int pmap_zero_page_uncached_pae(paddr_t);
> void pmap_copy_page_pae(struct vm_page *, struct vm_page *);
> void pae_copy_phys(paddr_t, paddr_t, int, int);
>
> @@ -319,19 +319,19 @@ u_int32_t pmap_pte_set_86(vaddr_t, paddr
> u_int32_t pmap_pte_setbits_86(vaddr_t, u_int32_t, u_int32_t);
> u_int32_t pmap_pte_bits_86(vaddr_t);
> paddr_t pmap_pte_paddr_86(vaddr_t);
> -boolean_t pmap_clear_attrs_86(struct vm_page *, int);
> +int pmap_clear_attrs_86(struct vm_page *, int);
> int pmap_enter_86(pmap_t, vaddr_t, paddr_t, vm_prot_t, int);
> void pmap_enter_special_86(vaddr_t, paddr_t, vm_prot_t, u_int32_t);
> -boolean_t pmap_extract_86(pmap_t, vaddr_t, paddr_t *);
> +int pmap_extract_86(pmap_t, vaddr_t, paddr_t *);
> vaddr_t pmap_growkernel_86(vaddr_t);
> void pmap_page_remove_86(struct vm_page *);
> void pmap_do_remove_86(struct pmap *, vaddr_t, vaddr_t, int);
> -boolean_t pmap_test_attrs_86(struct vm_page *, int);
> +int pmap_test_attrs_86(struct vm_page *, int);
> void pmap_unwire_86(struct pmap *, vaddr_t);
> void pmap_write_protect_86(struct pmap *, vaddr_t, vaddr_t, vm_prot_t);
> void pmap_pinit_pd_86(pmap_t);
> void pmap_zero_phys_86(paddr_t);
> -boolean_t pmap_zero_page_uncached_86(paddr_t);
> +int pmap_zero_page_uncached_86(paddr_t);
> void pmap_copy_page_86(struct vm_page *, struct vm_page *);
> void pmap_tlb_shootpage(struct pmap *, vaddr_t);
> void pmap_tlb_shootrange(struct pmap *, vaddr_t, vaddr_t);
> @@ -448,7 +448,7 @@ pmap_enter_special(vaddr_t va, paddr_t p
> (*pmap_enter_special_p)(va, pa, prot, flags);
> }
>
> -__inline static boolean_t
> +__inline static int
> pmap_extract(struct pmap *pmap, vaddr_t va, paddr_t *pa)
> {
> return (*pmap_extract_p)(pmap, va, pa);
> @@ -462,13 +462,13 @@ pmap_extract(struct pmap *pmap, vaddr_t
> * pmap_is_active: is this pmap loaded into the specified processor's %cr3?
> */
>
> -static __inline boolean_t
> +static __inline int
> pmap_is_active(struct pmap *pmap, struct cpu_info *ci)
> {
> return (pmap == pmap_kernel() || ci->ci_curpmap == pmap);
> }
>
> -static __inline boolean_t
> +static __inline int
> pmap_is_curpmap(struct pmap *pmap)
> {
> return (pmap_is_active(pmap, curcpu()));
>