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())); >