git: 2a21cfe60fcf - main - pctrie: avoid typecast
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 14 Jun 2024 07:20:04 UTC
The branch main has been updated by dougm:
URL: https://cgit.FreeBSD.org/src/commit/?id=2a21cfe60fcf8e49dad60a9a40d2fc9e62cda563
commit 2a21cfe60fcf8e49dad60a9a40d2fc9e62cda563
Author: Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2024-06-14 07:19:03 +0000
Commit: Doug Moore <dougm@FreeBSD.org>
CommitDate: 2024-06-14 07:19:03 +0000
pctrie: avoid typecast
Have PCTRIE_RECLAIM_CALLBACK typecast one function pointer type to
another, to relieve the writer of the call back function from having
to cast its first argument from void* to member type.
Reviewed by: rlibby
Differential Revision: https://reviews.freebsd.org/D45586
---
sys/kern/subr_rangeset.c | 3 +--
sys/sys/pctrie.h | 3 ++-
sys/vm/swap_pager.c | 3 +--
3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/sys/kern/subr_rangeset.c b/sys/kern/subr_rangeset.c
index 94b77a449d22..ddb1839531ea 100644
--- a/sys/kern/subr_rangeset.c
+++ b/sys/kern/subr_rangeset.c
@@ -233,9 +233,8 @@ rangeset_remove(struct rangeset *rs, uint64_t start, uint64_t end)
}
static void
-rangeset_remove_leaf(void *rv, void *rsv)
+rangeset_remove_leaf(struct rs_el *r, void *rsv)
{
- struct rs_el *r = rv;
struct rangeset *rs = rsv;
rs->rs_free_data(rs->rs_data_ctx, r);
diff --git a/sys/sys/pctrie.h b/sys/sys/pctrie.h
index 4e1d8c7f8617..d06b533a54b7 100644
--- a/sys/sys/pctrie.h
+++ b/sys/sys/pctrie.h
@@ -226,9 +226,10 @@ name##_PCTRIE_RECLAIM(struct pctrie *ptree) \
*/ \
static __inline __unused void \
name##_PCTRIE_RECLAIM_CALLBACK(struct pctrie *ptree, \
- pctrie_cb_t callback, void *arg) \
+ void (*typed_cb)(struct type *, void *), void *arg) \
{ \
struct pctrie_node *freenode, *node; \
+ pctrie_cb_t callback = (pctrie_cb_t)typed_cb; \
\
for (freenode = pctrie_reclaim_begin_cb(&node, ptree, \
callback, __offsetof(struct type, field), arg); \
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index c339f70ddea1..455c39ab6fd7 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -2220,9 +2220,8 @@ swp_pager_meta_free(vm_object_t object, vm_pindex_t pindex, vm_pindex_t count,
}
static void
-swp_pager_meta_free_block(void *sbv, void *rangev)
+swp_pager_meta_free_block(struct swblk *sb, void *rangev)
{
- struct swblk *sb = sbv;
struct page_range *range = rangev;
for (int i = 0; i < SWAP_META_PAGES; i++) {